|
|
|
|||||
|
|
作者 Ray RTEMS版权所有,转载请注明来源www.rtems.net,作者Ray 第 1 节: 介绍本章介绍了RTEMS开发环境,包括
RTEMS被设计成一个可以重用的组件。像是RTEMS这样高度可重用的软件, 通常以原始码的形式典型地被分配,在分发的时候没有提供任何的软件支持工具。 RTEMS中包含了一个包括板支持包(BSP),设备驱动和支持库。RTEMS开发环境不是CASE工具,而是为了方便设计和维护而提供的工具集合。 RTEMS开发环境主要是用的是GNU的工具链。他包括编译程序,汇编程序,连接器。GNU工具链不但源代码开放,而且支持的处理器非常多,可以说没有GUN编译环境,就没有开源世界的今天。 所以,为了使用好RTEMS,必须熟悉GNU的开发环境(哈哈,地球人都知道)。RTEMS的程序模块性非常强,而且所有的代码根据功能分别存放在不同的目录中。不同硬件体系的代码放在不同的目录下,能有效的系统的消除硬件依赖,使系统的移植能力更强。 1.1: 硬件相关源代码硬件相关包括处理器相关和目标硬件板BSP相关。处理器相关的代码主要是线程上下文切换和中断处理子程序。RTEMS支持的处理器类别可以在cpukit/score/cpu目录下找到。如果需要将RTEMS移植到新的处理器上面,可以参考no_cpu目录,该目录有处理器相关代码的原型。 处理器相关又可以细分为不同的子类。例如ARM处理器就可以分为ARM7系列和ARM9等系列。这不同系列存在一些差异,移植的时候必须将这些因素考虑进去。 与硬件的源文件包括:
RTEMS通过将系统分为多个层来提高系统的可移植性,同时也增加了系统软件的可复用性。RTEMS系统中大多数软件模块都可以在不同的硬件系统上面运行。RTEMS中,和硬件相关的代码分为下面几类:
RTEMS中源代码按照功能和硬件依赖关系组织在不同目录里面,如果程序员需要为自己的硬件设备上移植RTEMS,就需要熟悉这些文件的存放规则。 第 2 章: 目录结构随着系统的发展,RTEMS的目录结构在各个版本中也有了不少的变化,但是通常来说,目录设计符合下列的需求:
同时,根据不同硬件BSP存放目标文件还有一个好处,比如同一个处理器的两块电路板,一个有64kb的RAM,另一个有1Mb的RAM,那么在第一个系统中,内存的优化就很重要,需要注意字节的对齐以及在内存中的排列,而第二个系统对这些因素不必考虑得太多。在RTEMS中,可以方便的实现这样的需求。 处理器相关的代码主要是线程上下文切换和中断处理子程序。RTEMS支持的处理器类别可以在cpukit/score/cpu目录下找到。如果需要将RTEMS移植到新的处理器上面,可以参考no_cpu目录,该目录有处理器相关代码的原型。 处理器相关又可以细分为不同的子类。例如ARM处理器就可以分为ARM7系列和ARM9等系列。这不同系列存在一些差异,移植的时候必须将这些因素考虑进去。 RTEMS 源代码被组织成下面的部分: 功能性组件, 目标处理器(例如ARM系列,MPC系列), 目标处理器模型(例如ARM中的ARM7TDMI,ARM920T等), 外围设备以及目标板 下面将考察源代码的目录结构,为了方便,将目录树的根记为 ${RTEMS_ROOT} 。 rtems- 版本 ( 如 4.6.2) ${RTEMS_ROOT}/aclocal/ 该目录存放了 autoconf 使用的 M4 宏。 autoconf 解释 configure.ac 文件 , 这些文件在定制、剪裁 RTEMS、为不同硬件体系产生不同目标文件这一系列过程中起着重大作用。 ${RTEMS_ROOT}/automake/ 该目录包含automake使用的脚本,他们用来创建Makefile.am。 ${RTEMS_ROOT}/c/ 该目录存放的文件是必须根据不同硬件结构剪裁的BSP,这个目录下面还有很多子目录,将在下一节讨论。 ${RTEMS_ROOT}/contrib/ 该目录存放了Cygwin和Solaris平台下的交叉编译器相关的资料和文件。 ${RTEMS_ROOT}/cpukit/ 该目录是RTEMS的库文件(例如C语言库libc.a)以及硬件无关的操作系统核心源代码。该目录将在后面详细说明。 ${RTEMS_ROOT}/doc/ 存放 TeXinfo 和 HTML 格式的文档 ${RTEMS_ROOT}/make/ Makefile 的配置文件 , 例如 make/custom 子目录中每个 .cfg 文件都对应了一个 BSP 的配置 , 包括处理器模式、编译选项等。这些配置在BSP章节中会有说明。 ${RTEMS_ROOT}/scripts/ 该目录存放了 RPM 包的说明 , 每个 RPM 包占用一个子目录 , 包括 binutils/ 、 gcc3newlib/ 、 gdb/ 等。 ${RTEMS_ROOT}/tools/ 该目录包含 RTEMS 专用的一些工具。这些工具有目标硬件相关的,也有用来升级RTEMS源代码的。
|
|||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
嵌入式软硬件设计咨询 8位
16位 32位 64位 RISC DSP |
||||||||||||||||
| 2004 RTEMS.NET 版权所有 |
||||||||||||||||