Keil MDK 编译出现的警告和错误解决
2012-11-18 20:57
417 查看
warning: A1876W: Use of '|' as a synonym for the :OR: operator is deprecated.
部分源代码:
MSR CPSR_c, #(NoInt|IRQ32Mode) ;进入IRQ模式。
解决方法:把"|"修改为 ":OR:", 如下
MSR CPSR_c, #NoInt:OR:IRQ32Mode ;进入IRQ模式。
warning: A1608W: MOV pc,<rn> instruction used, but BX <rn> is preferred
解决方法:把MOV pc, <rn> 替换为 BX <rn>
Error: L6238E: os_cpu_a.o(subr) contains invalid call from '~PRES8 (The user did not require code to preserve 8-byte aligment of 8-byte data objects)' function to 'REQ8 (Code was permitted to depend on the 8-byte aligment
of 8-byte data items)' function OSIntExit.
解决方法:在汇编程序前面加上 PRESERVE8
PRESERVE8
AREA |subr|, CODE, READONLY
IMPORT OSIntNesting
IMPORT OSTCBCur
IMPORT IsrIRQ
…………
warning: A1085W: Forced user-mode LDM/STM must not be followed by use of banked R8-R14
部分源代码:
STMFD SP,{R3,SP,LR}^ ;系统模式SP→|R0 |
SUB SP,SP,#12 ;系统模式SP→|SPSR|
解决方法:在两行语句中间加nop,即可解决warning
STMFD SP,{R3,SP,LR}^ ;系统模式SP→|R0 |
nop
SUB SP,SP,#12 ;系统模式SP→|SPSR|
error: L6236E: No section matches selector - no section to be FIRST/LAST.
部分源代码:
RuninFlash.sct
LR_ROM1 0x00000000
{ ; load region
ER_ROM1 0x00000000 0x0200000
{ ; load address = execution address
*.o (RESET, +First) ;报错的地方
*(InRoot$$Sections)
.ANY (+RO)
}
RW_RAM1 0x0C000000 0x800000
{ ; RW data
.ANY (+RW +ZI)
}
}
解决方法:
在启动文件,我的是44binit.s 中找到
AREA Init,CODE,READONLY
改为
AREA RESET,CODE,READONLY
部分源代码:
MSR CPSR_c, #(NoInt|IRQ32Mode) ;进入IRQ模式。
解决方法:把"|"修改为 ":OR:", 如下
MSR CPSR_c, #NoInt:OR:IRQ32Mode ;进入IRQ模式。
warning: A1608W: MOV pc,<rn> instruction used, but BX <rn> is preferred
解决方法:把MOV pc, <rn> 替换为 BX <rn>
Error: L6238E: os_cpu_a.o(subr) contains invalid call from '~PRES8 (The user did not require code to preserve 8-byte aligment of 8-byte data objects)' function to 'REQ8 (Code was permitted to depend on the 8-byte aligment
of 8-byte data items)' function OSIntExit.
解决方法:在汇编程序前面加上 PRESERVE8
PRESERVE8
AREA |subr|, CODE, READONLY
IMPORT OSIntNesting
IMPORT OSTCBCur
IMPORT IsrIRQ
…………
warning: A1085W: Forced user-mode LDM/STM must not be followed by use of banked R8-R14
部分源代码:
STMFD SP,{R3,SP,LR}^ ;系统模式SP→|R0 |
SUB SP,SP,#12 ;系统模式SP→|SPSR|
解决方法:在两行语句中间加nop,即可解决warning
STMFD SP,{R3,SP,LR}^ ;系统模式SP→|R0 |
nop
SUB SP,SP,#12 ;系统模式SP→|SPSR|
error: L6236E: No section matches selector - no section to be FIRST/LAST.
部分源代码:
RuninFlash.sct
LR_ROM1 0x00000000
{ ; load region
ER_ROM1 0x00000000 0x0200000
{ ; load address = execution address
*.o (RESET, +First) ;报错的地方
*(InRoot$$Sections)
.ANY (+RO)
}
RW_RAM1 0x0C000000 0x800000
{ ; RW data
.ANY (+RW +ZI)
}
}
解决方法:
在启动文件,我的是44binit.s 中找到
AREA Init,CODE,READONLY
改为
AREA RESET,CODE,READONLY
相关文章推荐
- Keil MDK 编译 uc/OS-II 出现的警告和错误解决
- ADS工程移植 Keil MDK 编译出现的警告和错误解决
- [Keil]ads工程移植到Keil MDK 编译出现的警告和错误解决
- 解决在win7中用vs2010编译openssl中出现把警告当做错误的报错问题
- vs2008编译tamarin出现错误c2220:警告被视为错误
- linux下rtl8188 驱动编译 出现类似 create_proc_entry daemonize 错误问题解决
- qt交叉编译arm时出现的一些错误和解决方法
- 编译PlatinumKit出现的arm-linux-androideabi-g++: not found错误解决方法
- Keil C51编译错误警告解决方法积累
- caffe2ncnn编译出现DetectionOutputParameter错误的解决方法
- VS2010出现FileTracker : error FTK1011编译错误的解决办法
- IAR for 8051 编译出现Error[e72]错误提示,解决办法
- VS2010出现FileTracker : error FTK1011编译错误的解决办法
- 使用Openjdk7编译android源码出现"Could not initialize NSS"错误的解决办法
- 解决Jetson Tegra TK1 编译 YOLO Darknet出现的不支持,compute_52 错误
- RSL编译方式的FLEX站点出现#2046错误的解决办法
- Fedora9.0和VMware6.5下编译内核出现arm-linux-gcc无法找到的错误解决办法
- 编译和链接 - 解决出现的LNK2005“符号已定义”错误 1
- openwrt多线程程序交叉编译时候出现错误解决方法
- ubuntu 编译 Android 出现的若干错误及解决方法