реклама на сайте
подробности

 
 
> AT91RM9200 после разрешения прерываний улетает на непонятные адреса, Под IAR + SAM-ICE-JTAG всё работает...
Paramedic
сообщение Apr 11 2007, 16:31
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 15-01-07
Пользователь №: 24 436



Странная ситуация: отлаживал код под IAR + SAM-ICE-JTAG в SDRAM, всё было нормально. Затем сварганил загрузчик из RomBoot от Атмеля и стал загружать бинарник из датафлэш в SDRAM. И вот теперь, когда загрузчик загружает код в SDRAM и запускает его на выполнение, программа стартует всегда, но иногда (с вероятностью ~50%) программа слетает. Место слёта определил: после инициализации таймера и разрешения всех прерываний. До этого момента код работает адекватно. Никто не сталкивался с такой проблемой?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Apr 12 2007, 10:22
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Paramedic @ Apr 11 2007, 15:31) *
Место слёта определил: после инициализации таймера и разрешения всех прерываний.
Был в похожей ситуации. Вкратце так: загрузчик настраивает контроллер прерываний по-своему, отрабатывает, передает управление основной программе. Основная программа, надеясь на настройки контроллера прерываний по умолчанию прописывает только свои значения и разрешает прерывания. Срабатывает какое-то из непереназначенных прерываний загрузчика и программа улетает в несуществующий обработчик. Здесь может быть что-то похожее?
При старте ядро успевает выполнить несколько инструкций из флеша до того, как управление перехватит JTAG и остановит его. За это время старый код вполне мог успеть проинициализировать контроллер прерываний. Может поэтому под отладчиком и работает?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Paramedic   AT91RM9200 после разрешения прерываний улетает на непонятные адреса   Apr 11 2007, 16:31
- - sergeeff   Значит напахано в обработчике прерываний. Показал ...   Apr 11 2007, 18:40
- - Paramedic   Да код-то собственно, как в примере от ИАРа: void...   Apr 11 2007, 20:30
- - Paramedic   Не понятно почему под отладчиком ниразу не сбойнул...   Apr 12 2007, 08:41
- - sergeeff   Да дело не в этих процедурах. Скорее всего в start...   Apr 12 2007, 09:55
- - Paramedic   Спасибо за совет, почитаю. Только не понятно почем...   Apr 12 2007, 10:14
|- - Paramedic   Цитата(sergeeff @ Apr 12 2007, 10:55) Да ...   Apr 17 2007, 14:31
- - amw   Возможно в этих двух случаях разны карты памяти. С...   Apr 17 2007, 15:31
|- - Paramedic   Цитата(amw @ Apr 17 2007, 16:31) Возможно...   Apr 17 2007, 15:57
|- - amw   Цитата(Paramedic @ Apr 17 2007, 15:57) Re...   Apr 17 2007, 16:07
- - sergeeff   Можно до разрешения прерываний распечатать таблицу...   Apr 17 2007, 16:05
|- - Paramedic   Цитата(sergeeff @ Apr 17 2007, 17:05) Мож...   Apr 17 2007, 16:08
|- - amw   Цитата(Paramedic @ Apr 17 2007, 16:08) Де...   Apr 17 2007, 16:13
|- - Paramedic   Цитата(amw @ Apr 17 2007, 17:13) А таблиц...   Apr 18 2007, 07:40
- - Paramedic   Всем большое спасибо за советы, вроде решил пробле...   Apr 18 2007, 13:10
- - sergeeff   Ну добрались таки до самого интересного. Стандартн...   Apr 18 2007, 18:48


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 07:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016