|
Не генерируются прерывания в STR912 |
|
|
|
Jan 5 2010, 13:25
|

Частый гость
 
Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784

|
Цитата(aaarrr @ Jan 5 2010, 14:46)  Нет. У вас вообще получается, что последняя команда MSR не выполнена. Честно говоря, не знаю, как такое может быть А что происходит с CPSR в реальном железе, без отладчика? Вот то и получается, что в CPSR оказывается 0xD3 Вопрос. Что надо сделать, чтобы после загрузки в контроллер, можно было начать отладку не с main, а с стартапа. Убирание галочки с Run to main() не помогает. А не может H-JTAG при отладке как то прерывания отключать?
--------------------
Big time.
|
|
|
|
|
Jan 5 2010, 14:43
|

Частый гость
 
Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784

|
Цитата(aaarrr @ Jan 5 2010, 15:32)  А без отладчика не пробовали тот же CPSR прочитать? Под отладчиком, да еще при открытых окошках VIC'а/периферии может быть что угодно. Пробовал и без отладчика. НО все равно не срабатывает. Вот например поставил, чтобы нога меняла свое состояние по прерыванию. Отключил отладчик, но ничего не происходит. Судя по отладке, он остается в режиме Supervisor, но разрешение прерываний в этом режим ничего не меняет.
--------------------
Big time.
|
|
|
|
|
Jan 5 2010, 18:35
|

Частый гость
 
Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784

|
Цитата(MALLOY2 @ Jan 5 2010, 20:32)  h-jtag тут не причем.
функция обработчик прерывания должна быть специально оформлена с помощью ключевого слова (в IAR "__irq __arm void interrupt_function(void)") или обвертку написать на асме. Дело в том, что в прерывание он уже заходит, но прерывание происходит один раз, хотя должно быть каждую секунду(прерывание таймера по совпадению), а потом то ли зависает, то ли чтото не то с стеком, так как дальше абсолютно никаких действий не происходит. По поводу H-JTAG. При отладке прерывания не работают вобще, то есть надо проверять без отладчика. Заливаю свежую прошивку, выхожу из отладки, ресет процу, одно прерывание и тишина. Компилятор у меня KEIL. C ИАРом не дружу.
Сообщение отредактировал artur_off - Jan 5 2010, 18:49
--------------------
Big time.
|
|
|
|
|
Sep 18 2012, 10:45
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 1-02-12
Из: Екатеринбург
Пользователь №: 70 003

|
Здравствуйте! У меня возникла подобная проблема с STR912. Есть рабочий проект (был создан в старой версии keil v.3.53) Там прерывания работают. А если собрать новый проект в новом кейле (пробовала в keil v.4.13 и v.4.53) с этими же файлами проекта, файлами библиотеки, и с тем же стартапом, то прерывания не отрабатываются. Выполняется один раз и все. Прерывания глобально разрешены, настроены, но программа в прерывания больше не заходит. Хитрость с __irq не работает. Не могу понять в чем причина. У кого-нибудь было подобное? Помогите разобраться. Спасибо.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|