第8篇 软件设计.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 软件设计 0. 目录 ASIX OS系统介绍 ASIX Windows简介 ASIX OS代码分析 1. ASIX OS系统介绍-目录 ASIX平台 ASIX OS的设计 ASIX OS内核调度 ASIX OS通讯机制 中断管理 任务的建立和管理 低功耗管理机制 ASIX平台 ASIX OS的设计: ASIX OS 是ASIC 工程中心自主的嵌入式实时操作系统平台。 Kernel兼容μItron标准 提供了图形用户界面和编程环境 提供模拟器以模拟硬件开发环境,加速应用软件的设计和开发(VC++) ASIX平台 ASIX OS模块层次划分: ASIX OS的设计 ASIX OS的平台: 内核(ASIX Kernel) 时钟服务任务(Timer Task)和系统服务任务(Sys Task) 基本图形库(ASIX GPC)和图形用户界面(ASIX Windows) 文件系统(FAT,ASIX FS)和数据库(Berkeley DB,ASIX DB) 网络通信协议(ASIX Network,TCP/IP) OS 模拟器(ASIX Simulator) ASIX OS的设计 基于uITRON3.0标准 允许同时最多有255个任务运行 采用了静态优先级的调度策略 基于优先级的抢占式多任务(8个优先级)。优先级可以从1到9(数值越低,优先级越高) ASIX OS的设计 提供大量的通讯和同步机制: 信号量 事件标志 邮箱 消息缓冲区 C代码内核,硬件汇编部分用宏表示 ASIX OS的设计 Asix OS分为两大块,任务管理和非任务管理 : 任务管理 : 任务调度 任务间通信与同步机制 非任务管理: 中断 软定时器 ASIX OS的设计 ASIX OS的设计 ASIX OS内核调度 内核调度:任务切换的方式 维护的三个任务队列,以供任务切换: 就绪任务队列g_sReadyQueue 一个延迟任务队列g_sTimeOutTsk 等待队列 ASIX OS内核调度 就绪任务队列: Asix OS中任务的优先级有9个,从1到9。系统定义了一个全局数组,共有9个单元,分别代表对应的优先级。每个优先级都维护着一个就绪队列 ASIX OS内核调度 Asix OS的调度策略: 从最高优先级对应的就绪队列开始找起,如果该队列不为空,则取它的首部任务作为下一个将要运行的任务。如果队列为空,则寻找低一级优先级的队列,如此循环操作 ASIX OS内核调度 Asix OS的调度机制有如下特点: 它是静态优先级调度。(但提供了系统调用来修改任务优先级)。没有运行时间的概念。所以,低优先级的任务只有当高优先级的任务主动放弃CPU,它才可能运行。 同等优先级的任务不能够轮转。(但提供了系统调用来将当前任务放到队列的末尾)。 ASIX OS内核调度 延迟任务队列: Asix OS中维护了一个延迟任务队列,用来维护那些为了等待某操作而主动或者被动将自己挂起的任务。等到时间一过,系统就会将该任务转移到就绪队列中去。具体将在时钟管理中阐述 ASIX OS内核调度 等待队列: 多个等待队列 等待队列是因为取不到相应的信息或者内容,而暂时把自己挂起,以等待所要的信息或者内容的来临 ASIX OS内核调度 任务调度有两种情况: 系统调用函数调用int_dispatch() 中断处理函数返回时调用ret_int() 两者不同之处在于构造的调度栈不同 调度栈指的是在任务调度前用于保存环境的栈帧 ASIX OS内核调度 ASIX OS通讯机制 ASIX OS提供了五中通讯机制: 信号量(Semaphore) 事件标识(Event Flag) 邮箱(MailBox) 消息缓冲区(Message Buffer) 内存池(Memory Pool) ASIX OS通讯机制 信号量(Semaphore) 信号量结构中,有两个值,ubSmphMax表示引用该信号量的最多任务数;ubSmphCnt表示当前的剩余引用数(即还有多少任务可以使用该信号量) ASIX OS通讯机制 信号量(Semaphore) ASIX OS通讯机制 信号量(Semaphore)的操作: twai_sem 取走信号量: 如果仍可引用,则ubSmphCnt--; 如果引用已满(即ubSmphCnt==0),则将当前任务置为TTS_WAI,等待标志为TTW_SEM。将当前任务加入该信号量对应的等待任务队列中去。 ASIX OS通讯机制 信号量(Semaphore)的操作: sig_sem 放回信号量: 如果没有任务在等待该信号量,则将ubSmphCnt++; 如果有等待的任务, 首先取消它的等待状态,然后将它从g_sTimeOutTsk队列中删除,并添加到就绪任务队列中去。调用系

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档