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

 
 
 
Reply to this topicStart new topic
> BootLoader для LPC2103
SanvaldYV
сообщение May 21 2007, 07:34
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



Есть необходимость написать свой бутлоадер для LPC2103. Посмотрев поиск примерно понял как все делается. Возникла пара вопросов:

1. Куда его грузить? ( в смысле, в какое место флэш - с нулевого адреса, перенося таблицу прерываний в RAM, или в конец флэши, но тогда как переходить на него при старте после записи рабочего приложения?)
2. Нормально ли пишется приложение через IAP?
Go to the top of the page
 
+Quote Post
KRS
сообщение May 21 2007, 08:26
Сообщение #2


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Юрий Санвальд @ May 21 2007, 11:34) *
Есть необходимость написать свой бутлоадер для LPC2103. Посмотрев поиск примерно понял как все делается. Возникла пара вопросов:

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


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

А вот если вы хотите что бы при запуске, ваш бутлоадер всегда получал управление, вам прийдется использовать покарйней мере RESET вектор, поэтому имеет смыл и сам бутлоадер держать в начале флеша.
А основная программа может
1. Использовать RAM для таблицы прерываний
2. Если прерывания идут через VIC то собственно записать в вектор кманду перехода по регистру vic ..., а основная программа проинициализирует VIC как ей нужно.
3. В основной программе находится еще одна таблица прерываний и бутлоадер переходит по ней.
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 21 2007, 08:37
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



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

Выбрал этот вариант. IRQ через VIC. FIQ жесткая точка входа в приложение. Обработчики Exceptions c отладчиком прекрасно располагаются в "загрузчике".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SanvaldYV
сообщение May 21 2007, 09:24
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



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

Спасибо, попробую сделать так.
Go to the top of the page
 
+Quote Post
SanvaldYV
сообщение May 22 2007, 11:17
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



Вдогонку еще один вопрос - не нашел в юзер мануале времени стирания одного сектора флэш, может кто замерял сколько по времени это займет при стирании через IAP?
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 22 2007, 11:21
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



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

Столько-же сколько и стирание всей Flash. Полученную цифру уже на форуме озвучивал совсем недавно. Причем в той ветке которую Вы поднимали.
http://electronix.ru/forum/index.php?showt...41&hl=flash


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Ykidia
сообщение May 23 2007, 08:10
Сообщение #7


Частый гость
**

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



От себя хочу добавить, что для LPC2000 бутлоадер должен занимать как минимум 0-й сектор, если нет необходимости перешивать самого себя. Т.е. расположение бутлоадера где-то "в конце" или совмещать его с основной программой в 0-м секторе крайне нежелательно. Иначе обязательно возникнет (и возникала не раз) ситуация, когда в момент перепрошивки 0-го сектора накрывается питание, в результате чего ломается контрольная сумма, находящаяся в 0-м секторе, а если сломана контрольная сумма, то филипсовский бутлоадер не запустит пользовательский код.
Иными словами, бутлоадер лучше располагать так, чтобы не "кантовать" 0-й сектор.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:10
Рейтинг@Mail.ru


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