ucos本身分为三个部分,一是跟平台无关的部分,二是跟硬件有关的部分,三是跟应用相关的部分。
在ucos官网http://www.micrium.com/有现成的上下载,基本不用改编译下就好了,过程中也碰到了些问题。
方法:
在官网上下载Michael Anburaj 的ucos for 2410 版本,当前网站上的是1.10版的,其中并不包含ucos跟平台无关的代码。需要另外下载,我用的是2.52版本的。将三个部分放在三个目录里,并分别加载到ADS1.2中。
大部分问题是因为一些预定义没有定义。
1、出现了ENDIAN_CHANGE的问题
解决方法:
在init.s中增加 ?ENDIAN_CHANGE 的定义。
? GBLL ENDIAN_CHANGE
ENDIAN_CHANGE SETL {FALSE}
2、定义_BIG_ENDIAN
编译时报错没有定义__BIG_ENDIAN,在MEMCFG.s中定义如下,定义成小端模式。
? GBLL __BIG_ENDIAN
__BIG_ENDIAN SETL {FALSE} ?
3、编译时总是会出现莫名其妙的错误。可能第一次编译会有20个错,同样的再编译一次会10个错,再编译一次可能就没错。
解决方法:
将Memcfg.a跟S3c2410x.a文件改为Memcfg.s,S3c2410x.s,至于什么原因还没弄清楚,只是好像以前听阿南说过的。
还有一些小问题不怎么记得了,不过很容易解决。
移植好了之后,就是进行消化了。