Разрабатываю девайс, фрагмент задачи - получить по Ethernet прошивку (hex-файл) и зашить ею PIC24F08.
Написал интерфейс для программирования PIC'a, для получения прошивки, синтаксического анализа строк hex-файла. Встал вопрос, как именно данные из hex-файла должны быть прописаны во флэш PIC'a.
У меня есть некий тестовый хекс-файл, с прошивкой. Я PICkit'ом прошиваю микроконтроллер и смотрю содержимое флеш памяти и пытаюсь сопоставить с тем, что в хекс-файле, которым я его только что прошил было написано.
Вот например кусок
:100800000080FA003400F9004F0078000040060034
:10081000801F78003400F80000002000A00188004C
:100820000200FA00004180000000E0001E003A00D3
:100830001900370022C2BF00624060000004E000DF
Разберем его
Размер Адрес Тип записи Данные КС
: 10 0800 00 00 80 FA
00 34 00 F9
00 4F 00 78
00 00 40 06
00 34
: 10 0810 00 80 1F 78
00 34 00 F8
00 00 00 20
00 A0 01 88
00 4C
: 10 0820 00 02 00 FA
00 00 41 80
00 00 00 E0
00 1E 00 3A
00 D3
: 10 0830 00 19 00 37
00 22 C2 BF
00 62 40 60
00 00 04 E0
00 DF
Что я вижу в памяти PIC,а.

Проблема в следующем. Очевидно, что данные из первой строки записались по адресу 0x0400 вместо 0x0800 (это не совпадение и по адресу 0x0800 память пуста, FFFFFF там). Также непонятно куда делись выделенные жирным в хексе байты.
Сообщение отредактировал vardik - Oct 20 2011, 07:16