使用Keil编译单片机代码时,代码本身没有问题,开发板也是正常的,keil编译也没有报错,但把编译出来的hex文件烧录到板子里面的时候死活不执行。
后来发现了keil在编译的时候虽然没报错,但有一段警告信息:
linking...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: ?C_START
MODULE: .\Objects\STARTUP.obj (?C_STARTUP)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: ?C_START
MODULE: .\Objects\STARTUP.obj (?C_STARTUP)
ADDRESS: 000DH
经常写代码的人都知道,一般来说编译的警告信息是不影响程序的正常运行的。但这次实在没找到出问题的地方,就尝试着拿警告信息去网上找答案,结果还真找到原因了。
Keil这段警告信息意味着建立的C语言源码文件没有加入到工程里面,只需要在Keil界面左侧工程上右键 ->点击“Add New Item to Group…”,然后重新编译即可。
经过以上操作后警告信息就不会再出现,这时候把hex文件重新烧录到开发板上就能正常运行了。
目前的使用体验来看,编写单片机代码Arduino的体验比Keil要好得多,但看网上有人说单片机深入使用的话还是离不开Keil的。大家根据自己的实际情况选择吧。