Rev0.0 0 28 ноября, 2013 Опубликовано 28 ноября, 2013 · Жалоба Привет! Работаю в среде Keil с микроконтроллером LPC1766. У меня есть большой бинарный файл, который находится на ПК. Я хочу его прошить во флеш МК по заданному адресу в неизменном виде, чтобы потом была возможность передать этот файл по какому-либо интерфейсу из микроконтроллера. Есть ли способы сделать это из среды Keil? В голову пришел только один способ - редактировать HEX файл прошивки, но, может быть, проще можно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 ноября, 2013 Опубликовано 28 ноября, 2013 · Жалоба Через ассемблерный файл: ; *************************************************************************** ; * AREA dat, DATA, READONLY EXPORT my_data EXPORT my_data_end ; *************************************************************************** ; * my_data INCBIN file.bin my_data_end END Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KSN 0 28 ноября, 2013 Опубликовано 28 ноября, 2013 · Жалоба Советую воспользоваться утилитой Srecord. С ее помощью вы сможете объединить файл прошивки и бинарный файл в один, разместив данные из бинарного файла по необходимому адресу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 28 ноября, 2013 Опубликовано 28 ноября, 2013 · Жалоба Лучше уж сконвертировать тем же srecord'ом в сишный файл и подключить его к проекту, чем "подклеивать" к готовому бинарнику. Меньше вероятность, что сломается при последующих изменениях программы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KnightIgor 2 28 ноября, 2013 Опубликовано 28 ноября, 2013 (изменено) · Жалоба Привет! Работаю в среде Keil с микроконтроллером LPC1766. У меня есть большой бинарный файл, который находится на ПК. Я хочу его прошить во флеш МК по заданному адресу в неизменном виде 1. Сделать из бинарника Intel HEX-32, естественно со смещением по адресу загрузки. 2. В опциях проекта в последней закладке Utilities в поле Init File указать на текстовый файл следующего содержания: LOAD мой_бинарник.hex LOAD мой_проект.axf Изменено 28 ноября, 2013 пользователем KnightIgor Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 29 ноября, 2013 Опубликовано 29 ноября, 2013 · Жалоба Кейлом не пользуюсь, но в IAR всё просто - в линкёре есть соответствующая команда для подлинковки в проект в выбранную секцию бинарного файла. Без всяких конверторов. --image_input filename [,symbol,[section[,alignment]]] Use this option to link pure binary files in addition to the ordinary input files. The file’s entire contents are placed in the section, which means it can only contain pure binary data. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KSN 0 29 ноября, 2013 Опубликовано 29 ноября, 2013 · Жалоба Кейлом не пользуюсь, но в IAR всё просто - в линкёре есть соответствующая команда для подлинковки в проект в выбранную секцию бинарного файла. Начиная с какой версии IAR появилась такая возможность? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 29 ноября, 2013 Опубликовано 29 ноября, 2013 · Жалоба не знаю. Я ей не пользуюсь. Но в моём 6.50 имеется описание в мануале на компилёр (стр.282). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rev0.0 0 29 ноября, 2013 Опубликовано 29 ноября, 2013 · Жалоба Спасибо за подсказки. Конверсия бинарника в .h-файл как-то вылетела из головы. Скачал srecord... Наверное мощная утилита, но разобраться не удалось, почитал мануал, ввожу команды - не работает. Набираю -Help, выдает "can't find input file" - странно если честно. В итоге нашел вот эту простую утилитку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
romas2010 1 18 декабря, 2013 Опубликовано 18 декабря, 2013 · Жалоба Привет! Работаю в среде Keil с микроконтроллером LPC1766. У меня есть большой бинарный файл, который находится на ПК. Я хочу его прошить во флеш МК по заданному адресу в неизменном виде, чтобы потом была возможность передать этот файл по какому-либо интерфейсу из микроконтроллера. Есть ли способы сделать это из среды Keil? В голову пришел только один способ - редактировать HEX файл прошивки, но, может быть, проще можно? Пацаны,все гораздо проще,чем вы думаете...Если у вас кейл, то в папке Keil/ARM/BIN есть програмка FCARM.EXE Она запускается из командной строки,и в результате ее работы появляется обычный С-файл,в котором объявлен массив с данными файла,переданного в качестве параметра этой утилите FCARM ..Я делаю так. например у меня есть файл со звуком,например voice.mp3.Я копирую его в каталог keil/ARM/BIN, запускаю командной строкой FCARM.EXE voice.mp3 и в получаю файл voice.c А там просто берете и копируйте этот массив в свой проект,если по заданному адресу,то через конструкцию __attribute(_at(ADDRESS)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться