[an error occurred while processing this directive]
Как IAR C for AVR заставить использовать регистры для хранения переменных,(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено MikhailSh 15 декабря 2002 г. 21:48

если функции выполняются циклически и определены в отдельных файлах. Значения переменных нужно сохранять до следующего вызова функции. Код программы при этом получается (даже с оптимизацией) большой, т. к. при обращении к глобальным переменным каждый раз происходит загрузка их адреса в ОЗУ. Класс памяти register кажется действует только для локальных переменных.

main()
{
do
{
f1();
f2();
} while(1)
}

------------------
char a, b;

f1()
{
a=...
b=...
}

------------------
char x, y;

f1()
{
x=...
y=...
}

И как вообще лучше организовать программу где функции выполняются циклически и требуется использовать глобальные переменные?
Или надо отказаться от использования функций и перенести их тело в блок с main(), а переменные сделать локальными?

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

Ответы



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

E-mail: info@telesys.ru