| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > WINAVR gcc и два ассемблер файла |
| Автор: Hiehachi 28.12.2005, 17:27 |
| Здраствуйте. Разбираюсь с пакетом WINAVR. При запуске командной строки : avr-as -mmcu=avr5 -ahls=asm.l freqpomp.s tavr.s -o tavr.o - создается обьектный файл для линковщика и ненужно-контрольный файл asm.l который я заказал в командной строке. Все хорошо и нет никаких ошибок. Но при обработке обьектного файла дизасемблером на командах jmp и call нулевые указатели адреса. И после запуска линковщика : avr-ld -Map maps.l -T tavr.lnk tavr.o -o file.bin создается мною попрошенный файл maps.l и сама готовая програма в файле file.bin. При просмотре бинарника дизасемблером IDA PRO ADVANCE ну и просто визуально, я замечаю что в командах jmp и call нулевые физические адреса. У меня есть подозрительно-вопросительные соображения что возможно я что-то в скипте недописал? , вот его код: OUTPUT_FORMAT ("binary") SECTIONS { .text : { * ( .text )} . = 0x00020000; --- адресное смещение для формирования файла .data : { * ( .data )} .bss : { * ( .bss )} __do_copy_data = 0; __do_clear_bss = 0; __stack = 0x0300; } примечание: сегменты .data и .bss у меня не использованы и не создаются , я просто не создавал пока никаких переменных. Помогите словом добрым пожалуйста. |
| Автор: Hiehachi 30.12.2005, 01:44 |
| Привет всем. Разобрался с этим непонятным глюком, но не полностью. Оказалось какие-то страности с командами JMP и CALL на которых неправильно генерирует "OPCODE" то-ли ассемблер, то-ли линковщик. Со скриптами линковщика помоему все в норме. В итоге пришлось пойти на уступки : при компиляциях выбирал не AVR5 модель, а AVR2 модель CPU, в эту модель входят все контролеры которые не могут исполнять CALL,JMP - ,а исполняют взамест их RCALL,RJMP. Переработал свои функции : заменил эти команды, компилировал, все работает хорошо. Но боюсь придется наступить на грабли когда буду увеличивать размер своей программы. Эти команды RJMP,RCALL имеют 2Kb смешение. Но с этим еще можно как-то смирится. Спасибо за внимание, тема закрыта. |