上海交大ARM培训教材Nucleus介绍_第1页
上海交大ARM培训教材Nucleus介绍_第2页
上海交大ARM培训教材Nucleus介绍_第3页
上海交大ARM培训教材Nucleus介绍_第4页
上海交大ARM培训教材Nucleus介绍_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、内容提要 概述 Nucleus PLUS介绍 Nucleus开发环境Nucleus嵌入式实时多任务操作系统产品概况 美国ATI(Accelerated Technology Inc.)公司出品 提供完全源代码,无产品版税(Royalties Free) 模块化结构,可随意裁剪 支持几乎所有的嵌入式微处理器 开发应用非常方便:无BSP开发可移植性强 目前在源码RTOS市场占据第一位ATI公司简介 成长历程1990 发布Nucleus RTX for AMD29k1993 第一家商用 RTOS for ARM61997 -第一家商用 RTOS for PPC6011998 位列全球增长最快的500

2、家企业之中1999 - 2000 w Motorola 黄金搭档 1999, 2000w 软件, 位列500 强1999, 2000w 财富, 位列最快500强 1999, 2000w Nucleus EDE, 嵌入式产品10佳, 电子工业年报, 1999 Accelerated Technology, Inc.成立于 1990年平均增长率: 70% 加入著名的Mentor Graphics公司ATI公司简介 ATI的使命Provide embedded software developers the widest choice of affordable products with sour

3、ce code.+ 无产品版税无产品版税+ 强而大的公司强而大的公司+ 全方位的产品线全方位的产品线+ 低价格低价格+ 源代码源代码+ 强大的技术支持强大的技术支持Nucleus 产品线一览产品线一览系统内核(Kernel)文件系统图形软件包(Grafix)开发工具(Develop tools)TCP/IP协议包(Nucleus NET)Nucleus 产品线一览产品线一览 Kernels系统内核(Plus,C+,OSEK)FMMDrivers FloppySCSIIDEPCMCIAATAPCMCIAPlug&play*Drivers 1394/FIREWIRE*SerialPCI#U

4、SB*lRe_entrant DynamicDownload#MemoryMgt.Unit#Kernel Object Access(Nucleus Debug+)C Library(Nucleus CLIB)DriverRAMFileSystemVGALCDKeyboardTouch ScreenMouseBasicServicesDriversGUIGUINucleus 产品线一览产品线一览 Grafix图形软件包图形软件包(Nucleus GRAFIX)Email Client#Nucleus 产品线一览产品线一览 Nucleus Net Net DriversPCMICAEtherne

5、tPPPSLIPEmailPOP3 ClientSMTP(cli/serv)MIME#TCP/IPTCP/IP软件包软件包(Nucleus NET)(Nucleus span)RIP2OSPF#Spanning TreeJava(Nucleus JVi*)SNMPv2TFTP ClientHTTP Client#TFTP ServerFTP ClientFTP serverWeb ServerSNMPv3RMONv2SNMPv1TelnetRMONv1RMONv1 Lite#(Nucleus Webservl)Nucleus开发工具Green HillsDiab-SDSIARParadigmC

6、AD-ULLauterbachEPITaskingARMNucleusMNTEDEUDBMicrosoftDBG+OthersNucleus支持的部分CPUIntel: x86, StrongARM, i960Motorola: 680 x0, 683xx, 68HCxx, PowerPC, ColdFire,M-coreHitachi: H8/300H, H8S, SH1/2/3/4NEC: V8xxNS: CR16A/B, CR32AOther: C167, TriCore, CPP48k, M16C/80 ARM: ARM6/7/9, Atmel, Cirrus logic, Hyund

7、ai, Samsung, TI MIPS: Atlas, IDT, Lexra, LSI, NEC, NKK, QED, Toshiba DSP: AD, TI Nucleus的应用Nucleus导航手机路由GPSPDA医疗控制网络汽车电子智能卡通信设备机顶盒工业自动化 81电讯 234军事/航空 13医疗 42消费电子 92计算机/外设 57汽车 23互联网设备 57网络/数据通信 96实验室设备 42办公设备/自动零售业 7其他 308总数总数1052Nucleus主要嵌入式市场Design Wins January 1998 March 2000Nucleus PLUS提供的服务任务间同

8、步Nucleus Plus任务控制任务间通信存储器管理中断控制定时器/系统时钟I/O设备驱动操作系统在产品开发中的位置 Board Hardware BSP RTOS ApplicationNucleus操作系统的基本功能 任务调度 任务通信 内存管理 中断处理 其他功能设备驱动图形协议其他.系统启动和存储空间分配 Development Basics Start- crt0.s板级初始化- int.s 操作系统初始化 - inc.c应用程序初始化循环调度custom- 如中断向量表(.vectors).code -代码段 .data - 初始化数据段.bss - 未初始化数据段.code.d

9、ata(initialized ).vectors.bss(uninitialized)RTOS的基本概念什么是任务(Task)?A task is a semi-independent programsegment with a dedicated purpose任务是具有特定目的的半独立的程序段任务是Nucleus中最常用的应用程序处理线程任务的属性状态、优先级、时间片、堆栈、程序指针、寄存器什么是任务 优先级 当前的状态 堆栈指针 .任务的属性、信息都存放在任务控制块中(TCB)PriorityStateStack *任务的属性 状态Ready - 就绪,等待执行.Running - 正

10、在执行.Suspended - 挂起,等待特定的事件触发.Finished - 已完成处理.传统单任务的特点: 一个任务完成系统全部操作 单个执行线索(execute thread) 单个堆栈空间传统单任务执行 任务调度执行 A single task/* Main control of program */main() . do_something(); ./* A function to do something */void do_something() .stack多任务模式 任务调度执行 Task 3/* Main control of program */main() do_som

11、ething();/* A function to do something */void do_something()/* Main control of program */main() do_something();/* A function to do something */void do_something()/* Main control of program */main() do_something();/* A function to do something */void do_something()Task 2Task 1Stack 1Stack 2Stack 3 优先

12、级(priority) - 反应任务的重要性 时间片 (time_slice) - 任务一次所占用CPU 的最长时间. 抢占性(preemptive) - 除了被中断抢占外,任务可以无限期的占用CPU。调度控制程序任务调度执行 .最高优先级 (0)最低优先级(255).Task List (255)Task List (0)Task-10Task-20Task-30Task-1255Task-2255Task-3255调度控制程序任务调度执行 基于优先级排列的已创建任务链表 机器状态 -CPU当前状态(由CPU内部寄存器的值表征)w通用寄存器w程序计数器w状态寄存器w其他上下文切换任务调度执行

13、任务之间切换需要保存上下文CPURegister 1Register 2Register 3stackRegister 1Register 2Register 3Register 4Register 5Register 6Register 4Register 5Register 6Register 1Register 2Register 3Register 4Register 5Register 6Register 1Register 2Register 3Register 4Register 5Register 6 无条件挂起中断产生时挂起.保存所有的内部寄存器. 条件挂起由内核调用产生挂起

14、.只保存相关寄存器任务的挂起任务调度执行任务间通信任务间通信 - 在两个或多个任务间传递数据wMailboxes-邮箱 wQueues-队列wPipes-管道通信方式 定长(4个长字) 系统开销小 在两个或多个任务间一次传递一条消息Task YTask X1 MessageMailboxes任务间通信 容纳多条消息 定长或变长 用来传送多条消息 Queue消息长度以长字为单位,Pipe以字节为单位。Task YTask XQueues/Pipes任务间通信任务间同步 任务间同步 - 任务间同步控制wSemaphores-信号量(旗语)wEvents -事件wSignals -信号(软中断)同步

15、方式控制对共享资源的访问二元信号量(0,1)任务间同步Program Execution获取信号量共享资源释放信号量Event 2Event 1Event 0Task 1000事件处理Events任务间同步000000000000000000000000000000001 1 1111当一个任务试图得到事件标志位未置位的事件时,任务将挂起;置位后,任务恢复 由任务触发. 当Task1、Task2发出一个信号,Task P中信号处理程序将立即执行. 信号处理程序相当于一个超级任务.Signals任务间同步Task 2Task PTask 1EPEPsignal_handler 分区- 提供定长的

16、内存分配和释放存储器管理分区与动态 动态 - 提供变长的内存分配和释放T1T3T2100bytes100bytes100bytes100bytes100bytes100bytes100bytes100bytes100bytes100bytes100bytes100bytesT1T2T3200bytes50bytes100bytes200bytes50bytes100bytes 中断是来自设备的一个服务请求(异步). 中断应该在尽可能短的时间内响应. 中断处理须有一些必要的上下文保护Device 1IX一个外部中断打断 一个任务,使自己得到响应interrupt_service_routine(

17、) handle_the_interrupt()中断服务程序开始启动ISRX中断处理中断的基本概念Nucleus软件方案 原型工具(Prototyping Tools) 嵌入式产品(Embedded Products) 开发工具(Development Tools)Nucleus MNTNucleus EDENucleus UDBNucleus MNT 利用Microsoft Developer Studio 在 Windows 95 / NT下 适用于所有产品的原型环境完全的原型环境Nucleus MNTPLUSfor MNTNETfor MNTGRAFIXfor MNTPLUSfor Ta

18、rgetNETfor TargetGRAFIXfor TargetNucleus MNT目的开发者可以使用Windows开发环境设计嵌入式应用程序使用两个不同的Nucleus库其一是针对Windows的(MNT)其二是针对Target的但应用程序是相同的Nucleus 库Nucleus EDE Nucleus嵌入式开发环境 集成已有的工具. 提高效率. 所有产品都可集成在 Nucleus EDE 工程中完全的开发环境Nucleus EDE 与现有工具一起工作. 将工程由原型转换成嵌入式应用. 生成目标环境可执行代码. 主要功能:工程管理浏览现有工具的管理和调用特点MotorolaARMMIPSSHX86ProcessorSupportDevelopmentToolSupportDiab/SDS ARM/UDB GNU/UDBGNU/HitachiUDBCAD-ULNucleus UDB 同一调试环境用于不同的目标平台. 基于Kernel的调试器内核目标资源显示任务相关断点多任务调试混合C/汇编窗口自动追踪完全的调试环境Nucleus UDBMNT, EDE和UDB 与 Nucleus MNT相同的Windows风格 原型用 Nucleus MNT 生成目标代码用 Nucleus EDE 调试目标代码用 N

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论