Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Кстати, если пользоваться гнутыми асмом+линкером, то наоборот - "ставь длинные, линкер поправит" (+)

Отправлено ReAl 24 октября 2009, г. 16:32
В ответ на: там есть неточность в п.16. "Используй RCALL/RJMP вместо CALL/JMP" - AVRStudio сама не подправит, а выдаст ошибку если "не достанет". отправлено пользователем Лунь 24 октября 2009, г. 15:09

t.S
	.text
.global main
moo:
ret

main:
call foo
nop
jmp main
foo:
rcall moo ; ну так писать некрасиво, понятное дело
ret ; просто демострация возможностей линкера

avr-gcc -Wa,-alm=t.lst -mmcu=atmega168 -Wl,--relax t.S
avr-objdump -DS a.out >t.dump

t.lst
   2               		.global main
3
4 moo:
5 0000 0895 ret
6
7 main:
8 0002 0E94 0000 call foo
9 0006 0000 nop
10 0008 0C94 0000 jmp main
11 foo:
12 000c 00D0 rcall moo
13 000e 0895 ret

t.dump (таблица векторов и очистка bss пропущены)
0000007a <moo>:
7a: 08 95 ret

0000007c <main>:
7c: 02 d0 rcall .+4 ; 0x82 <foo>
7e: 00 00 nop
80: fd cf rjmp .-6 ; 0x7c <main>

00000082 <foo>:
82: fb cf rjmp .-10 ; 0x7a <moo>


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
увеличьте 6 на 2:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru