36885

[i] Формат *.hex файлов утилиты CMSIS-DAP

Дата последнего изменения: 16.06.2022 17:58:52
Утилита CMSIS-DAP поддерживает определенный тип фалов формата IntelHEX.

Данный файл обязательно должен соответствовать следующим условиям:

  • количество байт данных в записи должно быть не более 16 (поле RECLEN);

  • файл должен быть отсортирован в порядке возрастания адресов.

Файлы формата *hex, удовлетворяющие двум указанным условиями, получаются после компиляции проектов в таких популярных средах, например, как Keil, IAR.


Рисунок 1 - Пример *.hex файла, сгенерированного средой Keil. Адреса в поле LOAD OFFSET отсортированы в порядке возрастания. Количество байт данных не превышает 16 байт

В случае, если исходный файл формата *hex не соответствует указанным условиями, то можно рассмотреть возможность использования бесплатной утилиты srec_cat.exe, которая доступна в виде EXE-файла для Windows.

С помощью данной утилиты можно конвертировать неподходящий файл формата *.hex в hex-файл, который удовлетворяет описанным выше условиям.


Рисунок 2 - Пример *.hex-файла, в котором адреса идут в неотсортированном порядке

Рассмотрим использование на конкретном примере

Файл, приведённый на рисунке 2, необходимо отсортировать в порядке возрастания адресов.

Для этого необходимо через командную строку запустить утилиту srec_cat.exe со следующими опциями:
srec_cat.exe UnsortedFile.hex -Intel -o SortedFile.hex –Intel

Но в таком случае по умолчанию srec_cat генерирует файл, в котором строки содержат до 32 байтов данных, что противоречит второму указанному условию (количество байт данных в записи должно быть не более 16 (поле RECLEN));

Для выполнения этого условия можно воспользоваться опцией 

-Output_Block_Size =16

 которая ограничит длину данных 16 байтами.

Полное описание всех команд доступно в официальной документации.

Для удобства объединения двух описанных опций сразу можно воспользоваться командным файлом.

Опция вызова:

srec_cat.exe @CommandFile.txt

Ниже приводится пример такого командного файла, в котором к выходному *.hex - файлу будут применимы: 

- сортировка адресов в порядке возрастания;  

- ограничение максимальной длины байт данных в строке 16 байт.

-Disable_Sequence_Warnings    #disable warning about hex records not in ascending order
1986BE91T_DEMO.hex            #input file name
-Intel                        #read input file in intel hex format
-Output_Block_Size=16         #generate hex records with 16 byte data length (default 32 byte)
-o MyOutputFile.hex           #output file name
-Intel                        #generate intel hex output file


Полученный таким образом файл MyOutputFile.hex можно подавать на вход утилиты CMSIS-DAP.

Сохранить статью в PDF

Документация

Программное обеспечение

CMSIS-DAP
CMSIS-DAP
CMSIS-DAP  программное обеспечение программатора для CORTEX-M

Теги

Была ли статья полезной?