Как сделать на С, чтобы было как я хочу? (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Codavr 16 января 2004 г. 14:51

Написал пробный шар

// файл Boot.c
#include
#include

void WorkApp(void);
typedef void (*PWF)();
__flash const PWF aaa[1]@0x200={WorkApp};

__C_task void main(void)
{
for{;;} aaa[0]();
}

//Файл App.c
#include
#include

void WorkApp(void)
{
//чего-то делаем
}

IAR компилит вызов aaa[0]() как ICALL, а хочется чтобы
был RCALL на фиксированный адрес где лежит RJMP на функцию.

Сразу поясню зачем хочу:
1. Boot пишется в проц навечно и герметично закрывается навеки,
а Арр могу менять когда жизнь заставит.
2. Для скорости (нафига мне столько?)

LDI R30,0
LDI R31,2
LPM R16,Z+
LPM R17,Z
MOVW R31:R30,R17:R16
ICALL

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru