在gcc+avrstudio 中编耄? #include <avr/io.h> unsigned char add(unsigned char b,unsigned char c,unsigned char d) { return b+c*d; } register unsigned char a asm("r20"); //将r20 定义为 变量a int main(void) { while(1) { a++; PORTB=add(a,a,a); } }
优化级别选为01,02,03,0s都没有问题,能够正常编译 但是调为00的时候就会报错: ../rtos_tmp2.c:6: error: global register variable follows a function definition 问题出在这个语句上: register unsigned char a asm("r20"); //将r20 定义为 变量a
望有人能给个解释,期待中!
|