技术标签: 脚本 file RTEMS 开发与移植 build gcc 优化 compiler
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 的选项。
(未完待续。。。下次讲修改相关代码。。。)
1. 问:WORD 里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同? 答:分节,每节可以设置不同的页眉。文件――页面设置――版式――页眉和页脚――首页不同。 2. 问:请问word 中怎样让每一章用不同的页眉?怎么我现在只能用一个页眉,一改就全部改了? 答:在插入分隔符里,选插入分节符,可以选连续的那个,然后下一页改页眉前,按一下“同前”钮,再
1.获取签名与模板进入阿里云平台,进入短信服务模块,在以下位置添加签名和模板(格式一定按照要求填写 审批的比较严格)2.编写模板与签名的枚举类在上文获取模板与签名成功后,并作为常量放在枚举类中。public enum DySmsEnum { /** * 本类此处需要修改(短信模板编码,签名,参数) */ LOGIN_TEMPLATE_CODE("SMS_187570276", "自定义软件框架集成百度云", "code"); /** *_springboot集成alibaba 短信
近期,张艺谋导演执导的电影《长城》在国内火热上映,且不说电影中的故事设定和剧情如何,屹立于山巅上的万里长城和觊觎于长城外的无餍饕餮却着实令人震撼。笔者不禁思考:在我们运维领域,不也存在这样一群“饕餮”吗?它们时而神出鬼没,导致系统故障,却又难以定位;时而无影无形,在平静下暗藏隐患;时而兵临...
MessageBox()的作用是弹出一个对话框!需要头文件:include<Windwos.h>分为两种:MFC 下的MessageBox();Windows下的MessageBox();MessageBox(hWnd,“弹窗的消息内容”,“弹窗的标题”,对话框的类型常量);hWnd:一般设置为NULL内容: MessageBox(NULL,L"",L"",MB_OK); MessageBox(NULL,_T(""),_T(""),MB_OK); MessageBox(NUL_messagebox数字
本文主要介绍了MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法,总结分析了MySQL建表、编码设置、字段添加、索引操作所涉及的SQL语句,需要的朋友可以参考下,希望能帮助到大家。建表:DROP TABLE IF EXISTS bulletin;CREATE TABLE bulletin(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, # 主键..._mysql建表和字段sql语句
H5页面苹果手机点击输入框输入内容时 页面自动放大_手机端输入时页面自动放大
问题虫洞——D:Big Integer 黑洞内窥:给出t组样例,每组输入p,n,m,有函数A(n) = n个1,如A(2) = 11, A(5) = 11111, 问有多少对(i,j)使得光年之外:前面一块的思路感觉是蛮清晰的,后面这么看着看着就有点模糊了。。。。。。代码块:#include<cstdio>#include<algorithm>usi..._dfh集训
新版思科EICCIE认证业基础架构的必学内容 实用收藏如何定义VxLAN,或者解释VxLAN呢?VXLAN是一种网络虚似化技术,可以用于改进大型云计算在部署时的扩展问题,是对VLAN的一种扩展。它可通过封装流量并将其扩展到第三层网关,以此来解决VMS(虚拟内存系统)的可移植性限制,使其可以访问在外部IP子网上的服务器。VxLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)技术很好地解决了现有VLAN技术无法满足大二层网络需求的问题。主要原理是引入一个_ccie ei 内容
中国开放源代码社区链接:http://www.yuanma.org/ ..._中国代码社区
判断回文字符数组:不知道需要存储多少字符时如何进行输入_c语言判断数组是否回文
项目在本地写好后上传到服务器访问出现如下图所示:经过查看php日志文件发现问题在于数据库连接错误,如下图:将项目中数据库配置部分修改成服务器中数据库的用户名和密码,重启服务器即可正常访问。...
转载:http://blog.csdn.net/skyflying2012/article/details/8237881最近2周一直在调试IIC和SPI总线设备,这里记录一下2种总线,以备后忘。一 IIC总线I2C--INTER-IC串行总线的缩写,是PHILIPS公司推出的芯片间串行传输总线。它以1根串行数据线(SDA)和1根串行时钟线(SCL)实 现了双工的同步数据传输..._iic总线时序