查看完整版本: Nucleus Plus在嵌入式系统应用

wdefu 2007-3-10 09:41

Nucleus Plus在嵌入式系统应用

[align=left][align=left][b][font=ˎ̥][size=9pt][font=Times New Roman]Nucleus Plus[/font][/size][/font][/b][b][font=宋体][size=9pt]在嵌入式系统应用[/size][/font][/b][b][font=ˎ̥][size=9pt][/size][/font][/b][/align][/align][align=left][align=left][font=Arial][size=9pt]
[color=#000000]Nucleus Plus[/color][/size][/font][color=#000000][font=宋体][size=9pt]是美国源代码操作系统商[/size][/font][font=Arial][size=9pt]ATI[/size][/font][font=宋体][size=9pt]公司推出的新一代嵌入式操作系统,属于抢先式实时多任务操[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]作系统内核,[/size][/font][font=Arial][size=9pt] 95%[/size][/font][font=宋体][size=9pt]的代码使用[/size][/font][font=Arial][size=9pt]ANSI C[/size][/font][font=宋体][size=9pt]编写,非常便于移植于各种处理器家族。从实现的角度讲,不同于传[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]统嵌入式开发,[/size][/font][font=Arial][size=9pt]Nucleus Plus[/size][/font][font=宋体][size=9pt]是以函数库的形式链接到目标应用程序中,形成可执行目标代码,下载到目[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]标板上或烧到[/size][/font][font=Arial][size=9pt]ROM/FLASH ROM [/size][/font][font=宋体][size=9pt]中去执行。[/size][/font][font=Arial][size=9pt]Nucleus Plus[/size][/font][font=宋体][size=9pt]内核在典型的[/size][/font][font=Arial][size=9pt]CISC[/size][/font][font=宋体][size=9pt]体系结构上占据大约[/size][/font][font=Arial][size=9pt]20k[/size][/font][font=宋体][size=9pt]空间,[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]而在典型的[/size][/font][font=Arial][size=9pt]RISC[/size][/font][font=宋体][size=9pt]体系结构上占据空间为[/size][/font][font=Arial][size=9pt]40k[/size][/font][font=宋体][size=9pt]左右,其内核数据结构占据[/size][/font][font=Arial][size=9pt]1.5k[/size][/font][font=宋体][size=9pt]字节的空间。[/size][/font][font=Arial][size=9pt]Nucleus Plus[/size][/font][font=宋体][size=9pt]以[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]其实时响应、抢先、多任务以及源代码开放特性获得在通讯、国防、工业控制、航空[/size][/font][font=Arial][size=9pt]/[/size][/font][font=宋体][size=9pt]航天、铁路、网络[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]、[/size][/font][font=Arial][size=9pt]POS[/size][/font][font=宋体][size=9pt]、自动化控制、智能家电等领域的广泛应用。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]Nucleus Plus[/size][/font][font=宋体][size=9pt]内核技术[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]    ATI[/size][/font][font=宋体][size=9pt]公司使用一种叫做软件组件的方法。所谓软件组件,就是具有明确目的或用途的由[/size][/font][font=Arial][size=9pt]1[/size][/font][font=宋体][size=9pt]个或数个[/size][/font][font=Arial][size=9pt]C[/size][/font][font=宋体][size=9pt]语[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]言[/size][/font][font=Arial][size=9pt]/[/size][/font][font=宋体][size=9pt]汇编源文件的一段非独立执行应用程序,且每个组件都提供一个定义好的外部接口,必须通过外部接[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]口来使用组件。访问组件内的全局数据结构是被禁止的。使用了组件方法,[/size][/font][font=宋体][size=9pt]软件组件既易于更新也易于[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]重用。[/size][/font][font=Arial][size=9pt]Nucleus Plus[/size][/font][font=宋体][size=9pt]软件组件通常由定义数据类型、常量以及外部接口的[/size][/font][font=Arial][size=9pt]INCLUDE [/size][/font][font=宋体][size=9pt]头文件和一个或多个[/size][/font][font=Arial][size=9pt]C[/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]语言[/size][/font][font=Arial][size=9pt]/[/size][/font][font=宋体][size=9pt]汇编源文件组成。[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]提供如下组件:任务控制管理、内存管理、[/size][/font][font=宋体][size=9pt]定时器管理、中断、[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]系统诊断、[/size][/font][font=Arial][size=9pt]I/O[/size][/font][font=宋体][size=9pt]驱动管理等共[/size][/font][font=Arial][size=9pt]16[/size][/font][font=宋体][size=9pt]个组件如下,[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]Nucleus Plus Kernel[/size][/font][font=宋体][size=9pt]:[/size][/font][font=Arial][size=9pt]    Common Service Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]CS[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       Initialization Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]IN[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       Tread Control Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]TC[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       Timer Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]TI[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       Mailbox Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]MB[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       Pipe Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]PI[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       Semaphore Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]SM[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       Event Flag Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]EV[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       Partition Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]PM[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       Queue Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]QM[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       Dynamic Memory Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]DM[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       I/O Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]I/O[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       History Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]HI[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       Error Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]ER[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       License Component [/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]LI[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                       Release Component[/size][/font][font=宋体][size=9pt]([/size][/font][font=Arial][size=9pt]RL[/size][/font][font=宋体][size=9pt])[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt] [/size][/font][font=宋体][size=9pt]其中:[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* IN[/size][/font][font=宋体][size=9pt]:负责初始化[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]系统[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* TC[/size][/font][font=宋体][size=9pt]:负责管理[/size][/font][font=Arial][size=9pt]Nucleus Plus[/size][/font][font=宋体][size=9pt]的抢占式实时[/size][/font][font=宋体][size=9pt]任务和[/size][/font][font=Arial][size=9pt]HISR[/size][/font][font=宋体][size=9pt]的运行[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* CS[/size][/font][font=宋体][size=9pt]:负责提供具有链接列表其它的设备[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]组件[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* TM[/size][/font][font=宋体][size=9pt]:负责管理所有的[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]定时器设备。[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]的基本定时单元为一个[/size][/font][font=Arial][size=9pt]Tick[/size][/font][font=宋体][size=9pt],它相当于[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]一次硬件定时器中断[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* MB[/size][/font][font=宋体][size=9pt]:负责管理所有的[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]信箱设备[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* QM[/size][/font][font=宋体][size=9pt]:负责管理所有的[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]队列设备[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* PI [/size][/font][font=宋体][size=9pt]:负责管理所有的[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]管道设备[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* SM[/size][/font][font=宋体][size=9pt]:负责管理所有的[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]信号量设备[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* EV[/size][/font][font=宋体][size=9pt]:负责管理所有的[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]事件组设备[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* PM[/size][/font][font=宋体][size=9pt]:负责管理所有的[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]分区内存[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* DM[/size][/font][font=宋体][size=9pt]:负责管理所有的[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]动态内存[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* I/O[/size][/font][font=宋体][size=9pt]:负责管理所有的[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]输入[/size][/font][font=Arial][size=9pt]/[/size][/font][font=宋体][size=9pt]输出[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* HI[/size][/font][font=宋体][size=9pt]:负责[/size][/font][font=Arial][size=9pt]Nucleus Plus[/size][/font][font=宋体][size=9pt]的历史设备管理[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* ER[/size][/font][font=宋体][size=9pt]:负责管理所有的[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]系统错误[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* LI[/size][/font][font=宋体][size=9pt]:负责[/size][/font][font=Arial][size=9pt]Nucleus Plus[/size][/font][font=宋体][size=9pt]的许可证管理[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* RL[/size][/font][font=宋体][size=9pt]:负责[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]的版本管理[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]其它功能模块[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]    Nucleus Plus [/size][/font][font=宋体][size=9pt]除了其功能强大的内核外,还提供了面向[/size][/font][font=Arial][size=9pt]INTERNET[/size][/font][font=宋体][size=9pt]、[/size][/font][font=Arial][size=9pt]TCP/IP[/size][/font][font=宋体][size=9pt]、[/size][/font][font=Arial][size=9pt]WEB[/size][/font][font=宋体][size=9pt]浏览器、图形以及文[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]件系统的软件包,参阅图[/size][/font][font=Arial][size=9pt]1[/size][/font][font=宋体][size=9pt]。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt] [/size][/font][font=宋体][size=9pt]图[/size][/font][font=Arial][size=9pt]1: Nucleus Plus[/size][/font][font=宋体][size=9pt]功能模块图[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]开发[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]1[/size][/font][font=宋体][size=9pt],[/size][/font][font=Arial][size=9pt] Nucleus Plus [/size][/font][font=宋体][size=9pt]定制[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]    Nucleus Plus [/size][/font][font=宋体][size=9pt]也能根据目标板的需要进行裁剪和定制,生成适合目标系统的操作系统,尽量少占系[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]统内存。[/size][/font][font=Arial][size=9pt]OS[/size][/font][font=宋体][size=9pt]定制完成后,将其链接到目标应用程序,成为目标应用程序的一部分。在典型的[/size][/font][font=Arial][size=9pt]CISC[/size][/font][font=宋体][size=9pt]体系结构[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]的目标板上,它占用约[/size][/font][font=Arial][size=9pt]20K [/size][/font][font=宋体][size=9pt]左右的空间,而在[/size][/font][font=Arial][size=9pt]RISC[/size][/font][font=宋体][size=9pt]体系结构的目标板上占用约[/size][/font][font=Arial][size=9pt]40K[/size][/font][font=宋体][size=9pt]左右的空间。一般地,[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]足以满足绝大多数的嵌入式应用。[/size][/font][font=Arial][size=9pt]ATI[/size][/font][font=宋体][size=9pt]公司提供了一个名为[/size][/font][font=Arial][size=9pt]BUILD_LI[/size][/font][font=宋体][size=9pt].[/size][/font][font=Arial][size=9pt]BAT[/size][/font][font=宋体][size=9pt]或[/size][/font][font=Arial][size=9pt]PLUS[/size][/font][font=宋体][size=9pt].[/size][/font][font=Arial][size=9pt]BAT[/size][/font][font=宋体][size=9pt]的批[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]处理文件,用户可以删剪其中的模块,更改相关的选项或开关,执行该文件生成与目标相关的操作系统,[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]也就是根据系统需要生成定制的操作系统。需要注意的是,该批处理文件的内容与开发工具有关。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt] 2[/size][/font][font=宋体][size=9pt],开发方案[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]    Nucleus Plus[/size][/font][font=宋体][size=9pt]可以结合[/size][/font][font=Arial][size=9pt]Paradigm[/size][/font][font=宋体][size=9pt]、[/size][/font][font=Arial][size=9pt]SDS[/size][/font][font=宋体][size=9pt]以及[/size][/font][font=Arial][size=9pt]ATI[/size][/font][font=宋体][size=9pt]的多任务调试器组成功能强大的集成开发环境,配合相[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]应的编译器([/size][/font][font=Arial][size=9pt]Borland c/c++ [/size][/font][font=宋体][size=9pt]编译器、[/size][/font][font=Arial][size=9pt]Turbo c/c++ [/size][/font][font=宋体][size=9pt]编译器或者[/size][/font][font=Arial][size=9pt]Microsoft c/c++[/size][/font][font=宋体][size=9pt]编译器)和动态链接库[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]以及各类底层驱动软件就可以满足嵌入式应用的开发。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]3[/size][/font][font=宋体][size=9pt],开发流程[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]用[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]开发嵌入式应用程序,一般遵循如下步骤:[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]如果有必要,应对低级系统初始化文件.[/size][/font][font=Arial][size=9pt]INT[/size][/font][font=宋体][size=9pt]进行修改,使之符合目标板的需要。如中断向量、[/size][/font][font=Arial][size=9pt]I/O[/size][/font][font=宋体][size=9pt]地址[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]、时钟频率等。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]定义[/size][/font][font=Arial][size=9pt]Application _Initialize[/size][/font][font=宋体][size=9pt]()函数。该函数在启动系统之前先执行。注意的是要把[/size][/font][font=Arial][size=9pt]NUCLEUS[/size][/font][font=宋体][size=9pt].[/size][/font][font=Arial][size=9pt]H[/size][/font][font=宋体][size=9pt]头[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]文件包括在目标应用程序中,以便利用[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]的服务。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]定义应用程序的任务。如果调用[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]的服务,要把[/size][/font][font=Arial][size=9pt]NUCLEUS[/size][/font][font=宋体][size=9pt].[/size][/font][font=Arial][size=9pt]H[/size][/font][font=宋体][size=9pt]包含进去。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]编译[/size][/font][font=Arial][size=9pt]/[/size][/font][font=宋体][size=9pt]汇编所有的应用程序软件,并且包含系统低级初始化文件.[/size][/font][font=Arial][size=9pt]INT[/size][/font][font=宋体][size=9pt]。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]链接.[/size][/font][font=Arial][size=9pt]INT[/size][/font][font=宋体][size=9pt]和所有的应用程序目标文件、[/size][/font][font=Arial][size=9pt]Nucleus Plus[/size][/font][font=宋体][size=9pt]库文件以及相关的开发工具库。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]把生成的最终目标代码下载或烧到目标板上执行。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]4[/size][/font][font=宋体][size=9pt],[/size][/font][font=Arial][size=9pt] Nucleus Plus [/size][/font][font=宋体][size=9pt]初始化[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]    Nucleus Plus [/size][/font][font=宋体][size=9pt]分三个层次的初始化,即:系统低级初始化[/size][/font][font=Arial][size=9pt]Int-Initialize[/size][/font][font=宋体][size=9pt]()、系统高级初始化[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]Inc-Initialize[/size][/font][font=宋体][size=9pt]()和应用程序初始化[/size][/font][font=Arial][size=9pt]Application_Initialize[/size][/font][font=宋体][size=9pt](),初始化之后便进入[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]的任务调度循环。各个初始化函数任务见表[/size][/font][font=Arial][size=9pt]1[/size][/font][font=宋体][size=9pt]。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]Int_Initialize[/size][/font][font=宋体][size=9pt]()[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]Inc_Initialize[/size][/font][font=宋体][size=9pt]()[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]Application_Initialize[/size][/font][font=宋体][size=9pt]()[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]设置必要的处理器[/size][/font][font=Arial][size=9pt]/[/size][/font][font=宋体][size=9pt]系统控制寄存器[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]初始化中断向量表[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]设置系统堆栈寄存器[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]计算定时器[/size][/font][font=Arial][size=9pt]HISR[/size][/font][font=宋体][size=9pt]堆栈和优先级[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]计算系统第一个可用内存[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]将控制交给系统高级初始化例程[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]初始化[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]组件[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]将控制交给应用程序初始化例程[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]任务调度[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]执行用户定义的初始化,如创建内存池,创建任务、创建信号量、创建队列等[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]               [/size][/font][font=宋体][size=9pt]表[/size][/font][font=Arial][size=9pt]1[/size][/font][font=宋体][size=9pt]:[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]初始化表[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt] 5[/size][/font][font=宋体][size=9pt],[/size][/font][font=Arial][size=9pt] Nucleus MNT[/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]    Nucleus MNT[/size][/font][font=宋体][size=9pt]是为软件开发者设计的,在[/size][/font][font=Arial][size=9pt]WIN95/NT[/size][/font][font=宋体][size=9pt]下构筑[/size][/font][font=Arial][size=9pt]Nucleus Plus[/size][/font][font=宋体][size=9pt]嵌入式应用的原型([/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]Prototyping[/size][/font][font=宋体][size=9pt])环境。它通过两个库来实现,即针对目标环境的库和针对[/size][/font][font=Arial][size=9pt]Win95/NT[/size][/font][font=宋体][size=9pt]开发环境的库。开发时[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt],应用程序代码可以不变,仅仅替换掉[/size][/font][font=Arial][size=9pt]MNT[/size][/font][font=宋体][size=9pt]库,使用交叉开发工具包重构目标环境下的可执行目标代码,[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]请看图[/size][/font][font=Arial][size=9pt]2[/size][/font][font=宋体][size=9pt]。[/size][/font][font=Arial][size=9pt] [/size][/font][/color][/align][/align][align=left][align=left][font=Arial][size=9pt][color=#000000]     PROTOTYPING                         TARGET[/color][/size][/font][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]                    [/size][/font][font=宋体][size=9pt]图[/size][/font][font=Arial][size=9pt]2[/size][/font][font=宋体][size=9pt]:[/size][/font][font=Arial][size=9pt]Nucleus MNT[/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt] 6[/size][/font][font=宋体][size=9pt],[/size][/font][font=宋体][size=9pt]开发注意事项[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]    [/size][/font][font=宋体][size=9pt]嵌入式开发在内存需求、任务管理等方面存在着特殊性,因此,开发中对以下方面要额外加以注意,[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]任务饥荒[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]任务优先级的分配要合理,否则会导致系统中的一些任务一直不断地在运行而另一些任务永远得不到运行[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt],引起饥荒。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]死锁[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]系统资源的分配要合理,否则会引起两个或多个任务为竞争某一系统资源而处于无限挂起现象。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]内存[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]内存泄露[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]内存分配过程中要尽量避免碎片并且要注意及时回收。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]内存节约[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]默认情况下,[/size][/font][font=Arial][size=9pt]Nucleus Plus[/size][/font][font=宋体][size=9pt],[/size][/font][font=宋体][size=9pt]在高级初始化函数[/size][/font][font=Arial][size=9pt]Inc_Initialize[/size][/font][font=宋体][size=9pt]()中。调用其它函数初始化它所提[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]供的所有特征的数据结构中,有些特征用户目标应用程序可能用不到,为此,要去掉不必要的函数调用。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]改变[/size][/font][font=Arial][size=9pt]Nucleus[/size][/font][font=宋体][size=9pt].[/size][/font][font=Arial][size=9pt]H[/size][/font][font=宋体][size=9pt]中[/size][/font][font=Arial][size=9pt]NU_MAX_LISRS[/size][/font][font=宋体][size=9pt]的大小,它定义的是目标处理器的最大中断向量数。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]改变[/size][/font][font=Arial][size=9pt]TC_DEFS[/size][/font][font=宋体][size=9pt].[/size][/font][font=Arial][size=9pt]H[/size][/font][font=宋体][size=9pt]中[/size][/font][font=Arial][size=9pt]TC_PRIORITIES[/size][/font][font=宋体][size=9pt]的大小。它定义了任务的优先级数。[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]能支持[/size][/font][font=Arial][size=9pt]256[/size][/font][font=宋体][size=9pt]个优先[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]级。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* HISR[/size][/font][font=宋体][size=9pt]栈共享。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* TCD[/size][/font][font=宋体][size=9pt].[/size][/font][font=Arial][size=9pt]C[/size][/font][font=宋体][size=9pt]中禁止查询表[/size][/font][font=Arial][size=9pt]TCD_LOWEST_SET_BIT[/size][/font][font=宋体][size=9pt]的[/size][/font][font=Arial][size=9pt]RAM[/size][/font][font=宋体][size=9pt]拷贝。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]* [/size][/font][font=宋体][size=9pt]使用一个更小的[/size][/font][font=Arial][size=9pt]INT[/size][/font][font=宋体][size=9pt]选项。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]结束语[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=Arial][size=9pt]    [/size][/font][font=宋体][size=9pt]由于[/size][/font][font=Arial][size=9pt]Nucleus Plus [/size][/font][font=宋体][size=9pt]的模块化、可靠、重用、开放、易用以及安全等特性使得它成为嵌入式应用开发[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][align=left][align=left][color=#000000][font=宋体][size=9pt]的理想平台,尤其是关系到国计民生的领域,如航空[/size][/font][font=Arial][size=9pt]/[/size][/font][font=宋体][size=9pt]航天、军队、国防等方面。[/size][/font][font=Arial][size=9pt][/size][/font][/color][/align][/align][font=Times New Roman][size=3][color=#000000] [/color][/size][/font]
页: [1]
查看完整版本: Nucleus Plus在嵌入式系统应用