Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: BootLoader для LPC2103
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
SanvaldYV
Есть необходимость написать свой бутлоадер для LPC2103. Посмотрев поиск примерно понял как все делается. Возникла пара вопросов:

1. Куда его грузить? ( в смысле, в какое место флэш - с нулевого адреса, перенося таблицу прерываний в RAM, или в конец флэши, но тогда как переходить на него при старте после записи рабочего приложения?)
2. Нормально ли пишется приложение через IAP?
KRS
Цитата(Юрий Санвальд @ May 21 2007, 11:34) *
Есть необходимость написать свой бутлоадер для LPC2103. Посмотрев поиск примерно понял как все делается. Возникла пара вопросов:

1. Куда его грузить? ( в смысле, в какое место флэш - с нулевого адреса, перенося таблицу прерываний в RAM, или в конец флэши, но тогда как переходить на него при старте после записи рабочего приложения?)
2. Нормально ли пишется приложение через IAP?


Через IAP все пишется нормально.

А вот если вы хотите что бы при запуске, ваш бутлоадер всегда получал управление, вам прийдется использовать покарйней мере RESET вектор, поэтому имеет смыл и сам бутлоадер держать в начале флеша.
А основная программа может
1. Использовать RAM для таблицы прерываний
2. Если прерывания идут через VIC то собственно записать в вектор кманду перехода по регистру vic ..., а основная программа проинициализирует VIC как ей нужно.
3. В основной программе находится еще одна таблица прерываний и бутлоадер переходит по ней.
zltigo
Цитата(KRS @ May 21 2007, 11:26) *
А основная программа может
....
2. Если прерывания идут через VIC то собственно записать в вектор кманду перехода по регистру vic ..., а основная программа проинициализирует VIC как ей нужно.

Выбрал этот вариант. IRQ через VIC. FIQ жесткая точка входа в приложение. Обработчики Exceptions c отладчиком прекрасно располагаются в "загрузчике".
SanvaldYV
Цитата(KRS @ May 21 2007, 12:26) *
А основная программа может
...
2. Если прерывания идут через VIC то собственно записать в вектор кманду перехода по регистру vic ..., а основная программа проинициализирует VIC как ей нужно.
...

Спасибо, попробую сделать так.
SanvaldYV
Вдогонку еще один вопрос - не нашел в юзер мануале времени стирания одного сектора флэш, может кто замерял сколько по времени это займет при стирании через IAP?
zltigo
Цитата(Юрий Санвальд @ May 22 2007, 14:17) *
Вдогонку еще один вопрос - не нашел в юзер мануале времени стирания одного сектора флэш, может кто замерял сколько по времени это займет при стирании через IAP?

Столько-же сколько и стирание всей Flash. Полученную цифру уже на форуме озвучивал совсем недавно. Причем в той ветке которую Вы поднимали.
http://electronix.ru/forum/index.php?showt...41&hl=flash
Ykidia
От себя хочу добавить, что для LPC2000 бутлоадер должен занимать как минимум 0-й сектор, если нет необходимости перешивать самого себя. Т.е. расположение бутлоадера где-то "в конце" или совмещать его с основной программой в 0-м секторе крайне нежелательно. Иначе обязательно возникнет (и возникала не раз) ситуация, когда в момент перепрошивки 0-го сектора накрывается питание, в результате чего ломается контрольная сумма, находящаяся в 0-м секторе, а если сломана контрольная сумма, то филипсовский бутлоадер не запустит пользовательский код.
Иными словами, бутлоадер лучше располагать так, чтобы не "кантовать" 0-й сектор.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.