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

Добавление в прошивку LPC17xx информации из внешнего файла

Привет!

Работаю в среде Keil с микроконтроллером LPC1766.

У меня есть большой бинарный файл, который находится на ПК. Я хочу его прошить во флеш МК по заданному адресу в неизменном виде, чтобы потом была возможность передать этот файл по какому-либо интерфейсу из микроконтроллера. Есть ли способы сделать это из среды Keil?

В голову пришел только один способ - редактировать HEX файл прошивки, но, может быть, проще можно?

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


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

Через ассемблерный файл:

; ***************************************************************************
; *
    AREA      dat, DATA, READONLY

    EXPORT    my_data
    EXPORT    my_data_end

; ***************************************************************************
; *

my_data
    INCBIN file.bin
my_data_end

    END

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


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

Советую воспользоваться утилитой Srecord. С ее помощью вы сможете объединить файл прошивки и бинарный файл в один, разместив данные из бинарного файла по необходимому адресу.

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


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

Лучше уж сконвертировать тем же srecord'ом в сишный файл и подключить его к проекту, чем "подклеивать" к готовому бинарнику. Меньше вероятность, что сломается при последующих изменениях программы.

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


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

Привет!

Работаю в среде Keil с микроконтроллером LPC1766.

У меня есть большой бинарный файл, который находится на ПК. Я хочу его прошить во флеш МК по заданному адресу в неизменном виде

1. Сделать из бинарника Intel HEX-32, естественно со смещением по адресу загрузки.

2. В опциях проекта в последней закладке Utilities в поле Init File указать на текстовый файл следующего содержания:

 

LOAD мой_бинарник.hex

LOAD мой_проект.axf

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

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


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

Кейлом не пользуюсь, но в 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.

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


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

Кейлом не пользуюсь, но в IAR всё просто - в линкёре есть соответствующая команда для подлинковки в проект в выбранную секцию бинарного файла.

Начиная с какой версии IAR появилась такая возможность?

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


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

не знаю. Я ей не пользуюсь. Но в моём 6.50 имеется описание в мануале на компилёр (стр.282).

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


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

Спасибо за подсказки. Конверсия бинарника в .h-файл как-то вылетела из головы. Скачал srecord... Наверное мощная утилита, но разобраться не удалось, почитал мануал, ввожу команды - не работает. Набираю -Help, выдает "can't find input file" - странно если честно.

В итоге нашел вот эту простую утилитку.

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


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

Привет!

Работаю в среде Keil с микроконтроллером LPC1766.

У меня есть большой бинарный файл, который находится на ПК. Я хочу его прошить во флеш МК по заданному адресу в неизменном виде, чтобы потом была возможность передать этот файл по какому-либо интерфейсу из микроконтроллера. Есть ли способы сделать это из среды Keil?

В голову пришел только один способ - редактировать HEX файл прошивки, но, может быть, проще можно?

 

Пацаны,все гораздо проще,чем вы думаете...Если у вас кейл, то в папке Keil/ARM/BIN есть програмка FCARM.EXE Она запускается из командной строки,и в результате ее работы появляется обычный С-файл,в котором объявлен массив с данными файла,переданного в качестве параметра этой утилите FCARM ..Я делаю так. например у меня есть файл со звуком,например voice.mp3.Я копирую его в каталог keil/ARM/BIN, запускаю командной строкой FCARM.EXE voice.mp3 и в получаю файл voice.c А там просто берете и копируйте этот массив в свой проект,если по заданному адресу,то через конструкцию __attribute(_at(ADDRESS))

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


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

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

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

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

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

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

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

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

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

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