Цитата(Danis @ Oct 20 2011, 12:52)
А нужен ли вам именно hex файл. Его ведь разбирать надо (парсить). Hex файл это не просто карта флеш памяти для контроллера, там много другой служебной информации. Проще сразу «бинарник» удаленно получать и писать. Либо, все таки, разберитесь со структурой hex. А нули это фантомные байты, с ними ничего делать не надо.
Немного разобрался, насчет нулей ты действительно прав, спасибо.
А с адресами ситуация следующая. Дело в том, что в hex-файле адресация идет по байтам, а на представленном скриншоте из PICKIT'a адресация идет по словам, каждое из которых состоит из трех байт. В хексе каждый четвертый байт, те которые выделены жирным шрифтом. как верно заметил коллега Danis "фантомные".
Одно слово занимает диапазон адресов длиной 0x2, например
0x000000 - 0x000002 - 1ое слово (3 байта)
0x000002 - 0x000004 - 2ое слово (3 байта)
Для записи такого диапазона берем 3 байта из поля данных Hex-файла + 1 "фантомный байт", итого 4 байта.
Таким образом одно слово занимает 2 адреса при адресации по словам
Это же слово в hex-файле занимает 4 байта и соответственно 4 адреса при адресации по байтам.
Этим и обусловлено удвоение адресов в hex-файле.
Насчет бинарника согласен, но задача именно через hex-файл стоит, да и парсер уже написан ; )
Сообщение отредактировал vardik - Oct 20 2011, 09:18