第一步

建立编译环境,rtems的编译环境需要使用newlib的库,所以ubuntu自带的gcc是不可以的,我是参照下面的博客才编译成功的,之前走了好多弯路。

http://blog.sina.com.cn/s/blog_70dd169101013d4c.htm

第二步

编译rtems,我使用的是4.10.2,而参照的博客使用的是4.11(博客有些地方不清楚的看下面的博客),区别应该是有的,不过都能成功烧写。

fishOnFly的http://blog.csdn.net/wuhzossibility/article/details/9262055

博主有如下内容,我不是很清楚,后来我在start.s里面添加了bss的相关代码:

***********************************************************************

7.0. 修改第一阶段的硬件初始化,极度汇编依赖

在start.s中,完成的工作:
    1 禁用所有可屏蔽中断;
    2 用~0~填充未初始化数据段~.bss;
    3 初始化~C~程序调用栈;
    4 从~ROM~中将初始化数据拷贝到~RAM~中;
    5 调用~boot_card~函数。
7.0.6. 具体的请看附件

***********************************************************************

以下就是我添加在start.s的代码,参照雪松的博客http://blog.csdn.net/coolbacon/article/details/6092927

/* zero the bss */
ldr r1, =_bss_end_
ldr r0, =_bss_start_
_bss_init:
mov r2, #0
cmp r0, r1
strlot r2, [r0], #4
blo _bss_init /* loop while r0 < r1 */

  修改完成之后就是编译工作,请参考雪松这篇博客的最下面那段http://blog.csdn.net/coolbacon/article/details/6101754或者fishOnFlyhttp://blog.csdn.net/wuhzossibility/article/details/9262055#reply,主要区别是configure的一些配置,后者编译会生成一个ticker.exe的例子,而前者是hello.exe,然后通过命令将exe文件转化为bin文件烧写。

第三步

烧写

笔者首先是使用了tekkamanninja提供的bin文件(网上一搜就搜到了),但是似乎它的烧写位置显然是不对的(0x30008000)。

具体请看下面俩篇文章,俩位大牛对烧写位置进行了考究,欲了解实情的就看看吧:

雪松的http://blog.csdn.net/coolbacon/article/details/6262776

知秋一叶http://blog.csdn.net/rickleaf/article/details/6260292

笔者最后决定参照知秋一叶的方法,将文件烧写到0x30000100(笔者比较懒,不想像雪松那样改了)。

烧写方法有很多,但是tekkamanninja提供的uboot.bin似乎烧写位置发生冲突,笔者每次烧写到0x30000100都会烧不进去,烧到0x30008000是可以烧进去了但是go 0x30008000就没反应了。因此笔者狠心使用了裸机烧写,幸好最近新买的友善之臂mini2440有superboot这个神器,操作非常容易(具体看它的手册吧,使用的是minitools这个工具)。选择逻辑程序,烧写位置就是0x30000100,烧写成功!哈哈~

笔者是个big rookie,小小得意一下,不过问题还是有很多不明白的,接下来还会尝试使用uboot来加载,如有发现会继续更新的说!

rtems在mini2440上的移植(ubuntu)的更多相关文章

  1. 基于mini2440的uboot移植(一)

    一.移植环境 虚拟机:ubuntu12.04 uboot源码:u-boot-2008.10.tar.bz2 交叉编译:arm-linux-gcc-4.4.3 简单的记录下编译uboot的过程,要想具体 ...

  2. OpenCV在ARM上的移植

    OpenCV在ARM上的移植 与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方 ...

  3. u-boot-2014_04在TQ2440上的移植

    本文详细介绍了新版本的u-boot-2014_04在tq2440平台上的移植过程,期间参考了网上的其他移植文档,还有韦东山的移植uboot视频,讲的很好.下面是共享链接,欢迎下载,一同学习.其中有移植 ...

  4. S04_CH02_工程移植ubuntu并一键制作启动盘

    S04_CH02_工程移植ubuntu并一键制作启动盘 2.1概述 2.2搭建硬件系统 本章硬件工程还是使用<S04_CH01_搭建工程移植LINUX/测试EMMC/VGA>所搭建的VIV ...

  5. 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题4---共享库中嵌套库带路径【已解决】

    [Linux开发]OpenCV在ARM-linux上的移植过程遇到的问题4-共享库中嵌套库带路径[已解决] 标签:[Linux开发] 紧接着上一篇,我居然又尝试了一下编译opencv,主要是因为由于交 ...

  6. 【Linux开发】OpenCV在ARM上的移植

    与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方法很麻烦,不仔细操作很容易出错 ...

  7. Mini2440上的第一个程序——点亮Led

    手头的Mini2440搁置了两年半之后,我再次决定拿出它,重新尝试嵌入式Linux的学习. 我使用的是友善之臂的Mini2440开发板.韦东山的<嵌入式Linux应用开发完成手册>及其视频 ...

  8. Qt4.8.5在ARM9上的移植

    Qt4.8.5在ARM9开发板上的移植 以前移植过qtopia-embedded-2.2.0,俗称Qt/E,在早期的Qt框架中是使用X11桌面服务器系统,无法应用于嵌入式平台,为此产生了qtopia, ...

  9. KEIL MDK环境下uCOS-II在LPC17xx上的移植实例

    1. 知识准备 要想对ucos-ii的移植有较深的理解,需要两方面知识: (1)目标芯片,这里是lpc17xx系列芯片,它们都是基于ARMv7 Cortex-M3内核,所以这一类芯片的ucos-ii移 ...

随机推荐

  1. weblogic漏洞修复:CVE-2014-4210,UDDI Explorer对外开放

    漏洞描述:http://blog.gdssecurity.com/labs/2015/3/30/weblogic-ssrf-and-xss-cve-2014-4241-cve-2014-4210-cv ...

  2. python多线程爬虫设计及实现示例

    爬虫的基本步骤分为:获取,解析,存储.假设这里获取和存储为io密集型(访问网络和数据存储),解析为cpu密集型.那么在设计多线程爬虫时主要有两种方案:第一种方案是一个线程完成三个步骤,然后运行多个线程 ...

  3. elasticsearch REST API方式批量插入数据

    elasticsearch REST API方式批量插入数据 1:ES的服务地址  http://127.0.0.1:9600/_bulk 2:请求的数据体,注意数据的最后一行记得加换行 { &quo ...

  4. vim的tab键设定

    多在windows上编程的童鞋可能习惯于感受tab键为4个空格的长度,不过在linux系统中一般默认设定tab键为8个空格长度来显示.事实上tab也确实是8个空格的长度.不过由于习惯问题,某些童鞋还是 ...

  5. SetConsoleScreenBufferSize 函数--设置控制台屏幕缓冲区大小

    SetConsoleScreenBufferSize函数 来源:https://msdn.microsoft.com/en-us/library/windows/desktop/ms686044(v= ...

  6. OpenCV探索之路(二十一)如何生成能在无opencv环境下运行的exe

    我们经常遇到这样的需求:我们在VS写好的程序,需要在一个没有装opencv甚至没有装vs的电脑下运行,跑出效果.比如,你在你的电脑用opencv+vs2015写出一个程序,然后老师叫你把程序发给他,他 ...

  7. linux c++如何学习

    最近有人问我,linux c++工资这么高,怎么学习才能入门,只要有个项目经验能进入一个公司即可. 然后我就说了linux c++开发的整个流程,然后用项目作为目标进行学习,这其实是一种以目的为主导的 ...

  8. Spring依赖注入的简化配置

    一, 很久很久以前, 当我们不用@Autowire注解时, 依赖注入要么通过setter方法, 要么通过构造方法; 需要在配置文件里配置一大堆property-ref.......... 二, 若使用 ...

  9. storm从入门到放弃(二),任务分配过程-核心机密

    背景:目前就职于国内最大的IT咨询公司,恰巧又是毕业季,所在部门招了100多个应届毕业生,本人要跟部门新人进行为期一个月的大数据入职培训,特此将整理的文档分享出来. 原文和作者一起讨论:http:// ...

  10. 蓝桥杯比赛java 练习《立方变自身》

    立方变自身 观察下面的现象,某个数字的立方,按位累加仍然等于自身.1^3 = 1 8^3  = 512    5+1+2=817^3 = 4913   4+9+1+3=17... 请你计算包括1,8, ...