由于C51内存比较小,所以Keil C51对于形参、局部变量按照函数的调用关系进行时分复用。这种时分复用不像一般的系统中那样由栈指针管理,而是给变量分配固定地址。所以有时候如果编译器无法知道调用关系就必须为函数分配独立的内存,比如函数定义了但是没有地方显式的调用,但是有可能通过函数指针调用。比如编译器警告function_a未调用,则解决办法可以在函数中加入
const char NOT_ZERO = 0x0F; if (NOT_ZERO == 0) { function_a(); }
详细情况请在Keil帮助文档 C:\Keil\C51\Hlp\c51tools.chm 搜索 overlay。
如何消除Keil C51 的 uncalled functions警告?
由于C51内存比较小,所以Keil C51对于形参、局部变量按照函数的调用关系进行时分复用。这种时分复用不像一般的系统中那样由栈指针管理,而是给变量分配固定地址。所以有时候如果编译器无法知道调用关系就必须为函数分配独立的内存,比如函数定义了但是没有地方显式的调用,但是有可能通过函数指针调用。比如编译器警告function_a未调用,则解决办法可以在函数中加入
详细情况请在Keil帮助文档 C:\Keil\C51\Hlp\c51tools.chm 搜索 overlay。