Скорей всего вы не указали нужные опции компоновщику (linker). По умолчанию компоновщик размещает память кода начиная с нулевого адреса (в aduc812 это область flash-памяти) Поэтому t167 не удается загрузить программу (т.к писать во flash он не может).
По команде
- Код: Выделить всё
t167b 0x9000 0x0 addhexstart addhexstart program.hex
в конец hex файла с программой добавляется команда передачи управления по адресу 9000h. Поэтому после неудачной попытки загрузить программу выполнение продолжается с адреса 9000h, где скорей всего ничего нету .
Если вы используете компилятор SDCC то попробуйте собрать программу со следующими ключами:
- Код: Выделить всё
--code-loc 0x2100 --xram-loc 0x6000 --stack-loc 0x80
Тогда загрузить программу можно с помощью следующих команд (hex файл с программой условно обозначим main.hex):
- Код: Выделить всё
t167b 0x2100 0x0 addhexstart main.hex bye
t167b loadhex+ main.hex 0 term
Если будете писать программы с обработкой прерываний и загружать их в ОЗУ, не забудьте, что демонстрационная программа (или загрузчик HEX-202) перенаправляют вектора прерываний на адреса начиная с 2000h. (Насколько я помню, об этом должно быть написано в руководстве)