第十一讲硬件抽象层与eCos移植
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• ② HALinterrup
thandling。提供 与中断处理相关的一些配置 选项,大多数的 HAL包都 共有这些选项。对于不同的 硬件平台,它们的具体实现 可能有差异。
硬件抽象层 HAL
• 利用配置工具可以对硬件抽象
层进行下面几个方面的配置:
• ③ HALcontextsw
itchsupport。提 供一些与线程上下文相关的配 置选项,大多数的 HAL包都 共有这些选项。对于不同的硬 件平台,它们的具体实现可能 有差异。
硬件抽象层 HAL
• 第三个子模块是平台抽象层。平台抽象层
对当前系统的硬件平台进行抽象,包括平 台的启动、芯片选择与配置、定时设备、 I/O寄存器访问以及中断寄存器等等。
硬件抽象层 HAL
• eCos在实现硬件抽象层时,采用了下述主要原则: • ① 尽管大部分eCos内核都使用C++,但其硬件抽
硬件抽象层 HAL
• 第一个子模块是体系结构抽象层。eCo
s所支持的不同处理器系列都具有不同的 体系结构,如 ARM 系列、Power PC系列、MIPS系列等等。体系结构 抽象层对 CPU 的基本结构进行抽象和 定义,此外它还包括中断的交付处理、上 下文切换、CPU 启动以及该类处理器 结构的指令系统等等。
硬件抽象层 HAL
• 第二个子模块是变体抽象层。变体指的是该处
理器在该处理器系列中所具有的特殊性,这些 特殊性包括在Cache、MMU(内存管理 部件)和FPU(浮点部件)等方面与其处理 器系列的基本结构具有的这样或那样的差异。 eCos的变体抽象层就是对这些特殊性进行 抽象和封装。如果 hip)内存和片内中断控制器,变体抽象层, 也必须对它们进行处理。对于结构性的变体, 实际上通常由体系结构抽象层来实现这种变体, 变体抽象层只简单地提供适当的配置定义。
硬件抽象层 HAL
• ③ 硬件抽象层提供简单而具有可移植的
机制来处理广泛范围内的处理器结构和硬 件平台。虽然可以绕过硬件抽象层(不使 用硬件抽象层)而直接对硬件进行操作, 但这种对硬件直接操作的方式移植性较差。
硬件抽象层 HAL
• 利用配置工具可以对硬件抽
象层进行下面几个方面的配 置:
•①
dependentHAL options。提供一些 与平台硬件无关的配置选项, 为所有平台的 HAL包所共 有。例如,对上下文切换过 程中保存的状态量进行控制 的选项。对于不同的体系结 构,这些选项的实现不尽相 同。
象层 HAL均用 C语言和汇编语言加以实现。这使得 HAL的适用范围更为广泛。
• ② 所有与 HAL的接口均采用 C++宏(Macro
s)加以实现。采用这种方式的好处是可以用内嵌C程 序、内嵌汇编程序、外部C函数和外部汇编程序的形式 对它们进行调用。同时,这种方式可以选择最有效的实 现方法而不会影响到接口。在平台抽象层或变体抽象层 需要对体系结构抽象层的定义进行更换或改进时,还可 以采用这种宏定义的方式对它们进行重定义。
• ⑥ ROM monito
rsupport。对 ROM 监控程序进行配 置。
• ⑦i386archit
ecture。提供对i 386体系结构的 HA L包的配置。除了提供该 体系结构一般的配置选项 外,它还提供对具体目标 平台专用的 HAL包的 配置。
硬件抽象层的结构
• 在开发一个新的eCos系统时,首先必
学习目标
• 例外处理
– HAL的启动处理 – 同步例外与异步中断的处理
• 虚拟向量 • eCos的移植
– 平台抽象层的移植 – 变体抽象层的移植 – 体系结构抽象层的移植
学习指南
• eCos是一种可移植的嵌入式操作系统,它可以移植到
16位、32位以及64位的各种处理器和平台上。eC os由各种组件构成,根据具体硬件平台的需要可以分别 将这些组件加入到系统中来,从而实现各种所需的功能。 eCos的这种层次结构的最底层是硬件抽象层(Har dwareAbstractionLayer),通常 称为 HAL。硬件抽象层 HAL对处理器结构和系统硬 件平台进行抽象,当需要在一个新的目标平台上运行eC os时,只需对底层的硬件抽象层进行修改,便可迅速地 将整个eCos系统移植到新的平台上。
• ④ Explicitcont
rolovercacheb ehaviour。提供一些 对Cache进行控制的选项, 使得对Cache行为的控制 变得简单。
•⑤
debuggingsupp ort。对源码级调试工具 G DB的支持进行配置。
硬件抽象层 HAL
• 利用配置工具可以对硬件
抽象层进行下面几个方面 的配置:
硬件抽象层 HAL
• 硬件抽象层处于eCos层次结构中的最
底层。根据所描述的硬件对象的不同,可 以将硬件抽象层分成三个不同的子模块, 它们分别是体系结构抽象层(Archi tectureHAL)、变体抽象层 (VariantHAL)和平台抽象层 (PlatformHAL)。
硬件抽象层 HAL
硬件抽象层 HAL
课前回顾
• Counter • Alarm • Clock • Timer
学习目标
• 硬件抽象层与eCos移植 • 硬件抽象层 HAL
– 硬件抽象层的结构 – HAL的类型硬件抽象层文件描述
• 硬wenku.baidu.com抽象层接口
– 基本定义 – 体系结构描述 – 中断处理 – I/O操作 – Cache控制 – SMP支持 – 诊断支持 – 链接脚本
须对硬件抽象层 HAL的结构有所了解。 开发人员必须针对目标系统硬件平台的特 殊性而对硬件抽象层中相关部分进行必要 的修改。同时,还应该了解 HAL与系 统其他部分之间的相互影响和关系。
硬件抽象层的结构
• HAL的类型 • 在具体的实现中通常可以将 HAL分为五种类
型,即公共抽象层(CommonHAL)、 体系结构抽象层、变体抽象层、平台抽象层以 及辅助抽象层(AuxiliaryHAL)。 公共抽象层包含了所有结构和平台的硬件抽象 层所共享的配置选项和函数,包括常用的调试 功能、驱动程序 API、测试程序等等。辅助 抽象层包含了处理器的一些变体所共享的公共 模块,如 MotorolaPowerPC中 的 对这五种类型的 HAL进行了描述。
thandling。提供 与中断处理相关的一些配置 选项,大多数的 HAL包都 共有这些选项。对于不同的 硬件平台,它们的具体实现 可能有差异。
硬件抽象层 HAL
• 利用配置工具可以对硬件抽象
层进行下面几个方面的配置:
• ③ HALcontextsw
itchsupport。提 供一些与线程上下文相关的配 置选项,大多数的 HAL包都 共有这些选项。对于不同的硬 件平台,它们的具体实现可能 有差异。
硬件抽象层 HAL
• 第三个子模块是平台抽象层。平台抽象层
对当前系统的硬件平台进行抽象,包括平 台的启动、芯片选择与配置、定时设备、 I/O寄存器访问以及中断寄存器等等。
硬件抽象层 HAL
• eCos在实现硬件抽象层时,采用了下述主要原则: • ① 尽管大部分eCos内核都使用C++,但其硬件抽
硬件抽象层 HAL
• 第一个子模块是体系结构抽象层。eCo
s所支持的不同处理器系列都具有不同的 体系结构,如 ARM 系列、Power PC系列、MIPS系列等等。体系结构 抽象层对 CPU 的基本结构进行抽象和 定义,此外它还包括中断的交付处理、上 下文切换、CPU 启动以及该类处理器 结构的指令系统等等。
硬件抽象层 HAL
• 第二个子模块是变体抽象层。变体指的是该处
理器在该处理器系列中所具有的特殊性,这些 特殊性包括在Cache、MMU(内存管理 部件)和FPU(浮点部件)等方面与其处理 器系列的基本结构具有的这样或那样的差异。 eCos的变体抽象层就是对这些特殊性进行 抽象和封装。如果 hip)内存和片内中断控制器,变体抽象层, 也必须对它们进行处理。对于结构性的变体, 实际上通常由体系结构抽象层来实现这种变体, 变体抽象层只简单地提供适当的配置定义。
硬件抽象层 HAL
• ③ 硬件抽象层提供简单而具有可移植的
机制来处理广泛范围内的处理器结构和硬 件平台。虽然可以绕过硬件抽象层(不使 用硬件抽象层)而直接对硬件进行操作, 但这种对硬件直接操作的方式移植性较差。
硬件抽象层 HAL
• 利用配置工具可以对硬件抽
象层进行下面几个方面的配 置:
•①
dependentHAL options。提供一些 与平台硬件无关的配置选项, 为所有平台的 HAL包所共 有。例如,对上下文切换过 程中保存的状态量进行控制 的选项。对于不同的体系结 构,这些选项的实现不尽相 同。
象层 HAL均用 C语言和汇编语言加以实现。这使得 HAL的适用范围更为广泛。
• ② 所有与 HAL的接口均采用 C++宏(Macro
s)加以实现。采用这种方式的好处是可以用内嵌C程 序、内嵌汇编程序、外部C函数和外部汇编程序的形式 对它们进行调用。同时,这种方式可以选择最有效的实 现方法而不会影响到接口。在平台抽象层或变体抽象层 需要对体系结构抽象层的定义进行更换或改进时,还可 以采用这种宏定义的方式对它们进行重定义。
• ⑥ ROM monito
rsupport。对 ROM 监控程序进行配 置。
• ⑦i386archit
ecture。提供对i 386体系结构的 HA L包的配置。除了提供该 体系结构一般的配置选项 外,它还提供对具体目标 平台专用的 HAL包的 配置。
硬件抽象层的结构
• 在开发一个新的eCos系统时,首先必
学习目标
• 例外处理
– HAL的启动处理 – 同步例外与异步中断的处理
• 虚拟向量 • eCos的移植
– 平台抽象层的移植 – 变体抽象层的移植 – 体系结构抽象层的移植
学习指南
• eCos是一种可移植的嵌入式操作系统,它可以移植到
16位、32位以及64位的各种处理器和平台上。eC os由各种组件构成,根据具体硬件平台的需要可以分别 将这些组件加入到系统中来,从而实现各种所需的功能。 eCos的这种层次结构的最底层是硬件抽象层(Har dwareAbstractionLayer),通常 称为 HAL。硬件抽象层 HAL对处理器结构和系统硬 件平台进行抽象,当需要在一个新的目标平台上运行eC os时,只需对底层的硬件抽象层进行修改,便可迅速地 将整个eCos系统移植到新的平台上。
• ④ Explicitcont
rolovercacheb ehaviour。提供一些 对Cache进行控制的选项, 使得对Cache行为的控制 变得简单。
•⑤
debuggingsupp ort。对源码级调试工具 G DB的支持进行配置。
硬件抽象层 HAL
• 利用配置工具可以对硬件
抽象层进行下面几个方面 的配置:
硬件抽象层 HAL
• 硬件抽象层处于eCos层次结构中的最
底层。根据所描述的硬件对象的不同,可 以将硬件抽象层分成三个不同的子模块, 它们分别是体系结构抽象层(Archi tectureHAL)、变体抽象层 (VariantHAL)和平台抽象层 (PlatformHAL)。
硬件抽象层 HAL
硬件抽象层 HAL
课前回顾
• Counter • Alarm • Clock • Timer
学习目标
• 硬件抽象层与eCos移植 • 硬件抽象层 HAL
– 硬件抽象层的结构 – HAL的类型硬件抽象层文件描述
• 硬wenku.baidu.com抽象层接口
– 基本定义 – 体系结构描述 – 中断处理 – I/O操作 – Cache控制 – SMP支持 – 诊断支持 – 链接脚本
须对硬件抽象层 HAL的结构有所了解。 开发人员必须针对目标系统硬件平台的特 殊性而对硬件抽象层中相关部分进行必要 的修改。同时,还应该了解 HAL与系 统其他部分之间的相互影响和关系。
硬件抽象层的结构
• HAL的类型 • 在具体的实现中通常可以将 HAL分为五种类
型,即公共抽象层(CommonHAL)、 体系结构抽象层、变体抽象层、平台抽象层以 及辅助抽象层(AuxiliaryHAL)。 公共抽象层包含了所有结构和平台的硬件抽象 层所共享的配置选项和函数,包括常用的调试 功能、驱动程序 API、测试程序等等。辅助 抽象层包含了处理器的一些变体所共享的公共 模块,如 MotorolaPowerPC中 的 对这五种类型的 HAL进行了描述。