Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Бинарник в программный код
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
undi
Доку на асм почитал и не нашел... Может существует дирректива?
Или переколбашиватель в текстовый вид писать?
jack_avenger
Не пробовал не будет ли ругатся компилятор, но может так:
.org <адрес>
.db <data>,<data>,<data>.........<data>
undi
Почти два килобайта надо вставить.
Вот я и думаю, что придется прогу писать, которая бинарник в .db <data>,<data>,<data>.........<data>
и переделает. Неохота как...
jack_avenger
Цитата(undi @ Nov 12 2005, 14:51) *
Почти два килобайта надо вставить.
Вот я и думаю, что придется прогу писать, которая бинарник в .db <data>,<data>,<data>.........<data>
и переделает. Неохота как...

Так прога должна быть уже готовая - поищи хорошенько в нете =)))
solidreg
Большенство компиляторов подерживает команду INLINE. Посмотрите на документацию компилятора.
nml
Цитата(undi @ Nov 12 2005, 15:51) *
Почти два килобайта надо вставить.
Вот я и думаю, что придется прогу писать, которая бинарник в .db <data>,<data>,<data>.........<data>
и переделает. Неохота как...

Ну если неохота... Вот:
Код
program bin_to_a;
{$APPTYPE CONSOLE}
uses
  SysUtils;

Var F:File of byte;FO:TextFile;
    B:Byte;
    I:Integer;
begin
  if ParamStr(1)='' then
    Begin
      Writeln('X:\bin_to_a filename');
      Halt(1);
    End;

  Assign(F,ParamStr(1));Reset(F);

  if IoResult<>0 then
    Begin
      Writeln('No file "'+ParamStr(1)+'"');
      Halt(1);
    End;

  Assign(FO,ChangeFileExt(ParamStr(1),'.inc')); Rewrite(FO);
  I:=0;
  Repeat
    if I=0 then Write(FO,#9'.db ');
    Read(F,B); Write(FO,'0x',IntToHex(B,2));
    if I=15 then Begin I:=0; Writeln(FO); End else Begin Write(FO,','); Inc(I); End;
  Until Eof(F);
  Close(F); Close(FO);


end.

Это для дельфи ... всего делов-то.
k0t
Я делал так(на асме): 1. Ставишь метку в конце программы - это будет адрес начала данных.
2. Компилируешь, получаешь .hex
3. Конвертишь в .bin (hex2bin)
4. copy /b program.bin+data.bin result.bin
5. result.bin превращаешь в hex (bin2hex)
6. Прошиваешь smile.gif
IgorKossak
Не сказано в какой среде ведётся разработка.
Если в IAR, то там за пару кликов мышью можно прилинковать любой объём бинарного кода в любое место Flash памяти.
См. опции проекта Linker/Config/Raw binary image или при помощи командной строки (см. описание линкера).
Grape
вот такая примочка есть....

INC-Pro III is back for the final time,
now converting binary to ASM,C/C++, GEMA, QuickBasic and Pascal!
ValeraK
Цитата(undi @ Nov 12 2005, 16:33) *
Доку на асм почитал и не нашел... Может существует дирректива?
Или переколбашиватель в текстовый вид писать?


Ну я с помощю QBasic это делаю:

'Преобразовать из двоичного файла в текстовый .db для AVR ассемблера
File$ = "5x8": Ext$ = "fnt"

OPEN File$ + "." + Ext$ FOR BINARY AS #1 LEN = 1
OPEN File$ + ".txt" FOR OUTPUT AS #2

Size = LOF(1)
bs = 15

FOR i = 1 TO Size
GET #1, i, d%: d% = d% AND &HFF
bs = bs + 1
IF bs = 16 THEN PRINT #2, : PRINT #2, ".db "; : bs = 0
IF d% > 9 THEN PRINT #2, "$";
PRINT #2, LCASE$(HEX$(d%));

IF bs <> 15 THEN PRINT #2, ",";
NEXT i
PRINT #2,

CLOSE #1
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.