LINUX.ORG.RU
Ответ на: комментарий от adriano32

> *.ihx == intel hex formst file получил?

Бери программатор и шей.

Как мне перевести это в бинарник, который я запишу в микросхему памяти? Собранный мною программатор и управляющая программа умеет взять файл и зашить его.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от adriano32

Бери программатор

Имеется в виду и софтина (avrdude, например) и аппартно через что будешь шить (шнурок с LPT-шника или RS232)

adriano32 ★★★
()
Ответ на: комментарий от adriano32

> Имеется в виду и софтина (avrdude, например) и аппартно через что будешь шить (шнурок с LPT-шника или RS232)

Самодельный программатор по LPT и небольшая программка.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от adriano32

> Что за программа?

Самописная. Берет файл прошивки и загоняет его в мой программатор по LPT.

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от adriano32
$ cd /usr/src
$ wget http://sourceforge.net/projects/hex2bin/files/hex2bin/Hex2bin-1.0.8.tar.bz2
$ tar xvfj Hex2bin-1.0.8.tar.bz2
$ cd Hex2bin
$ make install
$ cat test.hex
:0E01370000C3ECFF0000000000F1ED4100F1FC
:0E014500ED4100F1ED4100F1ED4100F1ED4121
:0E01530000F1ED4100F1ED4100F1ED4100C978
:0E016100000000C9000000C9000000C9000035
:0E016F0000C9000000C3910000C33800000763
:00100000EF
:00000001FF
$ /usr/local/bin/hex2bin test.hex
hex2bin v1.0.8, Copyright (C) 1998 Jacques Pelletier
checksum extensions Copyright (C) 2004 Rockwell Automation
improved P.G. 2007

0 byte length Data record ignored
Lowest address  = 00000137
Highest address = 0000017C
Pad Byte        = FF
8-bit Checksum = E9
$ od -x test.bin
0000000 c300 ffec 0000 0000 f100 41ed f100 41ed
0000020 f100 41ed f100 41ed f100 41ed f100 41ed
0000040 f100 41ed f100 41ed c900 0000 c900 0000
0000060 c900 0000 c900 0000 c900 0000 c300 0091
0000100 c300 0038 0700
0000106

Будь внимателен со смещением. В данном примере из тарбола с исходниками смещение в ihx файле в первой строке например 0x0137, но бинарник без опции -s <start_offset> сгенерит с0-го байта

adriano32 ★★★
()
Ответ на: комментарий от adriano32

> но бинарник без опции -s <start_offset> сгенерит с0-го байта

Вроде как и надо с 0 смещения? При начальном пуске выполняется команда по 0 адресу

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от adriano32

На текущий момент

:03000000020008F3
:0300610002000397
:050003001200DF80FE89
:0A006400AA8274804514F50F74039E
:07006E005AF510750E008524
:060075001090850F90853C
:03007B000E9022C2
:08007E000508744BB508177565
:0700860008000509743CB5F8
:06008D00090D75090005D4
:070093000A7418B50A037599
:02009A000A005A
:05009C00E50C620B05FC
:0700A1000D740AB50D057591
:0400A8000D00C20085
:0500AC00A20082019298
:0500B10005A203B3925B
:0400B60006A2038219
:0400BA000272068246
:0600BE00059204400375E9
:0200C4000B002F
:0700C600850B147582000296
:0200CD000064CD
:0700CF00850E90859010756D
:0700D6000E82850E9085905B
:0200DD001122EE
:0100DF0022FE
:06003700E478FFF6D8FD9D
:080015007900E94400601B7A48
:05001D00009000E478F2
:030022000075A0C6
:0A00250000E493F2A308B8000205FE
:08002F00A0D9F4DAF275A0FF7C
:08003D007800E84400600A7934
:030045000075A0A3
:0600480000E4F309D8FCFE
:08004E007800E84400600C7921
:0B00560000900000E4F0A3D8FCD9FAF1
:03000800758120DF
:0A000B001200E0E58260030200032A
:0400E0007582002203
:00000001FF

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Ну да, с нуля. И похоже что пропусков нет. Как и должно быть
А МК пустой? Считать посмотреть что там? И какого размера там флешка? Думаю что не ровно 228 байт, а больше. Тогда пустое незанятое место надо забивать в зависимости от МК 0xFF (0x3F 0x00 или чем-то там) ЕМНИП. Хотя если твой программатор затирает всю флешку перед записью, то не надо. Если нет - то надо почитать по этому поводу.

adriano32 ★★★
()
Ответ на: комментарий от cvs-255

Как твоя программа-прошивальщик работает? Если ей нужен целиком блоб в 32К, то допиши FF-ки в конец в количестве, необходимом для того, чтоб размер твоего блоба сравнялся с блобом, считанным из МК. Ну ты понял.
Хотя по-моему в алгоритмеах прошивки всегда сперва erase. Так что думаю можно заглянуть в даташит в раздел flashing, убедиться что сперва flash'ka стирается, а потом шить. если не найдёшь, допиши ff-ок.

adriano32 ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.