欢迎来到天天文库
浏览记录
ID:38131044
大小:324.70 KB
页数:4页
时间:2019-05-29
《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
此文档下载收益归作者所有