Перейти к содержанию
    

Добавить файл данных в проект (прошивку)

Здравствуйте! Мне нужно добавить файл данных (12кБ) в прошивку PIC, чтобы PIC мог эти данные использовать в процессе работы.

Можно конечно загнать файл во флешку в процессе работы, но хотелось бы, чтобы этот файл программировался в PIC вместе с прошивкой.

Изменено пользователем diman8911

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, такого способа. Можно только использовать сериализацию в оболочке MPLAB IPE, где вместе с имеющимся хексом прошивается обозначенная область флеша неким кодом, определяемым файлом .num. Но там код формируется либо инкрементным (с произвольным шагом), либо рандомным способом.

Я использую имеющийся у устройства на МК интерфейс и специальную утилиту не доступную пользователю устройства в дальнейшем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

L_SMB		;таблица символов
	DB	00,0A,15,11,11,0A,04,00	;00
	DB	00,0A,1F,1F,1F,0E,04,00	;01
	DB	0E,11,11,11,0E,0E,04,00	;02
	DB	08,08,08,0E,09,09,0E,00	;03

можно, если данные в файле будут в нужном формате

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/5/2018 at 1:51 PM, diman8911 said:

хотелось бы, чтобы этот файл программировался в PIC вместе с прошивкой. 

Есть три варианта решения проблемы:

  • Через linker, чтобы автоматом в момент сборки на выходе получить готовый файл прошивки. Как это сделать, зависит от компилятора который Вы используете и о котором нам не известно.
  • Предварительно преобразовав ваш image в С массив(используя стороннюю тулзу, на выходе будет image.h) и подключив его к проекту через #include, и опять же средствами линкера разместить его по указанному адресу. Это все справедливо если Вы используете С о чем мы тоже не знаем, если ASM подход тотже но с таблицей символов как написано выше.
  • После компиляции склеить выходной bin(или hex) с вашим image по нужному смещению, тоже используя сторонний инструмент

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В итоге написал программку, которая преобразует мой бинарник в массив вида

const unsigned int ldr_size=16312;
const unsigned char ldr[16312] = {
0x01, 0x50, 0x34, 0xAD, 0x00, 0x00, 0xA0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x3F, 0x00, 0x00, 
0x01, 0x00, 0xD7, 0xAD, 0x00, 0x00, 0x80, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, .....

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...