/*
Как правильно описать переменную "var",
и под каким именем ее использовать в asm-фрагменте
программы, для CodeVisionAVR Evaluation 2.03.5?
Или её придётся, для нормальной компиляции, хоть где-то
в С-тексте применить и по-другому никак нельзя?
Может существуют какие-нибудь недокументированные возможности.
В справке об этом ничего не написано.
В старых версиях (1.25.9) все работает.
*/
#pragma used+
static char var;
#pragma used-
#if 1 // CodeVisionAVR Evaluation 2.03.5
///////////////////////////////////////////////////////////////////////////////
void main(void)
{
var = 12;// Если эту строку закоментировать, то в результате
// Warning: global static variable 'var' was declared, but not referenced
#asm
LDI R30,LOW(12)
STS _var_G000,R30
#endasm
}
#else // CodeVisionAVR Evaluation 1.25.9
///////////////////////////////////////////////////////////////////////////////
void main(void)
{
#asm
LDI R30,LOW(12)
STS _var_G1,R30
#endasm
// Все нормально воспринимается
}
#endif