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

 
 
 
Reply to this topicStart new topic
> Ремап векторов LPC21xx_Keil, Как расположить таблицу векторов в нужной области Flash?
Punk
сообщение Jan 12 2011, 03:16
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Приветствую
Написал загрузчик для lpc2129, который располагается во FLASH начиная с адреса 0x0 и занимает примерно 4К. Этот загрузчик грузит основное приложение так же во Flash , начиная с адреса 0x1000. После загрузки приложения оно должно запускаться.
Далее для меня непонятный момент: Как сделать так чтобы загруженное приложение работало со своей таблицей векторов, как эту таблицу грамотно расположить?. Искал ответ в аппликухе на Secondary Bootloader, но внятного разъяснения там не нашел (во всяком случае для себя laughing.gif ).
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Jan 12 2011, 03:59
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Если в загрузчике прерывания не используются, то в загрузчике прыгать со всех векторов на +0x1000 (кроме резета, естественно). Ну и исключительные ситуации лучше обрабатывать загрузчиком.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
Punk
сообщение Jan 12 2011, 04:08
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Цитата(Dron_Gus @ Jan 12 2011, 09:59) *
Если в загрузчике прерывания не используются, то в загрузчике прыгать со всех векторов на +0x1000 (кроме резета, естественно). Ну и исключительные ситуации лучше обрабатывать загрузчиком.

А прыгать путем ручного переписывания стартап кода? Автоматизированного средства в Кейеле нет?
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Jan 12 2011, 04:53
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Не знаю. Делал под IAR, переписывал ручками.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
Wano
сообщение Jan 12 2011, 11:48
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 272
Регистрация: 3-06-06
Пользователь №: 17 737



Цитата(Punk @ Jan 12 2011, 09:08) *
А прыгать путем ручного переписывания стартап кода? Автоматизированного средства в Кейеле нет?


Скопировать свою таблицу векторов в RAM на адрес 0х40000000 и сделать ремэп MEMMAP=2.
А чтобы линкер не лез в первые 64 байта изменить в скаттер файле
RW_IRAM1 0x40000040 0x0000FFC0 { ; RW data
.ANY (+RW +ZI)
}
ну или alt+f7 и там поменять, если глубже лезть не хочется.
Go to the top of the page
 
+Quote Post
Punk
сообщение Jan 12 2011, 14:55
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Цитата(Wano @ Jan 12 2011, 17:48) *
Скопировать свою таблицу векторов в RAM на адрес 0х40000000 и сделать ремэп MEMMAP=2. ...



То что нужно, спасибо
Go to the top of the page
 
+Quote Post

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

 


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


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