ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
7 ноября
852542 Топик полностью
sladkoejka (03.07.2018 10:14 - 10:27, просмотров: 425) ответил Bill на Не нужно ничего на асм задавать, все на Си прекрасно работает.
это то, с чего я начал. Такой обработчик работает. Однако чтобы код заработал, нужно на асме вручную прописать вектора. Иначе код попадает в таблицу векторов и на реальном девайсе не работает. Если вручную прописать вектора на асме, то компилятор будет ругаться на ваш пример из-за того что вектор уже занят. Вы вообще читали в чём суть проблемы? Код на си, скомпиленный IAR'ом не работает и глючит на реальном девайсе. При этом в симуляторе IAR все работает. Причина как-то связана с тем, что компилятор кладёт код в таблицу векторов. Прерываний при этом не происходит. Вероятно причина в том, что в таблицу векторов попадает инструкция LJMP, которую реальный процессор обрабатывает как автовектор. Т.е. подменяет адрес и переходит по новой таблице векторов, которой нет. Автовектор в IAR не поддерживается, он вообще не знает об этом ничего. Насчёт автовектора можно почитать тут, как это в Keil реализовано: www.keil.com/appnotes/files/apnt_126.pdf