① Keil调试程序编译时显示 *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY SEGMENT: PRREAD_RO
仔细看编译对话框的内容,我也遇到过类似的是拼写写错导致报错,display中的l和a顺序调换导致错误;函数拼写错误,调用时又写成正确的,导致报错定义的函数没有被调用。
查找方法*(参考图片中标注):
搜索编译对话框中的SEGMENT提示内容dispaly,
并参考SYMBOL下提示的比对查找display。
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
意思是:定义了一个函数,但是在main等函数中并没调用。
② keil中编译通过,但调试出现syntax error
语法有错误,把ACALL换为长跳转LCALL试试。
③ 初次用keil mdk 创建stm32工程,编译没错,debug时command窗口有error
这个提示表示 RCC_CR 寄存器只可写不可读,因此你对它的写操作违反了该地址的访问权限。例如你对芯片的保留空间进行读写操作都会报这个错误,这样在调试的时候很容易发现地址越界之类的错误。
但实际上这个寄存器本身就应当是可读可写的。请确认你的芯片型号选择是否正确。