Структура HEX-файла

Структура HEX-файла

После успешной сборки проекта будет сгенерирован 16-тиричный файл FirstProject.hex, содержащий в символьном виде машинный код программы:

:020000020000FC :100000001FC0FECFFDCFFCCFFBCFFACFF9CFF8CF8B :10001000F7CFF6CFF5CFF4CFF3CFF2CFF1CFF0CFCC :06002000EFCFEECFEDCFA3 :100040000FE50DBF04E00EBFC298BA9A04E018B3E2 :10005000102718BB01D0FBCFB3ECA0E51197F1F747 :02006000089501 :00000001FF

Рассмотрим формат данных hex-файл на примере второй строки текста (маркером начала строки всегда является символ “:”):

NN AAAA CC DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD SS : 10 0000 00 1FC0FECFFDCFFCCFFBCFFACFF9CFF8CF 8B

Поле NN определяет количество байтов данных в строке (в нашем случае 16 байтов). Поле AAAA – это начальный адрес, с которого данные будут записаны в память микроконтроллера.

За адресом следует поле команды CC. Программатор, ориентируясь на поле CC, распознает функциональное назначения строки. Ассемблер и другие компиляторы языков высокого уровня для AVR могут установить следующие значения данного параметра:

00 – в строке находятся данные для записи в память,

01 – последняя строка в файле,

02 – строка содержит начальный адрес сегмента памяти,

04 – строка содержит адрес в пределах сегмента памяти.

В данной строке CC=00 (т.е. строка предназначена для записи данных). За полем CC (кроме команды 01) идут непосредственно данные в количестве, определяемом параметром NN. Последнее поле SS – контрольная сумма. Сумма всех байтов в неповрежденной строке без учета переполнения всегда нулевая:

           10 + 00 + 00 + 00 + 1F + … + CF + F8 + CF + 8B = 0.

Каждый hex-файл должен завершаться строкой :00000001FF.

Перейти к следующей части:


Категория: Микроконтроллеры
Метки:

Написать коментарий

*
= 4 + 5

Добавить изображение

Последние статьи