|
если проект из одной функции на С состоит (например все остальное в прерываниях) у ИАР серьезные проблемы с оптимизатором! во первых он считатет что регистры r0 - r3 проинциализиованы (у меня там переменные помещались но инициализацию не ИАР делал, пришлось ставить в startup)
но есть покруче баг: и все она не будет ничего делать!!! #include __C_task void main(void) и о чудо!!! все работает!!
E-mail:
info@telesys.ru
поробуйте такую программу
#include
volatile __no_init __regvar unsigned char Test@14;
__C_task void main(void)
{
Test=0;
_SEI();
MainLoop:
__delay_cycles(100);
Test|=1;
goto MainLoop;
}
но стоит ее немного поменять...
volatile __no_init __regvar unsigned char Test@14;
#pragma optimize=no_inline
void Func(void)
{
return;
}
{
Test=0;
_SEI();
MainLoop:
Func();
__delay_cycles(100);
Test|=1;
goto MainLoop;
}
как броться даже и не знаю!
ну скорость мне нужна и функций нет вложенных все вреррываниях обмен через часть регистров...
Ответы