RTEMS 的 AT91SAM9260 移植(1):开题

09年我接触到 RTEMS,然后开始学习RTEMS,自己先后将 RTEMS移植到 AT91SAM9260的单板上,然后又移植到 Marvell 的 88F6281 的单板上。通过这两个移植,大量的阅读RTEMS 的手册,算是入了点门。

 

于是乎,把 AT91SAM9260 的RTEMS 4.9.4  BSP 撰写的整个过程与调试过程与大家分享。

 

开发 BSP的过程大致如下:

1.选择BSP模板,根据操作系统提供的BSP模板,选择与应用硬件环境最为相似的参考设计,针对具体的目标机对参考BSP进行必要的修改,形成自己的BSP;

2.建立新BSP目录。将模板BSP整个目录拷贝到适当的目录下(如 libbsp/arm/),重命名为at9260;
3.建立BSP配置文件。拷贝任意一个BSP.cfg,重命名为at9260.cfg,修改相关的体系结构定义;
4.修改启动代码、中断代码、调试串口的驱动、时钟系统的驱动、基本的CPU初始化、设置中断堆栈等;
5.修改autotools的宏;
6.修改链接脚本;
7.配置编译安装RTEMS的库;
8.针对应用裁剪RTEMS;
9.编译调试和测试。

 

开发AT91SAM9260的BSP

 

1.AT91SAM9260属于arm926ej-s,csb337是目前rtems支持arm版本最高的bsp,为arm920t,故选择csb337为模板修改
2.将c/src/lib/libbsp/arm/csb337复制为 c/src/lib/libbsp/arm/at9260
3.将c/src/lib/libcpu/arm/at91rm9200复制为c/src/lib/libcpu/arm/at91sam9260

 

注意:bsp的命名,由于bsp的名称需要出现在autotools宏中,所以,名称不能以数字开头,要符合autotools名称的命名规范。

 

将make/custom/csb337.cfg 复制为make/custom/at9260.cfg,文件内容修改如下:

 

这里注意:rtems 4.9 使用的gcc  版本是 4.3.2,对于4.3.2支持的CPU类型,可以查看《GNU gcc manual 4.3.2》的相关章节。

虽然gcc支持at91sam9260的arm926ej-s,可以这么写 -mcpu=arm926ej-s。但我在编译中发现:rtems4.9.1的版本 -mcpu=arm926ej-s 没有问题,但是 rtems4.9.4中就有编译问题,猜测可能是自动脚本没有生成相应的配置宏造成的问题。

所以,rtems4.9.4版本中我使用了 -mcpu=arm920 。

 

 

为了调试方便,尽量使用 -O0 的优化选项;

如果为了速度和性能,可选用 -O2 的选项;

如果为了生成执行体的体积,可以选择-Os 的选项。

 

(未完待续。。。下次讲修改相关代码。。。)

 

 

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值