Jump to content

    
Sign in to follow this  
prst

Keil и HEX->BIN

Recommended Posts

Люди добрые здравствуйе.

раньше моя программа писалась, компилилась и зашивлась из под линукса, все было отлично и радужно.

вчера код программы заставил работать в Keil и сразу появилась куча вопросов и проблем.

прога компилируется, генерится HEX, но не могу теперь получить/сгенерировать бинарик чтобы зашить его в макет.

подскажите плиз, как переконвертировать выходной HEX от Keil в BIN, что бы его скормить в загрузчик SAM-BA

пробовал утитилкой HEX2BIN - безрезультатно.

подскажите плз....

Edited by PrSt

Share this post


Link to post
Share on other sites
http://www.keil.com/support/docs/274.htm

может это поможет?

 

я же говорю - HEX2BIN не помогает

 

Syntax: HEX2BIN [/option] hexfile [binfile]

 

is the Intel HEX input file

is the binary file to create

 

may be any of the following

 

Note: n is a decimal number.

 

/Ln Binary file length

/Pn Pad data for binary file

/On Address offset (to add to HEX records)

/M Merge data into existing BIN file

/Q Quiet mode (no statistics are displayed)

/X Don't process ext. segment/linear address records

 

/? This help text

 

если верить хелпу то ключи не обязательно, вот например делаю (может я не так что-то понял)

 

d:\_work\MDSA_Keil>hex2bin mdsa.hex mdsa.bin

 

HEX2BIN Version 1.06

Copyright © 1995 Programix Corp.

Portions copyright © 1993-1995 BITWARE.

All rights reserved.

Status: Creating binary file.

Status: Writing 4 bytes at address 0x0000CEBC.

ERROR: Invalid record type in HEX record 1246.

Status: HEX to BIN conversion was not successful.

 

D:\_work\MDSA_K~1>

Share this post


Link to post
Share on other sites

А у Вас hex или что-то типа hex-386? А то с C8051F120 при выходном коде более 64 кило hex-а мало и предлагается эта фигня - там другой формат. Приходилось писать по-быстрому конвертилку

Share this post


Link to post
Share on other sites
А у Вас hex или что-то типа hex-386? А то с C8051F120 при выходном коде более 64 кило hex-а мало и предлагается эта фигня - там другой формат. Приходилось писать по-быстрому конвертилку

 

каюсь, но понятия не имею, вот и спрашиваю по этому

гдето разок встречал hex-386, нощяс найти это место в упор не могу...

 

дело втом что Keil упорно долгое время не хотел вообще компилить мой проект, в то время как под линуксов процес шел по полной программе

 

и вот я вчера таки уговорил его собрать май проект, а теперь не знаю как зашить его в AT91SAM7S256

 

Keil генерирует ELF и HEX, а вот как их запихнуть в SAM-BA - не пойму, вот и спрашиваю у Вас.

 

Дело в том что было же много тех кто работал с кейлом, они же както зашивали свои камни...

вот и надеюсь что ктото подскажет... а тут кейлистов чет и не видно...

Share this post


Link to post
Share on other sites
Таким конвертором пробовали?

биг сенк!

этот конвертор сделал вроде правильный бинарик,

ну по крайней мере по размеру похож...

попробую зашить...

Share this post


Link to post
Share on other sites

Доброй ночи !

Та же проблема и ничего не получается.

*.HEX создан KEILом

 

HEX2BIN говорит "invalid record type in HEX record 1 "

 

HEXTBCS говорит "reclen=4 errcod=9 errline=2 errmsg=Memory Area Owerlap"

 

fromelf делает *BIN из *ELF . А как *ELF в KEILе получить ?

 

Кто как делает BIN из HEX - расскажите .

 

Bin нужен для программирования AT91SAM7S по USB . Может для этого есть программа, которая hex понимает ?

 

Заранее благодарю !

Edited by MiklPolikov

Share this post


Link to post
Share on other sites

Для AT91SAM7S64 я пользуюсь методом DeadMoroz насчет точности написания входных параметров подтвердить не могу, точно не помню. Но похоже на правду. В опциях проекта была вкладка PostBuild или AfterBuild, а может еще как-то по другому называлась, вот туда я и прописываю это строку. А elf в keil вроде по умолчанию получается.

Share this post


Link to post
Share on other sites
Доброй ночи !

Та же проблема и ничего не получается.

*.HEX создан KEILом

 

HEX2BIN говорит "invalid record type in HEX record 1 "

 

HEXTBCS говорит "reclen=4 errcod=9 errline=2 errmsg=Memory Area Owerlap"

 

fromelf делает *BIN из *ELF . А как *ELF в KEILе получить ?

 

Кто как делает BIN из HEX - расскажите .

 

Bin нужен для программирования AT91SAM7S по USB . Может для этого есть программа, которая hex понимает ?

 

Заранее благодарю !

 

Я пользуюсь srecord. Очень мощная штука, все умеет что надо. HEX-файлы после нее едят все.

Пример скрипта для склеивания бутлоадера с приложением с вставкой CRC. При этом формируется дополнительный бинарник для шифрования (тоже с CRC).

 

C:\DEV\ARM\srec_cat.exe Application\application.hex --Intel --l-e-crc32 --max Application\application.hex --Intel --Output application.hex --Intel
C:\DEV\ARM\srec_cat.exe Bootloader\bootloader.hex --Intel --Output bootloader.hex --Intel
C:\DEV\ARM\srec_cat.exe bootloader.hex --Intel --fill 0xFF 0x0 0x5000 application.hex --Intel --Output combined.hex --Intel
C:\DEV\ARM\srec_cat.exe application.hex --Intel --offset -0x5000 --Output application.bin --Binary

Share this post


Link to post
Share on other sites

Искать по ветке где-то уже писал, думаю разберешься без коментариев:

 

C:\Keil\ARM\BIN30\fromelf.exe --bin -o ".\Obj\Mouse.bin" ".\Obj\Mouse.axf"

 

На рисунке куда и что писать, удачи.

post-31001-1213152632_thumb.jpg

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this