KEIL MDK下uCOS-II的移植

KEIL MDK下uCOS-II的移植

ID:38131044

大小:324.70 KB

页数:4页

时间:2019-05-29

KEIL MDK下uCOS-II的移植_第1页
KEIL MDK下uCOS-II的移植_第2页
KEIL MDK下uCOS-II的移植_第3页
KEIL MDK下uCOS-II的移植_第4页
资源描述:

《KEIL MDK下uCOS-II的移植》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、KeilMDK下uC/OS-II在FL2440上的移植uCOS-II在ADS上的移植很常见,而在KEILMDK下的移植却不是很多,根据ADS下的移植范例,结合自己最近使用KEILMDK的稍许心得,记录一下uCOS-II在KEILMDK下的移植过程。一:准备源码在官网上下载了uCOS-II的源码,好像似乎是2..91的了.二:编写OS移植文件1.编写OS_cpu_c.c这个文件是在ADS下的移植范例里面copy的,直接使用就可以了注:2.89开始添加了OS_TaskReturn(),它会调用OSTaskReturnHook(),如果copy的版本低于2.89则需要自己添加一

2、下。2.编写OS_cpu_a.s这个文件也是在ADS下的一直范例里面copy的,同样的S3C2440平台,这下函数一样的,而KEILMDK与ADS相比,在语法上没有什么特别的要求。3.添加系统心跳定时器具体实现参看:OS_Timer4_c.c三:修改启动代码1.如果直接将ADS下的启动代码copy到MDK下,编译会提示出错,一般错误是:.OutPutFilesuCOS-II_Uart.axf:Error:L6238E:2440_init.o(Init_2440)containsinvalidcallfrom'~PRES8(Theuserdidnotrequirecod

3、etopreserve8-bytealigmentof8-bytedataobjects)'functionto'REQ8(Codewaspermittedtodependonthe8-bytealigmentof8-bytedataitems)'functionApp_Main.解决方法是在代码段前部添加:PRESERVE8,如图12.将IRQ中断交给uC/OS-II管理代码如下:;****************************************************;将OS_CPU_IRQ_ISR地址装入HandleIRQ中,IRQ中断交给uCOS-

4、II管理;****************************************************LDRR0,=HandleIRQ;ThisroutineisneededLDRR1,=OS_CPU_IRQ_ISR;ifthereisn't'subspc,lr,#4'at0x18,0x1cSTRR1,[r0]即发生IRQ中断时系统跳转到OS_CPU_IRQ_ISR处执行uC/OS-II中断服务函数,具体事件由它负责。四:设置MDK编译参数信息1.选择CPU:2.填写存储器信息:3.编写scatter如果不想自己编写此文件,KEIL会自动生成文件模板,选择如下

5、:但是阿推崇这中方法,这种方法让人有种雾里看花的感觉,不明了还是自己编写吧:设置如下:Scatter文件内容:/*-------------------------------------------------------------运行域在SRAM中,可使用以下写法,也可直接将WR,ZI段跟在ROM后面-------------------------------------------------------------*/LR_ROM10x300000000x01000000{;loadregionsize_regionRO0x300000000x01000000

6、{;loadaddress=executionaddress2440_init.o(Init_2440,+First).ANY(+RO)}RW0x310000000x01000000{;RWdata.ANY(+RW)}ZI+0{.ANY(+ZI)}}很多同志会遇到.OutPutFilesuCOS-II_Uart.axf:Error:L6218E:UndefinedsymbolImage$$RO$$Base(referredfrom2440_init.o).从ADScopy过来的和KEIL默认的标号是不一致的,修改scatter文件里面的ER_ROM1为RO标号,RW_

7、RAM1为RW,以此类推即可。运行域地址从0x30000000-0x31000000,数据域地址:0x31000000-0x32000000安排方式纯属个人爱好。由于MDK默认生成的输出文件时HEX的,要使之生成BIN的需要添加一条命令:如下:在RUN#1,中添加:D:ProgramFilesKEILMDKARMBIN40fromelf.exe--bin-o./OutPutfiles/uCOS-II_Uart.bin./OutPutfiles/uCOS-II_Uart.axf具体路径需调整。至此为止,uCOS-II

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。