- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Nucleus操作系统-实时内核介绍
第二章 Nucleus PLUS内核介绍 ?? 2.1 Nucleus PLUS应用开发综述 ?? 2.1.1 开发调试环境??? 嵌入式实时应用程序的开发基于宿主机系统。IBM PC 和UNIX 工作站都是典型的宿主机系统。一般来说,应用程序都是运行在分离的计算机系统上被目标系统调用。然而,IBM PC系统并 不遵循上述规则,因为它既可以作为Nucleus PLUS 应用程序的主机,也可为目标机为其服务。运行在IBM PC系统 上的应用程序以EXE 文件的形式存在。??? 针对目标系统的调试软件通常包括ICE 仿真工具和TRM(目标仿真)工具。ICE仿真工具给工程师提供了完全控制和了解目标系统硬件状况的工具,特别是在校验新硬件时尤为有用。但是,考虑到开发工具成本问题和ICE时有的使用局限性,许多项目采用TRM调试。TRM 就是一个运行在目标系统(通常为ROM)上的小型的软件组件。TRM 提供包括下载、下断点和内存入口服务。ICE 和TRM 都有宿主系统控制。这通常由串口来完成。??? 2.1.2使用Nucleus PLUS??? Nucleus PLUS被设计成C库的形式使用。使用内部应用程序软件的服务从Nucleus PLUS 库文件取出并且组合成应用程序目标文件来生成最终的映像文件。此映像文件可以下载到目标系统或是存放到目标系统ROM 中。??? 使用Nucleus PLUS 的步骤被描述成下列通用的方式:??? 1) 如果有必要,修改低级系统初始化文件,INT.S。注:这些文件通常以汇编语言形式交货并且它的的扩展是指定的开发工具。??? 2) 定义Application_Initialize 函数,Nucleus PLUS 启动系统时它优先运行。注意NUCLEUS.H 文件必须包含以至于能被Nucleus PLUS 服务调用。??? 3) 定义应用程序任务。如果用到Nucleus PLUS 服务,文件NULCUES.H 必须被包含。??? 4) 编译所有应用程序软件,包括低级系统初始化文件INT.s。??? 5) 用Nucleus PLUS 库和必要的开发工具库连接INT.a 和所有应用程序目标文件。?????? 6) 下载应用程序映像文件到目标系统并运行。??? 2.1.3 初始化??? INT_Initialize 程序在Nucleus PLUS 内核中是最先运行的程序。对大多数的目标环境而言,硬件复位向量必须包含在 INT_Initialize 地址中。INT_Initialize 程序主要负责所有与目标硬件相关的初始化,通常包括设置不同种类处理器的控制寄存器、中断向量表、全局C数据元素、Nucleus PLUS的一些变量以及系统的堆栈指针。当 INT_Initialize 程序执行完成后,控制权交给到Nucleus PLUS上一层初始化程序INC_Initialize,并且控制权不会再返回给 INT_Initialize 程序。 INC_Initialize 调用每一个Nucleus PLUS 组件的初始化程序进行初始化操作,在所有Nucleus PLUS初始化完成之后,它还调用用户提供的初始化程序Application_Initialize。??? Application_Initialize 程序负责定义初始化应用环境,包括初始化应用任务、邮箱、队列、管道、信号量、事件集、内存池和其他Nucleus PLUS 对象。在Application_Initialize 返回后,INC_Initialize程序开始初始化任务调度表。?? 2.2 实现约定??? Accelerated Technology(ATI)使用软件组件方法学。组件具有简单、清晰的优点,一个软件组件往往只包括几个C程序和汇编程序。并且,每一个软件组件都有特定的目的和提供给其他组件的外部接口,使得可以通过外部接口来方便的使用组件。在组件方法中,除了很少的特例外,一般不允许在组件外访问组件的全局数据结构。由于采用了组件方法学,Nucleus PLUS 具有代码清晰、模块化、可靠、可复用和易于维护的特点。?????? 2.2.1 组件的组成??? 一个软件组件通常包含头文件、一个或多个C程序文件,有的还包括汇编程序文件。包含的文件的文件名满足如下的约定: 文件 含义 XX_DEF.H 定义组件的常量和数据类型 XX_ EXTR.H 定义组件的外部接口,以函数原型的形式定义 XXD.C 定义组件的静态和全局变量,除很少的特例外,一个组件的数据结构只能被本组件访问 XXI.C 定义组件的初始化函数 XXF.C 提供被组
文档评论(0)