Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прицепить файл в программу...
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
EXeGLuMATOR
Имеется компилятор Keil, RV. Нужно прицепить двоичный файл, чтобы его разместить во флэш-памяти контроллера и потом иметь возможность у нему обратиться как к массиву. const char massiv[]={} - эт понятно, но уж слишком долго туда буковки колбасить... надо где-то 64Кб. Можно ли сделать как-то проще?

ЗЫ. Поиском прошелся - что-то не нашел...
AlexBoy
Цитата(EXeGLuMATOR @ Aug 21 2007, 12:44) *
ЗЫ. Поиском прошелся - что-то не нашел...

Пользуюсь такой утилитой.
В командной строке пишешь CreateArr.exe ФАЙЛ_ДЛЯ_ОБРАБОТКИ
Формирует С файл.
a3r3
Это делается через INCBIN в ассемблерном файле.
EXeGLuMATOR
Цитата(a3r3 @ Aug 21 2007, 14:38) *
Это делается через INCBIN в ассемблерном файле.


Так надо исходнику на С пристегнуть его. 05.gif
a3r3
Цитата(EXeGLuMATOR @ Aug 21 2007, 16:38) *
Так надо исходнику на С пристегнуть его. 05.gif

"Пристегивать" - задача линкера. В C-файле просто пишете extern bla-bla. Только в ассемблере не забудьте EXPORT.
EXeGLuMATOR
Цитата(a3r3 @ Aug 21 2007, 17:21) *
"Пристегивать" - задача линкера. В C-файле просто пишете extern bla-bla. Только в ассемблере не забудьте EXPORT.


Да причем тут ассемблер! Не знаю я его. На С пишу. И пока нет необходимости с ним связываться.

AlexBoy - спасибо за программку. То что надо. beer.gif
Хоть и не напрямую файлик прилинковать, но результат тот-же. 08.gif
a3r3
Цитата(EXeGLuMATOR @ Aug 21 2007, 19:12) *
Да причем тут ассемблер! Не знаю я его. На С пишу. И пока нет необходимости с ним связываться.


Нет необходимости знать ассемблер, чтобы написать:
Код
    AREA data, DATA, READONLY

    EXPORT dat

data
    INCBIN data.bin


    END

и затем в C:
Код
extern char data[];


0xFF: ИМХО, ассемблер и архитектуру системы знать нужно всегда, даже если пишешь на C.
EXeGLuMATOR
Цитата(a3r3 @ Aug 21 2007, 19:29) *
Нет необходимости знать ассемблер, чтобы написать:
Код
    AREA data, DATA, READONLY

    EXPORT dat

data
    INCBIN data.bin
    END

и затем в C:
Код
extern char data[];


0xFF: ИМХО, ассемблер и архитектуру системы знать нужно всегда, даже если пишешь на C.


Согласен. В общих чертах знаю и разобраться смогу. Но самому писать - пока небыло надобности.
Спасибо за представленный код. Образец конструктивного ответа на поставленный вопрос. Очень пригодится. smile.gif
srg_co
У Keil есть пример VoicePlayer для LPC2138, там кучка звуковых wav файлов, они батником собираются в один HEX, а потом вместе с кодом загружаются во Flash, адреса соответственно не должны перекрываться. В программе соответственно чтение данных из конкретного адреса. В случае постоянных данных это будет наверное оптимальнее, один раз загрузил в старшие адреса и юзай.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.