|
Вопросы по созданию своего загрузчика для LPC17xx |
|
|
|
Sep 3 2011, 21:42
|
Местный
  
Группа: Свой
Сообщений: 249
Регистрация: 2-05-06
Из: Россия, Поволжье
Пользователь №: 16 686

|
Всем доброго времени суток. Адаптирую загрузчик с LPC2xxx на LPC176x. Копался в мануалах, столкнулся с тем, что у кортекса таблица векторов прерываний гораздо больше, чем у arm7. Как я понял, она может занимать максимум 1КБ против 64 байт у arm7. Для предыдущих проектов использовалась программа шифрования прошивки, которая знала расположение спецтаблицы, находящейся по определённому адресу сразу следом за таблицей векторов. Получается, теперь необходимо или ремапить таблицу векторов в кортексе для сохранения совместимости с софтом верхнего уровня, либо переписывать этот софт? Можно ли занимать адреса, скажем, 0x40...0x100 объявлением массива через __root const? И ещё, в каком документе от ARM описан участок памяти 0x0000 - 0x0400? В DDI0337H_cortex_m3_r2p0_trm.pdf нет. Просто code и всё. Кто может подсказать, что и где там обычно расположено? Компилятор - IAR.
|
|
|
|
|
 |
Ответов
|
Sep 5 2011, 04:10
|
Частый гость
 
Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687

|
Цитата(Altemir @ Sep 4 2011, 01:42)  Всем доброго времени суток. Адаптирую загрузчик с LPC2xxx на LPC176x. Копался в мануалах, столкнулся с тем, что у кортекса таблица векторов прерываний гораздо больше, чем у arm7. Как я понял, она может занимать максимум 1КБ против 64 байт у arm7. Для предыдущих проектов использовалась программа шифрования прошивки, которая знала расположение спецтаблицы, находящейся по определённому адресу сразу следом за таблицей векторов. Получается, теперь необходимо или ремапить таблицу векторов в кортексе для сохранения совместимости с софтом верхнего уровня, либо переписывать этот софт? Можно ли занимать адреса, скажем, 0x40...0x100 объявлением массива через __root const? И ещё, в каком документе от ARM описан участок памяти 0x0000 - 0x0400? В DDI0337H_cortex_m3_r2p0_trm.pdf нет. Просто code и всё. Кто может подсказать, что и где там обычно расположено? Компилятор - IAR. Да, придется спецтаблицу передвинуть за таблицу векторов. Но проблемы не вижу, т.к. со сменой ядра Вам обязательно пересобирать как загрузчик, так и основной софт. Вот и сдвиньте все дальше. Адреса 0х40 и выше конечно можно использовать как угодно (и объявлять тоже), но только есть ли гарантия, что не произойдет прерывания, адрес вектора которого попадет на ваши личные данные? Описание на области памяти ищите в DS на контроллер. Cortex-M3 стандартизует лишь область векторов прерываний, да и то не строго, а остальное, как правило, отдано под пользовательский код.
|
|
|
|
|
Sep 5 2011, 05:09
|
Местный
  
Группа: Свой
Сообщений: 249
Регистрация: 2-05-06
Из: Россия, Поволжье
Пользователь №: 16 686

|
Цитата(gladov @ Sep 5 2011, 08:10)  Да, придется спецтаблицу передвинуть за таблицу векторов... Да, к этому и пришёл. Спасибо. Думаю, в моём случае сдвинуть на 1КБ - не проблема. Цитата Описание на области памяти ищите в DS на контроллер. Cortex-M3 стандартизует лишь область векторов прерываний, да и то не строго, а остальное, как правило, отдано под пользовательский код. Если б NXP где-то явно это описала... В UM10360.pdf Rev. 2 — 19 August 2010 только на стр. 19 общая карта памяти  Похоже, дизасмить придётся. А такой вопрос - где обычно после IARа находится стартовый вектор? Т.е., по какому адресу вызывать свою программу из загрузчика, если в *.icf файле я определяю: Код define symbol __ICFEDIT_region_ROM_start__ = 0x00008000;
|
|
|
|
Сообщений в этой теме
Altemir Вопросы по созданию своего загрузчика для LPC17xx Sep 3 2011, 21:42  gladov Цитата(Altemir @ Sep 5 2011, 09:09) Да, к... Sep 5 2011, 05:22 Altemir Попробовал сделать ремап векторов прерываний. Не з... Sep 5 2011, 09:38 Altemir И ещё. Почему при указании в *.icf файле строки, н... Sep 5 2011, 11:38 gladov Цитата(Altemir @ Sep 5 2011, 15:38) P.P.S... Sep 6 2011, 03:58  Altemir Цитата(gladov @ Sep 6 2011, 07:58) А можн... Sep 6 2011, 04:59 Alechek От сабя скажу следующее:
Я тоже вначале был немног... Sep 6 2011, 07:00 Altemir Цитата(Alechek @ Sep 6 2011, 11:00) В ито... Sep 6 2011, 09:53 KRS Я для IAR такой код перехода в программу поставил
... Sep 6 2011, 14:34 Altemir Цитата(KRS @ Sep 6 2011, 18:34) Я для IAR... Sep 7 2011, 04:52  KRS Цитата(Altemir @ Sep 7 2011, 08:52) Не по... Sep 7 2011, 10:34 Altemir KRS
Отлично! Ещё раз - благодарю. Sep 7 2011, 11:18 Vitaliy_ARM Пишу спец загрузчик и как раз столкнулся с тем, чт... Sep 16 2011, 12:22  KRS Цитата(Vitaliy_ARM @ Sep 16 2011, 16:22) ... Sep 16 2011, 13:10   Alechek Цитата(KRS @ Sep 16 2011, 19:10) но принц... Sep 19 2011, 04:50    KRS Цитата(Alechek @ Sep 19 2011, 08:50) Глав... Sep 19 2011, 20:39 Alechek Область то тоже должна быть выровнена, причем байт... Sep 20 2011, 06:12
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|