|
LPC23xx, firmware upgrade, Intel HEX, Keil, Как выловить EPT из HEX-файла? |
|
|
|
Jun 16 2011, 14:53
|

Местный
  
Группа: Свой
Сообщений: 231
Регистрация: 19-12-08
Из: Новосибирск
Пользователь №: 42 594

|
Здравствуйте, коллеги ARMатурщики. Пришла нужда, сделал я, было, LPC2368/78 firmware upgrade (IAP+UART/IPMI) методом заливки Intel HEX файла и интерпретации его на контроллере. По дороге заливщик/загрузчик вылавливает из HEX-потока стартовый адрес (EPT) и хранит его вместе с дескриптором "upgrade"-кода во flash для последующих boot up. Получаю HEX-файл с помощью IAR. Ладно было дело, пока не заставила жизнь получить тот же HEX-файл с помощью Keil. Всё хорошо кроме одного: не могу догадаться, где в полученном HEX-файле ловить EPT. Если кто использует Intel HEX файл, полученный Keil, для прошивки fw upgrade, поделитесь, пож., опытом. Спасибо.  --- В принципе можно чуть продолжить для порядка: форум я читал, следов ответа найти не удалось, знаю, что EPT попадает в HEX-файл из LPC2300.s, только попадает в "шифрованном" компилятором виде, а уж дизассемблер на контроллере делать - вовсе тухлое занятие. Потому и совет хочется. (Идеальный совет - "правильный" LPC2300.s,- только кто его даст...  )
|
|
|
|
|
 |
Ответов
|
Jun 16 2011, 15:27
|

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

|
QUOTE (svss @ Jun 16 2011, 17:53)  не могу догадаться, где в полученном HEX-файле ловить EPT. Возьмите описание Intel HEX формата и реализуйте его ПОЛНОСТЬЮ. И настанет Вам счастье и независимость. QUOTE попадает в "шифрованном" компилятором виде, Смешно
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 16 2011, 16:07
|

Местный
  
Группа: Свой
Сообщений: 231
Регистрация: 19-12-08
Из: Новосибирск
Пользователь №: 42 594

|
Цитата(zltigo @ Jun 16 2011, 22:27)  Возьмите описание Intel HEX формата и реализуйте его ПОЛНОСТЬЮ. И настанет Вам счастье и независимость. Смешно  Я знаю, что Вы любите больше давать советы, чем отвечать на вопросы. Спасибо, но тема не про то. Intel HEX формат я давно "взял", реализовал "полностью" и оно даже работает. Если у Вас есть сомнения или возражения (например, Вы знаете конструкцию HEX, описывающую EPT), не сочтите за труд ткнуть меня туда носом явно, а не намёком. Если Вы найдёте время и силы для написания совета без отсылки к "сделай сам", спасибо.
|
|
|
|
|
Jun 16 2011, 17:56
|

Местный
  
Группа: Свой
Сообщений: 231
Регистрация: 19-12-08
Из: Новосибирск
Пользователь №: 42 594

|
Цитата(scifi @ Jun 16 2011, 23:23)  Ну это уже просто неприлично. См. тут: Wikipedia: Intel HEXЯ понимаю, что тема про моветон вечна и потому приведу для Вас специально отрывок от HEX-файла имени Keil, о котором и тема (она - не про Википедию, как Вам показалось) Код :0400000500000000F7 :020000040000FA :0400000500020000F5 :020000040002F8 (секции с кодом "0" и "1" по понятным причинам опущены.) Всё, других секций нету. Так вот, Record Type 5 не имеет ничего общего с EPT, а Record Type 2 (и 3) в файле от Keil отсутствуют вовсе. Возможно, проблема с проектом. (для справки - огрызок от map-файла: "Image Entry point : 0x0000016c" - стартовый адрес factory code (Image Validation &bootstrap). - он нам не нужен, его контроллер найдёт сам. "main 0x00020035 Thumb Code" - очень похоже на то, что надо, но этот адрес есть только "зарытый" в виде индекса в инструкцию, напоминающую branch(R0). Прошу прощения, я мнемонику ассемблера ещё на память не выучил всю  )) Это я к тому, что Rec type 5 не описывает EPT, да и наличие двух стартовых точек комментировать таки просто неприлично. (PSPS) К предположению об ошибке в проекте - скриншот. Подскажите, если знаете, пож., что там плохо и где. Второй файл - тот самый HEX от Keil - для сомневающихся в моём утверждении. Rec Type 5 там не две, а примерно четыре. Цитата А вообще можно зафиксировать точку входа и не париться. Это я не понял. Разжуйте несчастному, как ея зафиксировать: возможно о том и плач.
Сообщение отредактировал svss - Jun 16 2011, 18:03
Эскизы прикрепленных изображений
|
|
|
|
|
Jun 16 2011, 18:08
|

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

|
QUOTE (svss @ Jun 16 2011, 20:56)  Так вот, Record Type 5 не имеет ничего общего с EPT Не знаю, что Вы за три буквы http://www.google.lv/search?client=opera&a...channel=suggest упорно твердите, но 3 или 5 это именно Start Address в одном из двух форматах 20 или линейном 32bit. Для ARM использование '3' странновато, но как-то встречал. QUOTE Это я не понял. Разжуйте несчастному, как ея зафиксировать Решите для себя и хотя-бы попытайтесь объяснить кто это такая "ея".
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 16 2011, 18:34
|

Местный
  
Группа: Свой
Сообщений: 231
Регистрация: 19-12-08
Из: Новосибирск
Пользователь №: 42 594

|
Цитата(zltigo @ Jun 17 2011, 01:08)  Не знаю, что Вы за три буквы http://www.google.lv/search?client=opera&a...channel=suggest упорно твердите, но 3 или 5 это именно Start Address в одном из двух форматах 20 или линейном 32bit. Для ARM использование '3' странновато, но как-то встречал. Решите для себя и хотя-бы попытайтесь объяснить кто это такая "ея". Ея (старорусск) - её, стартовую точку то есть. Ея её предлагали зафиксировать. Не хочется предполагать, что предлагали с помощью Код #define __at(_addr) __attribute__ ((at(_addr))) "дырявить" код. Слово из трёх букв EPT в переводе с иностранного означает Entry Point (Table). http://www.acronymattic.com/EPT.htmlЭто - не менее распространённое сокращение, чем RTFM. (В первом посте перевод был уже дан, правда без ссылки) Что касается Record Type 5, то он имеет отношение к Start Address для Intel x86, а в нашем случае (я файл выложил) указывает на начало сегмента и к делу не относится, imho. Вы, увы, не ссылаетесь на свой опыт.  Гугль- не панацея, википедия - не кладезь.
Сообщение отредактировал svss - Jun 16 2011, 18:35
|
|
|
|
Сообщений в этой теме
svss LPC23xx, firmware upgrade, Intel HEX, Keil Jun 16 2011, 14:53   zltigo QUOTE (scifi @ Jun 16 2011, 19:23) Внимат... Jun 16 2011, 16:28      zltigo QUOTE (svss @ Jun 16 2011, 21:34) Что кас... Jun 16 2011, 18:44       svss Цитата(zltigo @ Jun 17 2011, 01:44) Может... Jun 16 2011, 18:59        zltigo QUOTE (svss @ Jun 16 2011, 21:59) Ммм... ... Jun 16 2011, 19:09         svss Цитата(zltigo @ Jun 17 2011, 02:09) Не ве... Jun 16 2011, 19:28    aaarrr Цитата(svss @ Jun 16 2011, 21:56) К предп... Jun 16 2011, 21:25     svss Цитата(aaarrr @ Jun 17 2011, 04:25) Прило... Jun 17 2011, 01:37      aaarrr Цитата(svss @ Jun 17 2011, 05:37) Да-да, ... Jun 17 2011, 06:46       svss Цитата(aaarrr @ Jun 17 2011, 13:46) Ваш п... Jun 17 2011, 09:26        scifi Цитата(svss @ Jun 17 2011, 13:26) тогда с... Jun 17 2011, 10:18         zltigo QUOTE (scifi @ Jun 17 2011, 13:18) Если б... Jun 17 2011, 11:08          scifi Цитата(zltigo @ Jun 17 2011, 15:08) Речь ... Jun 17 2011, 11:35           zltigo QUOTE (scifi @ Jun 17 2011, 14:35) Ну так... Jun 17 2011, 12:20            scifi Цитата(zltigo @ Jun 17 2011, 16:20) Ну и ... Jun 17 2011, 14:19         svss Цитата(scifi @ Jun 17 2011, 17:18) Если б... Jun 18 2011, 04:46          zltigo QUOTE (svss @ Jun 18 2011, 07:46) Следуем... Jun 18 2011, 08:48          aaarrr Цитата(svss @ Jun 18 2011, 08:46) Тему мо... Jun 18 2011, 09:37           svss Цитата(aaarrr @ Jun 18 2011, 16:37) Прави... Jun 18 2011, 11:17            zltigo QUOTE (svss @ Jun 18 2011, 14:17) Я здесь... Jun 18 2011, 15:24 KRS я тоже первый раз слышу про EPT в данном контексте... Jun 16 2011, 20:32 svss Цитата(KRS @ Jun 17 2011, 03:32) я тоже п... Jun 16 2011, 21:09  KRS Цитата(svss @ Jun 17 2011, 01:09) Table -... Jun 16 2011, 21:35
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|