Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ремап векторов LPC21xx_Keil
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Punk
Приветствую
Написал загрузчик для lpc2129, который располагается во FLASH начиная с адреса 0x0 и занимает примерно 4К. Этот загрузчик грузит основное приложение так же во Flash , начиная с адреса 0x1000. После загрузки приложения оно должно запускаться.
Далее для меня непонятный момент: Как сделать так чтобы загруженное приложение работало со своей таблицей векторов, как эту таблицу грамотно расположить?. Искал ответ в аппликухе на Secondary Bootloader, но внятного разъяснения там не нашел (во всяком случае для себя laughing.gif ).
Dron_Gus
Если в загрузчике прерывания не используются, то в загрузчике прыгать со всех векторов на +0x1000 (кроме резета, естественно). Ну и исключительные ситуации лучше обрабатывать загрузчиком.
Punk
Цитата(Dron_Gus @ Jan 12 2011, 09:59) *
Если в загрузчике прерывания не используются, то в загрузчике прыгать со всех векторов на +0x1000 (кроме резета, естественно). Ну и исключительные ситуации лучше обрабатывать загрузчиком.

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


Скопировать свою таблицу векторов в RAM на адрес 0х40000000 и сделать ремэп MEMMAP=2.
А чтобы линкер не лез в первые 64 байта изменить в скаттер файле
RW_IRAM1 0x40000040 0x0000FFC0 { ; RW data
.ANY (+RW +ZI)
}
ну или alt+f7 и там поменять, если глубже лезть не хочется.
Punk
Цитата(Wano @ Jan 12 2011, 17:48) *
Скопировать свою таблицу векторов в RAM на адрес 0х40000000 и сделать ремэп MEMMAP=2. ...



То что нужно, спасибо
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.