问题1
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_TIMER2_INIT?TIMER2
说明
程序中有些函数例如_TIMER2_INIT(或片段)以前(调试过程中)从未被调用过,或者根本没有调用它的语句。这条警告信息前应该还有一条信息指示出是哪个函数导致了这一问题。只要做点简单的调整就可以。不理它也没什么大不了的。但是,我们知道,即使没有调用这个函数,Keil仍然把它编译连接进整个程序,不过浪费点ROM。最主要的是,在这个函数中的变量,不会被列入覆盖分析范围内,也就是说这些变量占的空间不能被回收,这对于为数不多的RAM资源可是巨大的浪费!
解决方法
- 删除或注释掉COMPARE()函数
- 利用条件编译#if……#endif,可保留该函数并不编译。如果你一定要考虑可移植性的话,就这样做,否则还是采取方法1
- 想不显示这些提示:则可对keil进行如下设置:
option for target
—>bl51 misc—>disable warning == 这里写入16
问题2
keil Error: C4065E: type of input file “…” unknown
解决方法
keil包含路径中,添加的路径在文件夹名称中包含一些空格,将面临此错误。
问题3
在STM32F427上,外接晶振25M换成8M,下载程序出现下图1提示:
分析
晶振频率修改错误导致程序超频锁死。
解决办法
- 调整软件工程晶振频率;
- BOOT1置0,把BOOT0置1(3.3V),整片擦除程序下载,随后拉低BOOT0(默认状态),重新上电解决。