
RTEMS
Etual
这个作者很懒,什么都没留下…
展开
-
RTEMS 移植到 sbc2440 的简要笔记
首先安装编译链,还有编译一下 smdk2410 和hello例子,保证编译通过再进行移植。一, rtems-4.10.2/c/src/lib/libbsp/arm1,添加 sbc2440目录,将smdk2440的所有文件复制过来。2,修改 acinclude.m4添加 sbc2440二,rtems-4.10.2/c/src/lib/libbsp/arm/sbc2440/ma原创 2012-12-07 17:48:38 · 1425 阅读 · 2 评论 -
RTEMS IMFS文件根文件系统的初始化过程
boot_card --> bootcard_bsp_libc_helper --> bsp_libc_init --> /* * Init the RTEMS libio facility to provide UNIX-like system * calls for use by newlib (ie: provide open, close, etc)原创 2013-12-17 08:58:10 · 2007 阅读 · 0 评论 -
RTEMS 的libio ,work area ,heap,串口驱动等的一些阅读源代码分析笔记
ram_end = (uintptr_t)RamBase + (uintptr_t)RamSize; *work_area_start = WorkAreaBase; *work_area_size = ram_end - (uintptr_t) WorkAreaBase; *heap_start = BSP_BOOTCARD_HEAP_USES_WORK_AREA;原创 2013-12-17 17:45:08 · 2734 阅读 · 0 评论 -
分析RTEMS的RAMDISK的使用和原理等
本文的例子是指 \rtems-4.10.2\testsuites\samples\fileio 的文件系统访问的例子RAMDISK部分/* * RAM disk driver so you can create a RAM disk from the shell prompt. *//** * The RAM Disk configuration. */rtem原创 2013-12-19 09:33:50 · 2333 阅读 · 0 评论 -
RTEMS 的文件系统初始化等的一点分析笔记
/** * @brief File system operations table. */struct _rtems_filesystem_operations_table { rtems_filesystem_evalpath_t evalpath_h; rtems_filesystem_evalmake_t evalformake_h;原创 2013-12-21 11:41:16 · 1548 阅读 · 0 评论 -
RTEMS 的TCP网络吞吐量测试
本测试是指 S3C2440,FCLK为 200MHZ,MMU,cache 都打开,网卡是 CS8900CS8900 是 10M 网卡,理论传输率为 1.25MHZ,实际上看看在RTEMS上的表现如何rtems-4.10.2network-demos-4.10.2/ttcpttcp 是一个测试TCP吞吐量的程序,其原生程序为 BSD上的程序,可以在linux上直接编译,能原创 2013-12-25 14:40:12 · 2861 阅读 · 1 评论 -
移植 RTEMS 4.11 到 SBC2440 上
centos 6.5 i386,用virtualbox 4.3rtems 4.11 / svn head 20140107(一)从仓库获取最新版git clone git://git.rtems.org/rtems.git(二)删除不要的cpu和bsp,加快速度1,\rtems\cpukit\score\cpu只留下arm,其他删掉,修改 Makefil原创 2014-01-08 16:05:04 · 3166 阅读 · 2 评论 -
RTEMS 4.11 工具链安装
centOS 6.5 livecd i386virtualbox 4.3.6RTEMS 官方有指南 :http://rtems.org/wiki/index.php/APT/Yum_Repository1,首先安装仓库wget -c http://www.rtems.org/ftp/pub/rtems/linux/4.11/centos/6/i386/rtems原创 2014-01-04 14:04:31 · 3251 阅读 · 0 评论 -
项目 Nano-RTEMS for ARMV7M 启动
Project Nano-RTEMS for ARMV7M 我的想法如下:1、为 ARMV7M 平台提供一个可靠的RTOS 平台,RTEMS本身就是这么一个可靠的硬实时系统,而Cortex-M3,M4有着越来越强的处理能力,可扩展NAND和SDRAM,非常适合跑这类本身就是比较完善的系统。2、提供一个相对精简的核心,只耗 20KROM 和 10K RAM,取代 ucos 或者fre原创 2014-02-12 15:47:22 · 3709 阅读 · 3 评论 -
RTEMS 的 Console 的基本架构分析
Console 的基本架构首先配置需要启动 CONSOLE 驱动,另外还需要文件系统的支持,可以配置 devfs 或者 imfs 都可以。主要是提供一个 /dev/console 的节点注册,访问等支持。#defineCONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER#defineCONFIGURE_USE_DEVFS_AS_BASE_FILESYST原创 2014-03-13 10:33:43 · 3096 阅读 · 0 评论 -
RTEMS 网络驱动的一些分析和理解
Network 的 demo 是独立提供的,所以应该自己去官网ftp里面下载。network-demos-4.10.2\netdemo 里面的例子是最原始的,所以应该以这个作为切入点。首先rtems_bsdnet_config 必须由用户自己提供,这个可以提供一个用户配置接口的机会,一些 init 中必须配置的选项#define CONFIGURE_USE_IMFS_AS_BASE_F原创 2014-03-19 11:04:03 · 1417 阅读 · 0 评论 -
rtems 4.10 工具链安装,采用yum方式
centOS 6.5 livecd i386virtualbox 4.3.6RTEMS 官方有指南 :http://rtems.org/wiki/index.php/APT/Yum_Repository1,首先安装仓库wget -c http://www.rtems.org/ftp/pub/rtems/linux/4.10/centos/6/i386/rte原创 2014-06-05 06:24:25 · 1366 阅读 · 0 评论 -
怎么使用 UBOOT 来启动 rtems
怎么使用 UBOOT 来启动 rtems假设UBOOT已经正常启动了,网络也能用例如 hello world 例子,rtems编译之后的应用程序是 .exe,实际上就是 elf 文件如果有elf解析器,例如调试的时候就是使用 gdb直接加载 .exe 文件就可以了,但是uboot加载的话,应该将它先转换为 bin 文件。使用命令$ arm-rtems4.10-objcopy原创 2014-06-25 18:25:30 · 2101 阅读 · 0 评论 -
RTEMS 调试网络驱动的简单方式
之前调试网络驱动,每次修改完之后都需要重新编译内核,然后安装内核,然后编译测试程序,最后才是下载调试,这样实在太繁琐了。其实网络驱动不需要在 bsp 中做,可以在 netdemo 中把驱动做了,只需要在netdemo的 Makefile 中添加 -D__INSIDE_RTEMS_BSD_TCPIP_STACK__ 表示例如override DEFINES += CPPFLAG原创 2014-06-09 16:16:34 · 1361 阅读 · 1 评论 -
RTEMS for Cortex M3 M4 with KeilMDK 项目进度(完成)
项目主要用在 Cortex-M3 , M4上,使用 KeilMDK 编译项目的移植理念http://blog.youkuaiyun.com/etual/article/details/19121115原始代码可以访问RTEMS 的官网http://www.rtems.org20140217经过一个多月的艰苦移植,内核算是跑起来了,SCORE, RTEMS,SAP原创 2014-02-17 14:37:15 · 6001 阅读 · 2 评论 -
对RTEMS移植剪裁的一些想法(闲聊)
我想的是剪裁一个真正的精简版 RTEMS ,因为直接从源代码中整合,删除一些不要的特性。主要还是面向一个普通单片机使用的OS,目前为 cortex-M3 剪裁。不要浮点支持不要多核,多CPU支持。timestamp 使用UNIX格式的,不使用 64位。只支持时间片调度和优先级调度。将 newlib 的头文件包含进来,不再独立整理,精简头文件,包含等不要 16原创 2014-05-27 17:35:11 · 2346 阅读 · 1 评论 -
定位了RTEMS移植CS8900驱动的时候产生的 data abort exception 问题
之前是照葫芦画瓢,修改了几个结构体的定位,但是我一直觉得,不应该这样去处理的,今天有点时间,又继续研究这个问题,我感觉是对齐问题,研究结论如下:确定对齐问题,参考了 freeBSD 8.4 的代码首先,以太网的头部因为只有14个字节,对于ARM来说,这肯定会出现问题的,所以需要添加 packed属性,让它按照字节对齐,这样sizeof(ether_header) 的时候是原创 2013-12-13 15:16:15 · 1368 阅读 · 2 评论 -
RTEMS 移植 CS8900网卡成功
经过好久的折腾,大致是成功了,但是还剩下对齐问题没有解决,先记录基础:原始基础代码在 \rtems-4.10.2\c\src\libchip\network 下的 cs8900.c默认已经是编译进系统的,但我们需要手动修改在以下的bsp中有 cs8900 的bsp实现代码,基本上就是按照他来做,然后修改点点满足自己的要求。\rtems-4.10.2\c\sr原创 2013-12-11 09:57:18 · 1709 阅读 · 1 评论 -
RTEMS 应用程序的初始化过程分析
注意:本笔记仅代表目前阶段的了解版本 RTEMS 4.10.2 看了RTEMS的hello world例子,代码很简单,只有简单的几行。rtems_task Init( rtems_task_argument ignored){ printf( "\n\n*** HELLO WORLD TEST ***\n" ); printf( "Hello Worl原创 2012-12-11 10:00:30 · 1529 阅读 · 0 评论 -
RTEMS 移植到 sbc2440 的笔记
上次到简要笔记,是在虚拟机上面实现到。由于最近在PC上安装来 centOS 6.3 于是将移植重新做了一次,搞来一个晚上,这次将详细一点到移植过程。我的开发板是 sbc2440,仿真器用jlink v8 配合openocd,系统是 CentOS 6.3 X64,项目编辑使用 eclipse,串口软件使用 minicom注意,以下到文章移植对 2440 都是通用的。但是,如果是仿原创 2012-12-23 22:28:47 · 3272 阅读 · 1 评论 -
RTEMS 闪灯程序
初始化生成一个user任务,然后运行user任务,init任务删除自己。在user任务中,调用系统函数 rtems_task_wake_after 函数,该函数会将自己线程挂起,然后释放CPU资源,等待 N 个 tick 之后唤醒。系统默认到 tick 是 10ms ,可以直接使用 rtems_task_wake_after( 50 ); 表示 50个 tick 也就是 500ms也可原创 2012-12-23 22:37:10 · 2346 阅读 · 3 评论 -
RTEMS 的 EVENT 和 中断的使用例子
#include #include #include #include #include #define LED_ON() GPBDAT &=~ (1<<5)#define LED_OFF() GPBDAT |= 1<<5static rtems_id led1;static rtems_id led2;rtems_isr EINT0_handler (rtems_ve原创 2012-12-26 00:22:45 · 2573 阅读 · 1 评论 -
RTEMS 经验积累(一)
最近调试RTEMS中的一点小经验积累我是用norflash启动系统的,如果norflash中有程序,并且程序搬移到SDRAM的话我调试rtems的时候就不行了。不知道为什么。我的解决办法是烧录一个小的init程序到norflash,程序来自百问网 (www.100ask.net)的OPENJTAG 配套程序,因为我之前买了一个,当时还不知道jlink能在linux下面用,于是买了个原创 2012-12-26 08:58:00 · 1494 阅读 · 0 评论 -
理解RTEMS 的网络驱动结构
折腾了大半天,勉强看懂了RTEMS关于网卡驱动部分的架构了。根据 networking 文档的描述,网卡驱动必须执行 attach函数将驱动和bsd协议栈联系起来 cs8900_driver_attach,然后这个函数里面将各个驱动函数注册到 rtems_bsdnet_ifconfig,然后注册到系统,这看起来没什么特别,一般驱动都是这样做。但是问题来了,cs8900_driver原创 2012-12-26 15:15:48 · 1764 阅读 · 2 评论 -
RTEMS 中断程序的思路
昨天做的中断demo例子http://blog.youkuaiyun.com/etual/article/details/8435701之前分析中断原理的文章http://blog.youkuaiyun.com/etual/article/details/8363938昨天写中断的例子(代码看上面的连接),遇到了一些问题,记录如下。中断的原理和思路,和之前分析的基本一致。根据之前分析,rtem原创 2012-12-26 08:39:29 · 2668 阅读 · 1 评论 -
RTEMS 应用程序基本架构
#include #include #include static rtems_task user_task (rtems_task_argument ignored){ printf("In User tASK\n"); while (1) { }}rtems_task Init(rtems_task_argument ignored){原创 2012-12-14 23:00:43 · 2558 阅读 · 2 评论 -
rtems 使用shell
#include #include #include #include static rtems_task user_task (rtems_task_argument ignored){ printf("In User tASK\n"); printf("starting shell\n"); rtems_shell_init( "SHLL",原创 2012-12-14 23:51:36 · 3156 阅读 · 3 评论 -
centOS 平台的 RTEMS 编译安装
centOS 5.8RTEMS 4.10.2VirtualBox 4.20++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1,虚拟机virtual box 安装centOS,一切安装默认提示进行。2,安装完之后要继续安装开发工具包,Application --> Add/Remove原创 2012-11-29 10:32:35 · 2733 阅读 · 1 评论 -
rtems 驱动机制初探
注意,以下博客为我个人目前的理解,不代表正确,仅作参考。rtems 4.10.2Device Driver相关的函数 rtems_configuration_table Configuration = { .... CONFIGURE_MAXIMUM_DRIVERS, /* maximum device drivers */原创 2012-12-18 12:15:21 · 2353 阅读 · 0 评论 -
移植驱动cs8900的一点经验笔记
cs8900 的驱动文件在\rtems-4.10.2\c\src\libchip\network其实大部分函数已经写好了,只需要写基本的接口函数。rtems_bsdnet_config 必须由用户指定,可以在bsp里面做了,也可以在用户程序中指定。其实驱动程序可以再用户程序中做,这样调试方便很多。在makefile中需要添加DEFINES += -D__INSIDE_RTEMS原创 2013-01-01 00:24:55 · 938 阅读 · 0 评论 -
简单分析RTEMS基于S3C2440 的中断处理原理
看连接脚本,异常向量连接在开始的 0x100 地址(空位填充0,ALIGN 控制)如果 RTEMS 是放到SDRAM中运行,0x30000000 - 0x30000100 就应该是异常向量。然后 0x30000100 开始的是 _start 这个entry,代码从这里开始。从start.S 的开始部分没有看到常见的向量表。因为RTEMS期望有一个bootloader将它本身复制到S原创 2012-12-21 14:45:41 · 2233 阅读 · 2 评论 -
怒了,调了半个月调不好CS8900的驱动
前前后后整整半个月了,虽然实际做的时间不多,多是晚上下班回去搞一个多小时。但是结果是到了目前为止,还没有搞定,怒了!决定重写驱动。不过,收获是挺大的,rtems的这个架构跟linux可以说是差不多的了。监控任务,等待事件,中断发送事件。调试了CS8900基于裸机的驱动,从uboot移植过来,可以发送ping了。于是考虑从这个基础上搞一个rtems的驱动开始动手了。预期两个星期写好并原创 2013-01-09 16:01:24 · 1117 阅读 · 1 评论 -
RTEMS 最新基于ubuntu和RSB编译环境的安装配置
VirtualBox-5.0.20-106931-Winubuntu 14.04 amd64 其中 RSB 的官方文档在这里https://docs.rtems.org/rsb/1,虚拟机安装。安装增强功能。将当前用户添加到 vboxsf的组 $ sudo adduser rtems vboxsf 其中 rtems是当前的用户,logout 或者重启后原创 2016-05-17 10:02:00 · 2940 阅读 · 5 评论