Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Непонятный код в начале флэш, LPC2148
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
SanvaldYV
Столкнулся со странной ситуацией:
Контроллер LPC2148, после стирания при помощи J-flash и последующего выкл/вкл в начале флэш ИНОГДА появляется следующая последовательность (читаю все тем же J-flash):
"E59F4034
E3A05002
E5845000
E3A05003
E5845004
E59F201C
E3A03000
E1020093
E2822028
E1021093
E3C03007
E5023028
E51FF004
7FFFD1C0
E002C014
E01FC000"

Код всегда один и тот же. Причем стереть его не удается, при запуске команды стирания J-flash выдает ошибку - что, мол, не стереть первый сектор. При заливке флэши нулями - заливается все кроме этих байт вначале.
Самое интересное, что при этом если попытаться залить новую прошивку БЕЗ стирания флэши, то она благополучно заливается (причем переписываются и эти адреса тоже). Как это возможно без их стирания - непонятно.
Никогда раньше (работал еще с LPC2103 и LPC2132) и все тем же J-flash не сталкивался с таким.

Может кто нибудь прояснит, что это за явление может быть?
KRS
Так это скорее всего первые 64 байта бутлоадера, они после ресета мапятся на 0, потом бутлоадер этот мап снимает и запускает приложение.
Есть регистр которые позволяет на первые 64 байта отмапить флеш рам или бутлоадер
SanvaldYV
Цитата(KRS @ Feb 21 2008, 16:18) *
Так это скорее всего первые 64 байта бутлоадера, они после ресета мапятся на 0, потом бутлоадер этот мап снимает и запускает приложение.
Есть регистр которые позволяет на первые 64 байта отмапить флеш рам или бутлоадер


Про Memory Mapping control register (MEMMAP) я в курсе. Но не могу понять, почему я наблюдаю там этот код и не могу стереть флэш уже находясь в загрузчике - J-Flash из-за этого говорит, что мол чекбланк сектора после стирания не проходит (я же ничего не могу записать сам в MEMMAP J-Flash'ем) crying.gif

Ничего страншного то нет конечно, просто хочу разобраться до конца smile.gif
GetSmart
Может бутлоадер "кривой". Вы просто зашейте программу и узнайте работает она или нет. А что там J-Flash показывает это не существенно.
SanvaldYV
Цитата(GetSmart @ Feb 21 2008, 16:40) *
Может бутлоадер "кривой". Вы просто зашейте программу и узнайте работает она или нет. А что там J-Flash показывает это не существенно.


Программа прошивается (если на запрос "стирать ли флэш" ответить "нет", а то чек бланк не пройдет) и нормально работает без всяких глюков.
KRS
А вы попробуйте под IAR, например, сделать attach и посмотрите что во флеше происходит. И значение MEMMAP.
А сама программа то работает?
Кстати J-Flash считает для LPC контрольную сумму прерываний и вставляет ее в нужное место?
SanvaldYV
Цитата(KRS @ Feb 21 2008, 17:04) *
А вы попробуйте под IAR, например, сделать attach и посмотрите что во флеше происходит. И значение MEMMAP.
А сама программа то работает?
Кстати J-Flash считает для LPC контрольную сумму прерываний и вставляет ее в нужное место?


Отладка из-под ИАРа идет нормально.
Сама программа тоже работает нормально.
Контрольную сумму J-Flash считает при запуске прошивки и куда надо вставляет.
Все вообщем работает beer.gif

Единственная непонятная вещь - почему при чтении флэша на только что стертом контроллере (на котором до этого было чтото записано) по первым 64 байтам читается тот самый кусок бутлоадера (это действительно его кусок - нашел в инете, там народ разбирал что в нем написано).

Наверное остается только винить в этом какую то кривость загрузчика в этой ревизии чипа? 05.gif
khach
Стереть его можно, но только не по нулевому адресу, а по тому ,где он лежит всегда. А нулевой адрес- это просто копия, и автомат записи-стирания этот адрес непонимает. Где то в инете валялся дизассемблированный бутлоадер первых LPC- там можно все это посмотреть.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.