历史上的今天
今天是:2025年06月07日(星期六)
2020年06月07日 | 关于2440的MDK平台下移植ucOS2,遇到的问题,及解决办法
2020-06-07 来源:eefocus
这几天,移植想把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}
史海拾趣
|
1 引言 为了以更低的功耗获得更高的速度和更佳的性能,要求电源电压越来越低,瞬态性能指标越来越高,因此对开关电源提出了越来越高的要求。用原有的电路拓扑及整流方式已不能满足现在的要求,为了适应IC芯片发展的需要,人们开始研 ...… 查看全部问答> |
|
今年的两会即将召开之际,让我想起去年此时火速蹿红的“山寨”一词。“山寨”一词在2009年3月就被带上了两会,并且再度火了一把, 与“躲猫猫”一起位列热门关键词前二位。 山寨机概念首先出现在IT行业。自从2001年始“联发科”先后在 ...… 查看全部问答> |
|
现象描述 1 用万用表测量VCC_1V2电源对地阻抗5欧左右。 2 刚上电mos管Q5就被烧掉。 3 断开R272,在R272的第2pin和地之间并一个电容,上电不会烧mos管,但是输出电压为3V。 4 Vous+通过飞线链接到电源输出端 输出电压稳定 ...… 查看全部问答> |
|
FPGA电源芯片的选择: FAPGA 电源芯片一般分为内核电源和IO电源。 怎样选择电源芯片的功耗大小这是一门学问。 电源芯片的大小跟所使用的逻辑门容量和速度都有关。速度越快,功耗需求越大。逻辑容量越大 ...… 查看全部问答> |
|
硬件结构图 这是我的源代码: #include #include typedef unsigned char byte; typedef unsigned int byte2; typedef unsigned long byte4; typedef byte bool; #define TRUE 1 #define FALSE 0 sbit CS = P0^0; sbit WR_CLK = P0^1; sbit ...… 查看全部问答> |
|
我写了一个在WINCE(5.0)下运行MFC程序,里面我用new分配了一个空间,然后用delete 释放,可是内存并没有被收回(通过看控制面板里的系统属性,总共内存数和使用内存数)? 代码如下: vector vct5(); fo ...… 查看全部问答> |
|
我用的是YLP2440的开发板,通过CE\\windows\\cpucheck.exe查看FCLK=200M。我在BSP中看到的MPLLCON=0X5C011,计算出来的FCLK=400。请问该板子FCLK究竟是多少?如果需要更改的话,是不是改BSP中MPLLCON就可以了?… 查看全部问答> |
|
我的毕业设计是DS18B20温度传感 + nRF24L01无线数传 + 232串口发送给PC + 上位机显示但是,师兄的要求是要图表形式显示温度变化串口助手见得多了,找一个也不费事。但是好像就没见过能用图表显示的。最开始的打算是自己把当初上课学过的LABVIEW重新 ...… 查看全部问答> |




