Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

Шаг 4. Инструменты разработки — программы отладки и транслирования 127 ным в сегменте eeprom, присвоены начальные значения. В приведенных выше примерах мы этого не делали. Поэтому файл с расширением еер во всех проектах будет пустой (содержать лишь завершающую строку). Теперь немного разберемся с форматом файлов hex и еер. В обоих случаях применяется так называемый НЕХ-формат, который практиче ­ ски является стандартом для записи результатов транслирования различ ­ ных программ. Он поддерживается практически всеми трансляторами с любого языка программирования. В принципе, программисту не обязательно знать структуру этого формата. Достаточно понимать, что в һех-файле определенным спо ­ собом закодирована программа в машинных кодах. Именно этот файл используется программатором для «прошивки» программной памяти микроконтроллера. Любой программатор поддерживает hex -формат и распознает записанные туда коды автоматически. Однако для тех, кому это интересно, приведу краткое описание һех-формата. Формат НЕХ-файла Если вы посмотрите содержимое такого файла при помощи редак ­ тора «Блокнот», то вы увидите, что это текстовый файл, в котором дан ­ ные закодированы в виде текстовых строк. Ниже приведено содержи ­ мое hex -файла, полученного в результате трансляции программы Progl (листинг 5.1): : 020000020000FC : 100000000FE70DBF00E806BD00E006BD01BB0FEF26 : 1000100007BB08BB02BB00E808B900B308BBFDCFB3 : 00000001FF Как видите, данный файл состоит из четырех строк. Первая и послед ­ няя строки несут служебную информацию. Наличие первой строки нео ­ бязательно. Система AVR Studio при трансляции программы всегда добав ­ ляет в hex -файл первую строку именно такого содержания. Последняя строка — это стандартный конец для любого һех-файла. Оставшиеся две строки как раз и содержат информацию о кодах про ­ граммы. В каждой такой строке закодирована цепочка байтов и адрес в памяти, где эти байты должны размещаться. Строка начинается с двоеточия. Двоеточие — обязательный элемент, который служит для идентификации hex -формата. Все остальные символы в строке — это шестнадцатиричные числа, записанные слитно без пробе ­ лов. Отдельные числа отличают по их позиции в строке. Так первые два знака занимает шестнадцатиричное число, означающее длину цепочки. В нашем случае длина обеих цепочек равна 0x10 (то есть 16) байт. Следующие четыре символа — это начальный адрес, куда эти байты

RkJQdWJsaXNoZXIy MTExODQxMg==