RTEMS 开发与移植
coolbacon
这个作者很懒,什么都没留下…
展开
-
RTEMS 介绍
<br />为什么需要操作系统?<br /> <br />1.计算机是由CPU、内存、磁盘、显卡、声卡等许许多多设备组成的,而且这些设备的厂商众多,品种繁多,而且不同厂商生产的同种设备虽然完成同种功能,但是具体细节却存在千差万别;<br /><br />2.为了正确地管理和使用这些设备来实现具体的应用,这样程序员就得了解和掌握各种设备的工作原理。而且对于同种设备,由于不同的硬件厂商在实现细节上的差异使得程序员再次陷入了复杂的硬件控制的深渊。<br /> <br />3.在硬件的基础上加载一层软件来管理整原创 2010-12-18 11:49:00 · 22090 阅读 · 7 评论 -
RTEMS 4.9.5 在 QEMU MINI2440 上的移植发布啦……
(本文原创,转载请注明出处)这两天抽了个空,在rickleaf移植的rtems 关于 qemu mini2440 的bsp做了一些修改:1.原来mini2440的 bsp是基于 gp32的bsp修改,复用了部分的gp32代码。cpu类型实际上使用的是s3c2410。这不利于对mini2440的修改。所以,增加了新cpu型号s3c2440,并将mini2440修改成独立的bsp。如果有朋友在bootstrap -p 和 bootstrap 时,嫌生成configure 的时间太长,建议将libbsp下和lib原创 2011-03-22 23:33:00 · 6670 阅读 · 9 评论 -
RTEMS 4.9.5:QEMU MINI2440 BSP 中的网络驱动开发(上)
(原创文章,转载注明出处,谢谢)这些天花了些时间把 RTEMS 4.9.5 关于 QEMU mini2440 bsp 弄了一下,弄得不好,把我遇到的问题说出来和大家分享一下。便于大家在相关问题上的继续研究。也请您不吝赐教,指出我移植中的问题。开发环境的建立请参考:QEMU MINI2440 的 Linux FC 下网络配置http://blog.csdn.net/coolbacon/archive/2011/03/16/6252938.aspx关于RTEMS MINI2440的QEMU仿真从UBOOT加载问原创 2011-03-25 22:54:00 · 5424 阅读 · 8 评论 -
RTEMS 4.9.5:QEMU MINI2440 BSP 中的网络驱动开发(中)
(原创文章,转载注明出处,谢谢)dm9000_txDaemon 任务:void dm9000_txDaemon (void *arg){ dm9000_softc_t *sc = (dm9000_softc_t *)arg; struct ifnet *ifp = &sc->arpcom.ac_if; struct mbuf *m; rtems_event_set events; for (;;) {原创 2011-03-26 11:00:00 · 3054 阅读 · 4 评论 -
RTEMS 4.9.5 关于 QEMU MINI2440 的开发小技巧
(原创文章,转载请注明出处,谢谢)这里就把我在mini2440上的一些调试小技巧拿出来,做个记录。本人愚钝,希望高手宽宥,低手一起加油。1.图形化的调试端:Linux下使用gdb单步调试比较痛苦,文本界面很不方便,有没有图形化界面的工具呢?有一个,Insight。关于它,我有一个好消息,和一个坏消息。 :)坏消息就是,人家已经停止更新这个玩意了……好消息是,我实际使用了一下,调试 rtems 4.9 的代码是可以使用的。(使用这个链接下载insight http://sourceware.org/insig原创 2011-03-26 16:02:00 · 3048 阅读 · 0 评论 -
QEMU 仿真 rtems pc386
(本文原创,转载注明出处,谢谢)有些朋友,需要用QEMU仿真x86的RTEMS。以前写过一些文章,但还是有些朋友在细节上遇到了困难。我这两天抽了点时间,把这些细节梳理了一下,给需要的朋友们。这里需要朋友先看看这篇文章,先把QEMU的环境搭建好。基于Qemu的RTEMS仿真平台搭建我这里选择的是rtems 4.9.5,当然,朋友们也可以选择rtems原创 2011-06-28 14:10:00 · 4552 阅读 · 1 评论 -
RTEMS 的小技巧(2011.7.3.)
这个是个非常小的小技巧。在安装 RPM 的工具链时,rtems-4.9-arm-rtems4.9-gdb-6.8-11.el5.i386.rpm 或rtems-4.9-i386-rtems4.9-gdb-6.8-11.el5.i386.rpm等等工具,可能遇到依赖失败的情况。如果想安装成功,网上有许多办法,使用RPM -U rtems-4.9-i386-rtems4.9-gdb-6.8-11.el原创 2011-07-03 10:20:31 · 2314 阅读 · 0 评论 -
RTEMS 的小技巧(2011.6.30.)
(本文原创,转载请注明出处,谢谢)RTEMS 4.10.0 今年早些时候发布了,自己一直捣鼓 4.9.5,所以没空弄这个东西,朋友们坐不住了,很多人都在尝鲜。有些朋友在编译RTEMS4.10.0时遇到了困难,我安装了工具就替朋友们解决了一下。这一弄,还发现了一些问题。特别写在这里(所有命令在linux fedora 8下测试通过):编译 RTEMS 4.10.0 的 i386的BSP时,有童鞋说编原创 2011-06-30 21:08:00 · 2598 阅读 · 2 评论 -
RTEMS 4.9.5:QEMU MINI2440 BSP 中的网络驱动开发(下)
(原创文章,转载请注明出处,谢谢。)驱动编译运行,呵呵,跑起来了,欣喜之余,要看看还有什么问题没有解决,还有什么吸取的经验。首先:1.DM9000的特性没有完全支持; * 没有操作DM9000的eeprom部分; * 没有调试dm9000的phy部分; *原创 2011-03-26 12:08:00 · 3656 阅读 · 6 评论 -
RTEMS应用程序的目录管理:Makefile写法
最近有个朋友,在网上问我一个编译问题。我和他讨论了一下,大致确定问题的位置了。即应用程序的目录问题。RTEMS一般简单的应用程序都是采用平面目录结构:RTEMS_APP_DIR |--main.c |--main.h |--init.c |--othe原创 2011-09-01 13:42:12 · 5088 阅读 · 15 评论 -
RTEMS的板级调试
最近实在太忙,实在是赶时间。朋友提了个在9260上板级调试问题。这个问题我觉得提得非常好,具有通用性。所以,怎么也抽时间写这篇博文。RTEMS的板级别调试不像使用qemu mini2440 那么简单。还是比较复杂的。当中有许多技术上的小细节。首先我们从qemu mini2原创 2011-09-03 23:14:50 · 5910 阅读 · 13 评论 -
RTEMS 应用程序含有多级子目录的Makefile工程文件编写
上一篇《RTEMS应用程序的目录管理:Makefile写法》,写得不好。让大家受累了。很多同事童鞋留言,在我QQ里留言。恩,看来我需要把这篇文章重新整理一下。RTEMS 官方提供的rtems 应用程序的示例,都是平面结构的。即一个目录下,所有的源代码都在同一个目录下。执行原创 2011-10-16 22:37:52 · 4236 阅读 · 5 评论 -
关于创业
创业的成功犹如草莓般光鲜亮丽,让人垂涎欲滴;然而创业的痛苦却如阴雨绵绵,浸润一切。亚瑟•叔本华说:”生命是一团欲望,欲望不满足便痛苦,满足便无聊。人生就在痛苦和无聊之间摇摆。“是欲望的不满足,还是理想的道路充满荆棘?成功是一种心态,成功也是种欲望的满足。原创 2012-06-20 22:22:47 · 3231 阅读 · 3 评论 -
虚拟平台在嵌入式中的应用
(原创文章,欢迎转载,请注明出处)虚拟平台原先就是一些老学究搞出来的东西,为了在一些大型机上,大家都想使用大型机而又相互不干扰。于是提出的虚拟机的概念,这使得每个人独立操作而互不干扰。但当时60、70年代,个人电脑还不足以支撑软件虚拟环境,所以一度被搁置。后来到了90年代后期再度进入人们的实现。90年代SUN公司弄出的Java虚拟机以及 vmware 虚拟机,都是市场的佼佼者。Java是一次编译到原创 2011-04-11 19:47:00 · 8308 阅读 · 28 评论 -
关于RTEMS的网络调试 (上)
由于写了《RTEMS 4.9.5:QEMU MINI2440 BSP 中的网络驱动开发》(上中下)三篇文章,并参与了大牛的Rick Leaf的项目emboslab。很多朋友写信给我,包括很多国外的朋友。他们在移植 RTEMS 4.10.2 到 Mini2440 上遇到了不少困难。我在帮助他们的过程中,也受到了一些启发。把相关内容写在这里,供大家批评指正。 RTEMS 是个复杂比较完善的操作系统,原创 2012-09-02 23:07:59 · 3180 阅读 · 1 评论 -
Network Configuration of QEMU for Mini2440 under Fedora 14
Original article written by Bacon Xu. Translation to English and revision by Saeed Ehteshamifar.(contact us, bacon's email: baconxu@gmail.com; SAeeD's mail: salpha.2004@gmail.com)This is a step-by-st原创 2012-08-25 17:03:03 · 2735 阅读 · 2 评论 -
关于RTEMS MINI2440的QEMU仿真从UBOOT加载问题的研究
恩,首先要感谢 Rickleaf, 介绍 QEMU 仿真 MINI2440 的方案给我,并且将MINI2440移植好的bsp分享给我。使我工作速度大大增加。以下是他的一篇移植 rtems4.9.5 到 qemu 上的文章。http://blog.csdn.net/rickleaf/archive/2011/03/16/6254361.aspx当时虽然能运行,但是使用gdb加载的方式。而不是使用uboot的加载方式。uboot的加载方式一直有问题。Rickleaf研究了一下,发现加载和启动地址都是 0x300原创 2011-03-20 14:49:00 · 5063 阅读 · 3 评论 -
嵌入式系统实验室的自由软件项目建立了
<br />rickleaf是一个热爱自由软件的大牛,呵呵,他正在搞一个"嵌入式系统实验室的自由软件项目",有幸入他法眼,让我加入该项目做一些rtems的工程代码。这个项目主要是为了没有硬件的朋友们可以在软件上仿真他们的嵌入式代码。<br /> <br />详情请阅读:<br />http://blog.csdn.net/rickleaf/archive/2011/03/19/6260866.aspx<br /> <br />希望爱好的朋友们多多捧场;有实力的朋友们加入开发阵营。谢谢。转载 2011-03-20 15:28:00 · 2325 阅读 · 0 评论 -
RTEMS 的 AT91SAM9260 移植(1):开题
09年我接触到 RTEMS,然后开始学习RTEMS,自己先后将 RTEMS移植到 AT91SAM9260的单板上,然后又移植到 Marvell 的 88F6281 的单板上。通过这两个移植,大量的阅读RTEMS 的手册,算是入了点门。于是乎,把 AT91SAM9260 的 BSP 撰写的整个过程与调试过程与大家分享。开发 BSP的过程大致如下:1.选择BSP模板,根据操作系统提供的BSP模板,选择与应用硬件环境最为相似的参考设计,针对具体的目标机对参考BSP进行必要的修改,形成自己的BSP;2.建立新BSP原创 2010-12-22 22:30:00 · 7982 阅读 · 4 评论 -
RTEMS 编译环境的建立(Cygwin)
开发环境是进行 RTEMS 开发的基础。RTEMS 为开发人员准备了基于Windows和Linux两大操作系统的工具链。两条工具链都是GNU工具链在不同平台上的移植。本质上都是相同的。在Windows操作系统下,建立Cygwin的开发环境,在cygwin上编译RTEMS的应用程序,使用Windows的编辑工具编辑RTEMS的代码。由于Cygwin是一个Windows下类Linux的环境。所以本文介绍的方法也适用于Linux的大部分发行版本。Cygwin目前可以工作在所有发布的Window原创 2010-12-21 14:53:00 · 9118 阅读 · 15 评论 -
RTEMS 开发环境建立 (Linux)
已经写了Cygwin下的RTEMS方式的建立,但是思前想后,还是把Linux的也写了吧。先对比一下cygwin和linux的开发环境的优缺点。1.cygwin 方式–下载相关的GNU Tools的压缩包并安装;–编译速度慢,但开发界面友好。2.纯 linux 方式–下载相关的GNU Tools的RPM包并安装;–编译速度快,但Linux下较难找到合适的编辑工具;–可以使用wine,将source insight 运行起来。3.虚拟机 + linux 方式–建立虚拟机环境;–下载相关的原创 2010-12-22 09:50:00 · 10757 阅读 · 26 评论 -
RTEMS 的 AT91SAM9260 移植(2): start.S 修改
遵循我们上次的步骤,1.将c/src/lib/libbsp/arm/csb337复制为 c/src/lib/libbsp/arm/at9260;2.将c/src/lib/libbsp/arm/at91rm9200复制为c/src/lib/libbsp/arm/at91sam9260;打开 c/src/libbsp/arm/at9260/start/start.S,修改如下:/* * AT9260 Start * Bacon Xu*/ /* Some stan原创 2010-12-22 22:44:00 · 4740 阅读 · 4 评论 -
RTEMS 的 AT91SAM9260 移植(5): 调试串口驱动
<br />其实到这里,只要能保证编译通过,再修改一下链接脚本,其实已经可以跑在at9260的系统上了。因为我没有仿真器,不知道程序的状态,所以必须撰写调试串口的驱动。<br />RTEMS 的调试串口并没有采用中断输出的方式,而是采用查询输出的方式。相对来说比较容易。<br />RTEMS里有两个打印函数:<br /> <br />printf 和 printk<br /> <br />printf是由库支持的打印函数,内部比较复杂,主要用于应用程序级别的打印,不能用于内核和中断的打印,特别是中断中不能使原创 2010-12-24 22:58:00 · 5946 阅读 · 5 评论 -
RTEMS 的 AT91SAM9260 移植(6): 杂项函数
<br />杂项函数在 BSP 中也是非常重要的。我为了图省事,全部都放置在了:c/src/lib/libcpu/arm/at91sam9260/pmc/pmc.c中。<br />主要是获取CPU当前的频率和系统主时钟的频率。<br />前几篇连载中,我们在串口和时钟驱动里都是用了获取主时钟频率的函数。<br /> <br />另外一个就是 udelay 函数。udelay函数原来是posix的标准函数,但是rtems并没有实现,<br />我们不可能用时钟节拍去做微秒级别的时间延时。<br />许多驱动程原创 2010-12-24 23:17:00 · 3230 阅读 · 0 评论 -
RTEMS 的 AT91SAM9260 移植(4): 中断驱动
中断驱动AT91rm9200和AT9260差别不大,主要要修改的地方是个别的中断向量号,另外就是最大中断向量号。我所作的修改:c/src/lib/libcpu/arm/at91sam9260/irq/irq.h删除了相关的9200的定义,定义了AT9260中断的最大数量。/* * Interrupt handler Header file * * Bacon Xu */#ifndef __IRQ_H__#define __IRQ_H__#ifdef __cplusplusex原创 2010-12-24 22:30:00 · 4274 阅读 · 0 评论 -
RTEMS 的 AT91SAM9260 移植(7): 链接脚本
<br />到上一连载为止,RTEMS 4.9.4的相关代码部分的修改就算结束了。<br />有些细心的朋友会注意到,第三个连载中列出了所有的文件,我们一些文件并没有修改;还有一些文件AT91RM9200中是没有的。如<br />c/src/lib/libcpu/arm/at91sam9260/memcpy/memcpy.S,这个文件是我找来的一个ARM下memcpy的优化版本,效率应该高于普通的memcpy。库里本来就有memcpy,所以编译不编译都无所谓。<br />另外就是网络驱动,网络驱动可有可无,原创 2010-12-25 10:34:00 · 3636 阅读 · 0 评论 -
RTEMS 的 AT91SAM9260 移植(8): 编译
到这里,代码部分就修改完毕了,还需要修改该的就是Autotools的宏和链接脚本。为了宏生成速度快,我把其他所有无关的BSP全部删除了。Autotools宏的修改相对比较简单,文件位置参考以上的连载,有贴出具体目录下的文件。这里首先修改:c/src/lib/libbsp/arm/at9260/Makefile.am#### $Id: Makefile.am,v 1.14 2008/08/21 19:33:47 joel Exp $##ACLOCAL_AMFLAGS = -I ../../../.原创 2010-12-28 00:38:00 · 4230 阅读 · 2 评论 -
RTEMS 的 AT91SAM9260 移植(9):Hello World
内核编译成功后,下一步我们就开始弄Hello World,完成这个工作,首先我们去官方网站下载测试程序包。http://www.rtems.org/ftp/pub/rtems/4.9.4/class-examples-4.9.4.tar.bz2解压缩,以后我们进入 class-examples-4.9.4 的文件夹。输入以下命令cd hello_world_cexport RTEMS_MAKEFILE_PATH=/opt/rtems-4.9/arm-rtems4.9/at9260make clean; ma原创 2010-12-28 08:55:00 · 4866 阅读 · 2 评论 -
RTEMS 的 AT91SAM9260 移植(3): 时钟驱动
遵循我们上次的步骤,1.将c/src/lib/libbsp/arm/csb337复制为 c/src/lib/libbsp/arm/at9260;at9260│ aclocal.m4│ bsp_specs│ ChangeLog│ configure│ configure.ac│ Makefile.am│ Makefile.in│ preinstall.am│ README│ times│ ├─autom4te.cache│原创 2010-12-24 22:01:00 · 4688 阅读 · 0 评论 -
RTEMS 4.9.4 CSB337 的 skyeye 仿真环境的建立
(原创,欢迎转载,但请注明出处,谢谢。)因为我一直有自己的开发板,公司有这样的条件,并且开发的代码很多与外设有关系,基本没法用软件仿真,所以基本没用到skyeye。最近忙着写rtems的文章,有朋友问我,怎样用rtems跑skyeye.去官网上一看,他们的确也用skyeye跑rtems,而且工作的很好。于是自己也下了个skyeye进行仿真,发现过程非常曲折,只是简单的跑个 hello world 可以,跑稍微复杂一点的代码,就不行了。自己一点点把这个问题解决了,把文章写出来,和大家分享。目前,网络我还没跑成原创 2011-01-04 23:16:00 · 3296 阅读 · 1 评论 -
基于Qemu的RTEMS仿真平台搭建
(说明:这篇文章是我的朋友写的,他在我的博客上首次发表,姑且算为原创吧)基于Qemu的RTEMS仿真平台搭建1 概述此文档描述了在Windows Qemu虚拟机下建立RTEMS仿真测试环境的过程。QEMU是一个开源的虚拟机程序,主要应用在Linux系统中,使用命令行方式进行操作。QEMU在Windows下有移植版本,并且技术爱好者为Windows的QEMU提供了免费UI界面,使其更符合Windows用户的软件操作习惯。这个UI程序称为QEMU Manager,平均每年更新一次,目前最新版本号为7.0。用户可原创 2011-01-13 13:23:00 · 9895 阅读 · 4 评论 -
QEMU MINI2440 的 Linux Fedora 8 下网络配置
(原创文章,欢迎转载,请注明出处,谢谢。)最近应朋友的要求,研究一下QEMU MINI2440下的仿真。本来我以为这个过程没什么的,这一研究还真发现不少问题,写出来与大家分享。我使用的系统环境:1.使用VMware 6.5,宿主机使用 win 72.VMWare 6.5上的系统是 Linux FC83.RTEMS 的编译环境 4.9首先我从以下网站获取源代码:原创 2011-03-16 11:18:00 · 8328 阅读 · 6 评论 -
centos的yum出现Could not retrieve mirrorlist解决方法
最近开发一些sparc处理器下的东西,需要安装工具链啊之类的动作。碰巧也赶上RTEMS.org升级网站。于是苦等。等升级好了,自己去升级的时候发现若干问题。在CENTOS下,安装了rtems-4.10-release-0.20131118.0-1.el6.noarch.rpm 和 rtems-4.10-yum-conf-0.20131118.0-1.el6.noarch.rpm后,出现了然后就没有原创 2014-12-10 18:50:11 · 26631 阅读 · 2 评论