Информационный портал технической поддержки Центра проектирования интегральных микросхем |
Данный файл обязательно должен соответствовать следующим условиям:
количество байт данных в записи должно быть не более 16 (поле RECLEN);
файл должен быть отсортирован в порядке возрастания адресов.
Файлы формата *hex, удовлетворяющие двум указанным условиями, получаются после компиляции проектов в таких популярных средах, например, как Keil, IAR.
Рисунок 1 - Пример *.hex файла, сгенерированного средой Keil. Адреса в поле LOAD OFFSET отсортированы в порядке возрастания. Количество байт данных не превышает 16 байт
В случае, если исходный файл формата *hex не соответствует указанным условиями, то можно рассмотреть возможность использования бесплатной утилиты srec_cat.exe, которая доступна в виде EXE-файла для Windows.
С помощью данной утилиты можно конвертировать неподходящий файл формата *.hex в 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
Сайт: | https://support.milandr.ru |
E-mail: | support@milandr.ru |
Телефон: | +7 495 221-13-55 |