реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Прицепить файл в программу..., как?
EXeGLuMATOR
сообщение Aug 21 2007, 09:44
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



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

ЗЫ. Поиском прошелся - что-то не нашел...
Go to the top of the page
 
+Quote Post
AlexBoy
сообщение Aug 21 2007, 10:00
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 19-12-05
Из: Kiev
Пользователь №: 12 394



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

Пользуюсь такой утилитой.
В командной строке пишешь CreateArr.exe ФАЙЛ_ДЛЯ_ОБРАБОТКИ
Формирует С файл.
Прикрепленные файлы
Прикрепленный файл  CreateArr.zip ( 56.46 килобайт ) Кол-во скачиваний: 57
 
Go to the top of the page
 
+Quote Post
a3r3
сообщение Aug 21 2007, 10:38
Сообщение #3


Частый гость
**

Группа: Новичок
Сообщений: 84
Регистрация: 24-05-07
Пользователь №: 27 947



Это делается через INCBIN в ассемблерном файле.
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Aug 21 2007, 12:38
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Цитата(a3r3 @ Aug 21 2007, 14:38) *
Это делается через INCBIN в ассемблерном файле.


Так надо исходнику на С пристегнуть его. 05.gif
Go to the top of the page
 
+Quote Post
a3r3
сообщение Aug 21 2007, 13:21
Сообщение #5


Частый гость
**

Группа: Новичок
Сообщений: 84
Регистрация: 24-05-07
Пользователь №: 27 947



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

"Пристегивать" - задача линкера. В C-файле просто пишете extern bla-bla. Только в ассемблере не забудьте EXPORT.
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Aug 21 2007, 15:12
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



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


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

AlexBoy - спасибо за программку. То что надо. beer.gif
Хоть и не напрямую файлик прилинковать, но результат тот-же. 08.gif
Go to the top of the page
 
+Quote Post
a3r3
сообщение Aug 21 2007, 15:29
Сообщение #7


Частый гость
**

Группа: Новичок
Сообщений: 84
Регистрация: 24-05-07
Пользователь №: 27 947



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


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

    EXPORT dat

data
    INCBIN data.bin


    END

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


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

Сообщение отредактировал a3r3 - Aug 21 2007, 15:29
Go to the top of the page
 
+Quote Post
EXeGLuMATOR
сообщение Aug 22 2007, 20:34
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



Цитата(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
Go to the top of the page
 
+Quote Post
srg_co
сообщение Aug 23 2007, 18:33
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 22-03-05
Из: Краснодар
Пользователь №: 3 600



У Keil есть пример VoicePlayer для LPC2138, там кучка звуковых wav файлов, они батником собираются в один HEX, а потом вместе с кодом загружаются во Flash, адреса соответственно не должны перекрываться. В программе соответственно чтение данных из конкретного адреса. В случае постоянных данных это будет наверное оптимальнее, один раз загрузил в старшие адреса и юзай.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01406 секунд с 7
ELECTRONIX ©2004-2016