1、宏定义。例如
#define debug_log printf
#define degug_log(...) printf(...)
2、51内核的堆栈空间只在pData区。编程中,对于函数嵌套较多层,容易引起堆栈溢出的情况(程序运行至0xFFFF地址),因而需要减少函数的嵌套。
3、51内核编程注意局部变量和全局变量的位置和大小。51内核局部变量位置选择 “Memory Model”。程序中尽量减少变量的调用,当变量较多的时候,会引起“ERROR L107: ADDRESS SPACE OVERFLOW”。
4、8051内核单片机绝对地址( _at_ )定义的变量,声明时,不能初始化。
char xdata test_value _at_ 0x8000;
5、8051内核编程,使用keil进行编程时,未调用函数的局部变量和形参会保存在RAM中,占用一定的内存空间。需要注意以下警告。
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_DEL_DIR?FS_DELETE
持续更新中。。。欢迎大家一起讨论!