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

 
 
> Адрес выполняемого кода
quarz
сообщение Dec 21 2010, 12:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 15-01-05
Из: Москва
Пользователь №: 1 980



Приветствую знатоков!

Работаю с процессором Cortex-M3 LM3S3748, пишу загрузчик.
Загрузчик располагается по нулевым адресам во Flash, прошивка будет находится в старших.
Загрузчик, как и полагается, проверяет наличие прошивки и при отсутствии должен снова запускать себя сначала.
Однако при переходе по адресу 0x00000000 вываливается в исключение FaultISR.

Как будто по нулевому адресу не код расположен, а что-то другое.
Пишу в IAR, в стартапе указано, что после reset переходит по адресу __iar_program_start. Чему равен __iar_program_start - не нашел.
Как тогда определить адрес расположения моего загрузчика?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Dec 21 2010, 14:57
Сообщение #2


Гуру
******

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



Я дико извиняюсь что встреваю, но недавно на Сахаре всплывал вопрос про переход на фиксированный адрес и там выяснилась маленькая тонкость - Cortex работает в Thumb-2, поэтому при переходе командой B(L)X адрес перехода должен содержать в себе "метку" Thumb - единичку в младшем разряде.


--------------------
На любой вопрос даю любой ответ
"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



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

 


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


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