这个基于LPC2387的KEIL版本程序是下载的CSDN网络资源,感谢这位朋友的分享。但是初次编译之后,有8个警告,没有错误。
修改警告之后,又会有其他警告出现,然后再作修改,针对每个警告及解决方法作出说明。
ZY_CODE\ARM\Os_cpu_a.s(127): warning: A1876W: Use of ‘|’ as a synonym for the :OR: operator is deprecated.
部分源代码:
MSR CPSR_c, #(NoInt | SYS32Mode) ;切换到系统模式
解决方法:把"|"修改为 “:OR:”, 如下
MSR CPSR_c, #(NoInt :OR: SYS32Mode) ;切换到系统模式
ZY_CODE\ARM\Os_cpu_a.s(223): warning: A1876W: Use of ‘|’ as a synonym for the :OR: operator is deprecated.
部分源代码:
MSR CPSR_c, #(NoInt | SYS32Mode)
解决方法:同上
MSR CPSR_c, #(NoInt :OR: SYS32Mode)
ZY_CODE\ARM\Os_cpu_a.s(232): warning: A1876W: Use of ‘|’ as a synonym for the :OR: operator is deprecated.
部分源代码:
MSR CPSR_c, #(NoInt | SYS32Mode)
解决方法:同上
MSR CPSR_c, #(NoInt :OR: SYS32Mode)
ZY_CODE\ARM\Os_cpu_a.s(261): warning: A1876W: Use of ‘|’ as a synonym for the :OR: operator is deprecated.
部分源代码:
MSR CPSR_c, #(NoInt | SVC32Mode) ;进入管理模式
解决方法:同上
MSR CPSR_c, #(NoInt :OR: SVC32Mode) ;进入管理模式
ZY_CODE\ARM\Os_cpu_a.s(290): warning: A1876W: Use of ‘|’ as a synonym for the :OR: operator is deprecated.
部分源代码:
MSR CPSR_c, #(NoInt | SYS32Mode)
解决方法:同上
MSR CPSR_c, #(NoInt :OR: SYS32Mode)
ZY_CODE\MiniARM2300\Startup.s(144): warning: A1876W: Use of ‘|’ as a synonym for the :OR: operator is deprecated.
ZY_CODE\MiniARM2300\Startup.s: at line 59 in macro HANDLER in ‘.\ZY_CODE\ARM\irq.inc’
这个在KEIL中定位不到,根据第二行可以知道在irq.inc文件的第59行,查找HANDLER即可
部分源代码:
MSR CPSR_c, #(OSNoInt | OSSYS32Mode) ; 切换到系统模式
解决方法:同上
MSR CPSR_c, #(OSNoInt :OR: OSSYS32Mode) ; 切换到系统模式
这边对应三个地方需要修改,不一一赘述
ZY_CODE\MiniARM2300\VIC_Control.s(98): warning: A1876W: Use of ‘|’ as a synonym for the :OR: operator is deprecated.
部分源代码:
MSR CPSR_c, #(NoFIQ | NoInt| SVC32Mode)
解决方法:同上
MSR CPSR_c, #(NoFIQ :OR: NoInt:OR: SVC32Mode)
ZY_CODE\MiniARM2300\VIC_Control.s(122): warning: A1876W: Use of ‘|’ as a synonym for the :OR: operator is deprecated.
部分源代码:
MSR CPSR_c, #(NoFIQ | NoInt| SVC32Mode)
解决方法:同上
MSR CPSR_c, #(NoFIQ :OR: NoInt:OR: SVC32Mode)
这边类似的也有几处,就不一一赘述了。
ZY_CODE\MiniARM2300\Startup.s(216): warning: A1608W: MOV pc, instruction used, but BX is preferred
类似的还有几处,就不一一赘述了。
uCOSII\os_task.c(370): warning: #177-D: variable “self” was declared but never referenced
部分源代码:
BOOLEAN self;
解决方法:
注释掉即可
希望这篇文章对相关人员有一定借鉴作用。
参考:
https://blog.csdn.net/gufuguang/article/details/9393789?utm_source=blogxgwz7
https://blog.csdn.net/zqlovlg/article/details/20084543?utm_source=blogxgwz1