Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WINAVR gcc и два ассемблер файла, проблемы ассемблирования 
:(
    Опции темы
Hiehachi
Дата 28.12.2005, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 27.12.2005
Где: Ukraine->Odess a

Репутация: нет
Всего: нет



Здраствуйте.

Разбираюсь с пакетом 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 у меня не использованы и не создаются , я просто не создавал пока никаких переменных.

Помогите словом добрым пожалуйста.


PM MAIL WWW ICQ   Вверх
Hiehachi
Дата 30.12.2005, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 27.12.2005
Где: Ukraine->Odess a

Репутация: нет
Всего: нет



Привет всем.

Разобрался с этим непонятным глюком, но не полностью. Оказалось какие-то страности с командами JMP и CALL на которых неправильно генерирует "OPCODE" то-ли ассемблер, то-ли линковщик. Со скриптами линковщика помоему все в норме.
В итоге пришлось пойти на уступки : при компиляциях выбирал не AVR5 модель, а AVR2 модель CPU, в эту модель входят все контролеры которые не могут исполнять CALL,JMP - ,а исполняют взамест их RCALL,RJMP. Переработал свои функции : заменил эти команды, компилировал, все работает хорошо.
Но боюсь придется наступить на грабли когда буду увеличивать размер своей программы. Эти команды RJMP,RCALL имеют 2Kb смешение. Но с этим еще можно как-то смирится.
Спасибо за внимание, тема закрыта.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0413 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.