用户中心

资讯 > 嵌入式系统

开发RTEMS实时系统的板级支持包

2007.05.21阅读 3406

  一个优秀的RTOS(Real-Time Operating system)不但要拥有一个高可靠、多任务的实时内核,还应具有可剪裁和可移植的能力。RTEMS(the Real - Time Executivefor Multiprocessor Systems)[1]就是这样的系统,它提供的环境可以满足高性能的嵌入式多任务实时应用。目前,RTEMS支持的CPU系列有:A29k、ARM、H8300、1386、1960、M68k、MIPS、PPC和SPARC等。

  板级支持包BSP(Board Support Package)是嵌入式实时系统的基础部分CONTROL ENGINEERING China版权所有,也是实现系统可移植性的关键。它负责上电时的硬件初始化、启动嵌入式操作系统或应用程序模块、提供底层硬件驱动,为上层软件提供访问底层硬件的手段。BSP针对目标板设计,其结构和功能随目标板的不同而呈现较大的差异。在将嵌入式系统移植到一种新的CPU时,必须提供相应的板级支持包。

  本文参考SPARC微处理器ERC32的BSP,主要讨论RTEMS的BSP开发过程。

  1 RTEMS体系结构

  RTEMS采用微内核基础上的层次化结

控制工程网版权所有,如图l所示。这种结构只把那些绝对必需的系统功能置于内核之中(如中断管理、上下文切换、内存访问管理、时间管理、线程及线程间的通信与同步管理等),而把那些并非必需的系统功能(如文件系统、网络、远程过程调用等)置于微内核之上在用户模式下运行。

点击看原图

点击看原图

  RTEMS的板级支持包是启动代码、连接器脚本和编译规范文件(specs)和设备驱动程序的集合[2],它们针对不同目标机的硬件环境剪裁RTEMS。

  2 RTEMS启动过程

  处理器加电或复位时,基于RTEMS的应用程序初始化或者重新初始化[3]。BSP中的启动代码负责为RTEMS应用程序建立运行环境。

  RTEMS启动过程的顺序如下:

  ① 执行BSP中的启动代码;

  ② 调用rtems_initialize_executive;

  ③ 局部和全局应用程序的初始化。

  处理器复位时,首先执行BSP的启动代码。BSP必须将所有的硬件初始化为一个静止状态控制工程网版权所有,然后操作系统才能初始化。rtems_initialize_executive指令不返回启动代码,它将导致最高优先级的初始化任务开始执行。初始化任务用于完成局部或全局依赖于RTEMS的应用程序初始化。

  3 BSP开发过程

  下面以SPARC微处理器ERC32为例,说明RTEMSBSP的开发步骤:

  ①建立开发环境。开发模式采用宿主机/目标机模式。宿主机运行环境采用Linux系统,目标机为ERC32。宿主机和目标机通过串口连接。交叉开发工具采用添加了RTEMS补丁的GNU工具链(GCC,GDB,Newlib控制工程网版权所有,binary utilities)。

  ② 选择BSP模板。通常是根据操作系统提供的BSP模板,选择与应用硬件环境最为相似的参考设计,针对具体的目标机对参考BSP进行必要的修改和增删,以形成自己的BSP。选择一个适当的BSP模板可以达到事半功倍的效果。

  ③建立新bsp目录。将模板BSP整个目录拷贝到适当的目录下(如libbsp/),重命名为mybsp。

  ④ 建立bsp配置文件。拷贝任意一个BSP.cfg,重命名为mybsp.cfg,修改相关的体系结构定义,如:RTEMS_CPU_MODEL,RTEMS_BSP,CPU_CFLAGS和制定make_exe规则。

  ⑤修改makefile文件。对mybsp-bsp中每一个Makefile.in文件,运行acpolishCONTROL ENGINEERING China版权所有,并检查运行的结果,例如:

  cd /mybsp - bsp/some_subdir

  /path_to_SACOS/t00ls/update/acpolishMakefile.new

  再次运行acpolish:

  /path_to_SACOS/tools/update/acpolishMakefile.in

  将Makefile.new和Makefile.in进行比较。如果不相同,则重新编辑Makefile.new,多次运行acpolishCONTROL ENGINEERING China版权所有,直到连续两次产生的Makefile.in相同。

  ⑥ 修改启动代码。建立自陷表、基本的CPU初始化、设置中断堆栈等。

  ⑦ 配置RTEMS。设置RTEMS相关全局变量和常量、RTEMS配置表、CPU依赖信息表、系统初始化任务表,以及用户初始化任务表等,除完成相关的系统功能之外,提供板上外设的设备驱动程序。

  ⑧调试和测试。建立RTEMS执行映像,利用串口下载可执行映像到目标机,测试BSP的正确性。

  3.1 启动代码实现

  BSP的启动代码主要

版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688