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

 
 
> Адрес выполняемого кода
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
Ответов
kan35
сообщение Dec 21 2010, 14:10
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Цитата(quarz @ Dec 21 2010, 18:31) *
Однако при переходе по адресу 0x00000000 вываливается в исключение FaultISR.

Я так думаю, что для такого прыжка надо в регистр PC, желательно в асме загрузить 0 (простите если я сказал что то не то:-))). Просто вызвать код оттуда как указатель на функцию точно неправильно.

Цитата(quarz @ Dec 21 2010, 18:31) *
Как будто по нулевому адресу не код расположен, а что-то другое.
Пишу в IAR, в стартапе указано, что после reset переходит по адресу __iar_program_start. Чему равен __iar_program_start - не нашел.
Как тогда определить адрес расположения моего загрузчика?

Объявите
void __iar_program_start(void);
и вызывайте __iar_program_start(); откуда хотите
Go to the top of the page
 
+Quote Post



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

 


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


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