这几天,移植想把ucos2移植到自己的2440开发板上,可是苦于没资料啊,于是网上到处找资料,今晚终于调试通过了,把自己的问题及解决办法跟大家分享分享:
首先,建议大家到网上下载一个简单的ADS的例程,网上的在ADS上移植ucOS的例程很多,我也是随便下的一个,然后像移植单片机程序那样直接移植UCOS2就行了,编译的时候可能会报以下错误:
.out_putled.axf: Error: L6238E: 2440init.o(Init) 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 CopyProgramFromNand.
决解办法:在2440init中找到
AREA
Init,CODE,READONLY
ENTRY
__ENTRY
在这段断码前面加一句PRESERVE8就可以了
.out_putled.axf: Error: L6238E: os_cpu_a.o(UCOS_ARM) 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 OSTaskSwHook.
解决办法:找到Os_cpu_a.s中找到AREA UCOS_ARM, CODE, READONLY,在前面加上个 PRESERVE8,就OK了
warning: #550-D: variable "d" was set but never used
描述:变量'd'定义但从未使用,或者是,虽然这个变量你使用了,但编译器认为变量d所在的语句没有意义,编译器把它优化了.
解决:仔细衡量所定义的变量d是否有用,若是认定变量d所在语句有意义,那么尝试用volatile关键字修饰变量d,若是真的没有用,那么删除掉以释放可能的内存.
warning: #1-D: last line of file ends without a newline
描述:文件最后一行不是新的一行.编译器要求程序文件的最后一行必须是空行,想了半天没想通为什么要这样.
解决:可以不理会.若是觉得出现警告不爽,那么在出现警告的文件的最后一行敲个回车,空出一行.
warning: A1876W: Use of '|' as a synonym for the :OR: operator is deprecated.
部分源代码:
MSR CPSR_c, #(NoInt|IRQ32Mode) ;进入IRQ模式。
warning: A1608W: MOV pc, instruction used, but BX is preferred
解决:把MOV pc, 替换为 BX 即从子程序返回
子程序返回的三种方法
现在总结如下
1.MOV PC,LR
2.BL LR
3.在子程序入口处使用以下指令将R14存入堆栈
STMFD SP!,{,LR}
对应的,使用以下指令可以完成子程序的返回
LDMFD SP!, {,LR}
上一篇:Keil+S3C2440裸机代码编译环境搭建
下一篇:Keil MDK (LPC2387)编译出现的警告和错误解决
推荐阅读最新更新时间:2024-11-17 06:39
设计资源 培训 开发板 精华推荐
- 基于便携烙铁开源系统IronOS,Pinecil V1全套开源资料下载(软件,硬件等)
- LT6656ACS6-4.096、4.096V 扩展电源范围电压基准的典型应用
- 使用 NXP Semiconductors 的 MCF51QM128VLH 的参考设计
- ZzDapLink(ESP32C3)
- EVAL-RHF310V1,基于 RHF310 运算放大器的评估板
- 使用 ROHM Semiconductor 的 BA33BC0T 的参考设计
- ic卡、饭卡、手机NFC的门禁
- MIKROE-3981,TFT 板 7 电容式带边框
- Sony SUB-LVDS 至并行桥接参考设计
- 具有单极性输入的 LTC2355-14 串行 14 位、3.5 Msps 采样 ADC 的典型应用
- 部分谷歌Pixel 6/Pro出现屏幕问题:闪烁绿屏、多一个挖孔
- IDC:受芯片和供应链问题困扰 三季度全球手机出货量降6.7%
- 小米推出新款120W氮化镓充电器:用Type-C接口,体积更小
- OPPO K9s上手体验,大电池高刷屏电竞小金刚
- Android 12L为折叠屏优化,三星Galaxy Z Fold3 5G将率先使用
- Redmi Note 11 Pro+上手:双十一档120W快充小金刚
- Redmi Note 11系列:全新配色设计 Pro+搭载120W快充
- 美国加强限制华为中兴 欲堵死采购中国高科技设备途径
- 总投超110亿元,立臻科技智能终端项目在昆山开工
- Semiwiki:全球半导体资本支出是否过大,有产能过剩危险吗?