- posted
19 years ago
avreal and Intel HEX file
- Vote on answer
- posted
19 years ago
TV> в описании AVReAL есть следующая запись: TV> " Чтение из HEX-файла записей типа '02' Extended Segment Address Record TV> производится в соответствии с формированием их в AVRASM by Atmel (без TV> предусмотренного документацией Intel сворачивания адреса смещения по TV> модулю 64Kb). " TV> Это где-то атмелом задокументировано? Не видел. Т.е. впрямую это нигде не указано и не думаю, что на это отклонение пошли бы ОСОЗНАННО. Скорее просто ляп программистов.
TV> Все компиляторы для MCU AVR формируют TV> hex файл с данным отступлением от интеловского стандарта, или есть TV> исключение (к примеру AVRAMS2)? AVRASM2 не пробовал. Я очень давно перелез сначала на IAR ASM (он с давних пор бесплатно на atmel лежал), потом вообще с асма практически ушёл.
Проверить просто - дать .org на адрес, скажем 65530, сделать .db на 10 байтов и посмотреть на HEX. По-интеловски надо дать сначала одной записью
6 байт начиная с FFFA, потом запись типа 02, потом запись на 4 байта. AVRASM делал одну запись начиная с FFFA на 10 байт. По-интеловски хвост из 4 байт надо сворачивать в адреса 0..3, но они-то должны быть в 10000..10003.А однажды avrasm дал запись `02' не позже, чем надо (и что корректируется "несворачиванием"), а раньше. Вышло вообще красиво. Отчёт разбора полётов был в этой эхе (письмо длинное, не считаю нужным тут цитировать):
Subject: [NEWS] "Глюки" при зашивке (в дополнение к AVR ASM --> IAR ASM :-) Date: Mon, 15 Jul 2002 10:05:49 +0000 (UTC)
wbr, Кстати, IAR тоже как-то ляп допустил, причём там записи были типа `04', "однозначные", но в одно мместе запись была просто пропущена. Там два длинных письма, можно в архивах поискать.
Subject: [NEWS] Внимание! баг в IAR-овском postlink? Date: Thu, 29 Jul 2004 15:16:41 +0000 (UTC)