收藏 分享(赏)

UG NX 8.0数控加工基础教程ppt课件.ppt

上传人:顺达 文档编号:3270154 上传时间:2020-12-19 格式:PPT 页数:48 大小:680.50KB
下载 相关 举报
UG NX 8.0数控加工基础教程ppt课件.ppt_第1页
第1页 / 共48页
UG NX 8.0数控加工基础教程ppt课件.ppt_第2页
第2页 / 共48页
UG NX 8.0数控加工基础教程ppt课件.ppt_第3页
第3页 / 共48页
UG NX 8.0数控加工基础教程ppt课件.ppt_第4页
第4页 / 共48页
UG NX 8.0数控加工基础教程ppt课件.ppt_第5页
第5页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、战略层:网站目标和用户需求 范围层:网站目标和用户需求 结构层:交互设计与信息构架 框架层:界面的设计、导航设计和信息设计 表现层:视觉设计 要素的应用 18 范围层 战略层 当你把用户需求和网站目标 转变成网站应该提供给用户什么 样的内容和功能时,战略就变成 了范围。 结构层 框架层 表现层 功能规格和内容需求 范围层的定义 功能和内容 收集初秋 功能规格 内容需求 确定需求优先级 19 范围层的定义 一个有价值的过程导致一个有价值的产品。 过程:确定现在能解决的事情,以及哪些事情迟些才能解决; 产品:给团队一个参考点,保证在开发过程中不会出现模棱两可的情况; 工作流程、日程安排、里程碑可视

2、性文档; 理由1:这样你才知道正在建设什么 理由2:这样你才知道不需要建设什么 一月(现在) 四月 七月 十月 (明年)一月 版本1.0 - - - - - - - - 版本1.1 - - - - - - - - 当前难以满足的需求,可以成为启动下一版本的基础,这样就能形成一个不断循环的开发过程。 20 u 软件式网站:哪些应该被成为软件产品的“组成部分”功能规格; 项目初期阶段需求:描述系统应该做什么 项目末期阶段需求:描述系统真正完成了什么 u 文本式网站:编辑和营销推广确定内容范围内容管理系统; 内容管理系统必备的功能取决于你要管理的内容的性质; 功能需求常常伴随着内容需求; 功能和内容

3、 收集需求 u人们讲述的、他们想要的东西 u用户实际想要的东西 u人们不知道他们是否需要的特性潜在需求 作者 内容编辑文字编辑 管理层律师 用户 21 功能规格 u 存在问题 阅读起来枯燥,占用大量编码时间,没有人读; 实施过程中事情会发生变化维护功能规格、及时更新【重要】 u 撰写规则 乐观:描写这个系统件要做什么去“防止”不好的事情发生,而不是描述“不应该” 具体:尽可能详细描述清楚状况 避免主观的语气:保持明确、避免歧义 内容需求(内容清单) u 确定文本的字数、图片的像素、下载文件的字节等基本元素; u 确认某个人来负责某一个内容元素; u 日常维护工作; u 每一内容元素的更新频率;

4、 u 如何呈现它们; 22 确定需求优先级 u 排列出那些功能应该包含到项目中去; u 实现这些需求的可行性有多大? 技术局限复发实现 需要太多资源,人力物力超出了我们所有的范围 时间局限 u 网站的内容特性需要其他特性的支持,导致特性的冲突; u 优先级别是决定人们所建议的相关特性的首要因素; u 与管理层谈判 与管理层确定战略而不是实现这个目标的各种手段; 技术人员的沟通技巧 有时一个战略目标将产生多个需求。另一 方面,一个需求也可以实现多个战略目标。 23 总目录 用户体验为何如此重要 认识这些要素 战略层:网站目标和用户需求 范围层:网站目标和用户需求 结构层:交互设计与信息构架 框架

5、层:界面的设计、导航设计和信息设计 表现层:视觉设计 要素的应用 24 战略层 在收集完用户需求并将其 排列好优先级后,需求并没有说 明如何将这些分散的片段组成一 个整体,这就是结构层:为网站 创建一个概念结构。 范围层 结构层 框架层 表现层 交互设计与信息构架 结构层的定义 交互设计 信息构架 团队角色和流程 25 结构层的定义 交互设计:作为软件界面的网页,为用户设计结构化体验 信息架构:作为超文本的网页,内容建设通过信息架构构建用户体验 它们关心的是理解用户、用户的工作方式和思考方式 确定各个将要呈现给用户的选项的模式和顺序。 交互设计 u 交互设计关注与描述“可能的用户行为”,同时定

6、义“系统如何配合与响应”; u 用户与软件的和平相处。 概念模型 u “交互组件将怎样工作”概念模型 例如,这是内容元素还是用户访问的位置还是用户请求的对象? 以购物车为例,使用用户熟悉的概念模型能使用户很快适应不熟悉的网站。 错误处理 当人们犯错误的时候,系统如何反应?如何防止用户继续犯错? 方式一:将系统设置为不可能犯错的那种。 方式二:是错误难以发生,系统帮助用户找出错误并修正它们。 当用户完成动作后才发现做错了,系统应该为用户提供从错误中恢复的方式。【重做】 当无法恢复时,提供大量警告。 26 信息架构 u 信息架构着重于设计组织分类和导航的结构,从而让用户高效率、有效地浏览网页内容;

7、 u 信息架构的分类体系 内容 分类 内容 分类 从上而下的架构方法 “网站目标和用户需求的理解” 从下而上的架构方法 内容和弄能需求的分析 一个适应性强的信息架构系统,能把新内容作为现有结构的一部分容纳 进来(左图),也可以把新内容当成一个完整的新部分加入(右图) 27 结构方法 u 信息架构的基本单位是节点。 u节点对应任意的信息片段或组合,节点的安排方式: 在层级结构(树状结构、中心辐射结构),节点与其他相关节点之间存在父级/子级关系; 在矩阵结构中,允许用户在节点与节点之间沿着两个或更多的“唯度”移动; 在自然结构中,不遵循任何一致的模式,节点被逐一连接,用于关系不明确或演变中的主题;

8、 在线性结构中,最基本的信息结构类型,逐一而连贯; 组织原则 u 我们决定哪些节点要编成一组,哪些节点要保持独立的标准即组织原则。 u 应创建一个与“网站目标”和“用户需求”相对应的、正确的结构。 u 截面:内容不同的属性,使用错误的截面比没有使用截面更糟糕。 语言和元数据 u 命名原则:描述、标签和网站使用的其他术语。 u 控制性词典:保证网站“使用用户的语言”并“保持一致性”。 u 元数据:关于信息的信息,即以一种结构化的方式来描述内容。 28 团队角色和流程 u 架构图描述网站结构的工具术语; u 架构图的主要内容:哪些类别要放在一起?哪些保持独立?交互过程中那些步骤如何相互配合? u

9、视觉辞典 u“谁负责这件事情”,通常取决于企业文化或项目本质。 首页 媒体信息产品 新闻 家用产品 办公室产品 在线支持 文档 首页 入口页 登录流程最新消息 2a 2C 技术报告 前往 用户列表 视觉辞典是一个提供重非常简单(如左图),到非常复杂(如右图)的示意结构系统。 29 总目录 用户体验为何如此重要 认识这些要素 战略层:网站目标和用户需求 范围层:网站目标和用户需求 结构层:交互设计与信息构架 框架层:界面的设计、导航设计和信息设计 表现层:视觉设计 要素的应用 30 框架层 战略层 在充满概念的结构层中形 成了大量的需求,框架层中,我 们要更进一步地提炼这些结构, 确定详细的界面

10、外观、导航和信 息设计,使晦涩的结构变得实 在。 范围层 结构层 表现层 界面设计、导航设计和信息设计 框架层的定义 习惯和比喻 界面设计 导航设计 信息设计 线框图 31 框架层的定义 界面设计:确定框架,“按钮、输入框、界面控件”的领域; 导航设计:呈现信息; 信息设计:呈现有效地信息沟通。 确定用什么样的公恩形式来实现。 习惯和比喻 u 如果我们减少很多反射作用,每天能完成的事情会大大减少。 u 避免比喻,就是要减少对用户在“理解和使用网上功能”时对心理的要求。 界面设计 u 成功的界面设计是那些能让用户一眼就看到“最重要的东西”的界面设计。 u 一个设计良好的界面是要组织好用户最常采用

11、的行为,同时让这些界面元素用最容易 的方式获取和使用。(把用户最可能用到的按钮设计成最大的一个) 技巧一:在界面第一次呈现给用户的时候,仔细考虑每一个选项的默认值; 技巧二:自动记住用户最后一次选择状态的系统。 u 为用户想完成的任务选择正确的界面元素,通过一种能迅速理解和易于使用的方式, 把他们放置到页面上去; u 错误信息以及说明信息的设计如何让用户真正去阅读这些文字? 32 导航设计 目标一:必须提供给用户一种在网站间跳转的方法。(真实有效的链接) 目标二:必须传达出这些元素和它们所包含内容之间的关系。 这些链接之间有什么关系? 是否其中一些比别的更重要? 它们之间的差异在哪里? 目标三

12、:必须传达出它的内容和用户当前浏览页面之间的关系。 任何一个网站的导航设计都必须完成以下3个目标! 哪些链接对用户是有效的? 几种常见的导航系统: 全局导航:覆盖整个网站的通路。 局部导航:提供给用户在这个架构中道“附件地点”的通路。 辅助导航:提供全局和局部导航不能快速到达的相关内容的快捷途径。 上下文导航C/OS-II中 的任务管理 1 任务的状态及其转换 正在运行的任务,需要 等待一段时间或需要等 待一个事件发生再运行 时,该任务就会把CPU 的使用权让给别的任务 而使任务进入等待状态 。 任务在没有被配备 任务控制块或被剥 夺了任务控制块时 的状态叫做任务的 睡眠状态 系统为任务配备

13、了任务控制块且 在任务就绪表中 进行了就绪登记 ,这时任务的状 态叫做就绪状态 。 处于就绪状态的 任务如果经调度 器判断获得了 CPU的使用权, 则任务就进入运 行状态 一个正在运行的 任务一旦响应中 断申请就会中止 运行而去执行中 断服务程序,这 时任务的状态叫 做中断服务状态 2 前面谈到,一个任务的任务控制块 的主要作用就是保存该任务的虚拟 处理器的堆栈指针寄存器SP。 其实,随着任务管理工作的复杂性 的提高,它还应该保存一些其他信 息。 任务控制块任务在系统中的身份证 由于系统存在着多个任务,于是 系统如何来识别并管理一个任务就是 一个需要解决的问题。识别一个任务 的最直接的办法是为

14、每一个任务起一 个名称。 由于C/OS-II中的任务都有一个 惟一的优先级别,因此C/OS-II是用 任务的优先级来作为任务的标识的。 所以,任务控制块还要来保存该 任务的优先级别。 另外,前面也谈到,一个任务在 不同的时刻还处于不同的状态, 显然,记录了任务状态的数据也 应该保存到任务控制块中。 基于上述原因,系统必须为每个任务创建 一个保存与该任务有关的相关信息的数据 结构,这个数据结构就叫做该任务的任务 控制块(TCB)。 任务控制块结构的主要成员 typedef struct os_tcb OS_STK *OSTCBStkPtr; /指向任务堆栈栈顶的指针 INT8U OSTCBSta

15、t;/任务的当前状态标志 INT8U OSTCBPrio; /任务的优先级别 OS_TCB; 任务控制块是不是像 我们人在一个国家中 的身份证?(其实, 系统中的所有资源 都应该有身份证。) 3 任务在内存中的结构 4 用户任务代码的 一般结构 void MyTask(void *pdata) for (;) 可以被中断的用户代码; OS_ENTER_CRITICAL( );/进入临界段(关中断) 不可以被中断的用户代码; OS_EXIT_CRITICAL( ); /退出临界段(开中断) 可以被中断的用户代码; 临界段 无限循 环 于是可以这样说,C/OS-II 任务的代码结构是一个可以 带有

16、临界段的无限循环。 5 系统提供的空闲任务 在多任务系统运行时,系统经 常会在某个时间内无用户任务 可运行而处于所谓的空闲状态 ,为了使CPU在没有用户任务可 执行的时候有事可做,C/OS- II提供了一个叫做空闲任务 OSTaskIdle( )的系统任务 void OSTaskIdle(void* pdata) # if OS_CRITICAL_METHOD = = 3 OS_CPU_SR cpu_sr; #endif pdata = pdata;/防止某些编译器报错 for(;) OS_ENTER_CRITICAL( );/关闭中断 OSdleCtr+;/计数 OS_EXIT_CRITIC

17、AL( );/开放中断 空闲任务只是做了一 个计数工作注意!空闲任务中没 有调用任务延时函数 C/OS-II规定,一个 用户应用程序必须 使用这个空闲任务 ,而且这个任务是 不能用软件来删除 的 6 系统提供的另一个任务 统计任务 C/OS-II提供的另一个系统任务是统 计任务OSTaskStat( )。这个统计任务 每秒计算一次CPU在单位时间内被使用 的时间,并把计算结果以百分比的形 式存放在变量OSCPUsage中,以便应用 程序通过访问它来了解CPU的利用率, 所以这个系统任务OSTaskStat( )叫做 统计任务 7 任务的优先权 及优先级别 C/OS_II 把任务的优先 权分为6

18、4个优先级别,每 一个级别都用一个数字来 表示。数字0表示任务的 优先级别最高,数字越大 则表示任务的优先级别越 低 用户可以根据应用程序的需要,在文件 OS_CFG.H中通过给表示最低优先级别的 常数OS_LOWEST_PRIO赋值的方法,来说 明应用程序中任务优先级别的数目。该 常数一旦被定义,则意味着系统中可供 使用的优先级别为:0,1,2, OS_LOWEST_PRIO,共OS_LOWEST_PRIO+1 个 固定地,系统总是把最低优先级别 OS_LOWEST_PRIO自动赋给空闲任务。如果 应用程序中还使用了统计任务,系统则会 把优先级别OS_LOWEST_PRIO-1自动赋给统 计

19、任务,因此用户任务可以使用的优先级 别是:0,1,2OS_LOWEST_PRIO-2,共 OS_LOWEST_PRIO-1个 8 任 务 堆 栈 保存CPU寄存器中的内容及存 储任务私有数据的需要,每个 任务都应该配有自己的堆栈, 任务堆栈是任务的重要的组成 部分 在应用程序中定义任务堆栈的栈区非常简单 ,即定义一个OS_STK类型的一个数组并在创 建一个任务时把这个数组的地址赋给该任务 就可以了。 例如: /定义堆栈的长度 #defineTASK_STK_SIZE 512 /定义一个数组来作为任务堆栈 OS_STK TaskStkTASK_STK_SIZE; typedef unsigned

20、 int OS_STK; /这是系统定义的一个数据类型 void main(void) OSTaskCreate( MyTask, /任务的指针 在创建用户任务时,要 传递任务的堆栈指针和 任务优先级别 使用函数 OSTaskCreate( )创建任 务时,一定要注意所使 用的处理器对堆栈增长 方向的支持是向上的还 是向下的 9 任务堆栈的初始化 应用程序在创建一个新任务的 时候,必须把在系统启动这个 任务时CPU各寄存器所需要的 初始数据(任务指针、任务堆 栈指针、程序状态字等等), 事先存放在任务的堆栈中 C/OS-II在创建任务函数 OSTaskCreate( )中通过调用任务 堆栈初始

21、化函数OSTaskStkInit( )来完成任务堆栈初始化工作的 它的原型如下: OS_STK *OSTaskStkInit( void (*task)(void *pd), void *pdato, OS_STK *ptos, INT16U opt ); 由于各种处理器的寄存器及对堆栈的操作 方式不尽相同,因此该函数需要用户在进 行C/OS-II的移植时,按所使用的处理器 由用户来编写。实现这个函数的具体细节 ,将在本书有关C/OS-II移植的章节中做 进 一步的介绍 其实,任务堆栈的初始化就是对该任务的 虚拟处理器的初始化(复位)。 10 任务控制块 (OS_TCB) 及任务控制块链表 C

22、/OS-II用来记录任务的堆 栈指针、任务的当前状态、任 务的优先级别等一些与任务管 理有关的属性的表就叫做任务 控制块 任务控制块就相当于是一个 任务的身份证,没有任务控 制块的任务是不能被系统承 认和管理的 任务控制块结构的主要成员 typedef struct os_tcb OS_STK *OSTCBStkPtr; /指向任务堆栈栈顶的指针 struct os_tcb *OSTCBNext;/指向后一个任务控制块的指针 struct os_tcb *OSTCBPrev; /指向前一个任务控制块的指针 INT16U OSTCBDly; /任务等待的时限(节拍数) INT8U OSTCBSt

23、at; /任务的当前状态标志 INT8U OSTCBPrio; /任务的优先级别 OS_TCB; 任务控制块链表 空任务控制块链表 当应用程序调用函数OSTaskCreate( ) 创建一个任务时,这个函数会调用系 统函数OSTCBInit ( )来为任务控制块 进行初始化。这个函数首先为被创建 任务从空任务控制块链表获取一个任 务控制块,然后用任务的属性对任务 控制块各个成员进行赋值,最后再把 这个任务控制块链入到任务控制块链 表的头部 当进行系统初始化时,初始化函 数会按用户提供的任务数为系统创建 具有相应数量的任务控制块并把它们 链接为一个链表。 由于这些任务控制块还没有对应 的任务,故

24、这个链表叫做空任务块链 表。即相当于是一些空白的身份证。 11 任务就绪表 及 任务调度 多任务操作系统的核心工作就是任 务调度。 所谓调度,就是通过一个算法在多 个任务中确定该运行的任务,做这项工 作的函数就叫做调度器。 C/OS_II进行任务调度的思想是 “ 近似地每时每刻总是让优先级最高的就 绪任务处于运行状态” 。为了保证这一 点,它在系统或用户任务调用系统函数 及执行中断服务程序结束时总是调用调 度器,来确定应该运行的任务并运行它 。 C/OS_II进行任务调度 的依据就是任务就绪表 为了能够使系统清楚地知道,系 统中哪些任务已经就绪,哪些还 没有就绪,C/OS_II在RAM中设 立

25、了一个记录表,系统中的每个 任务都在这个表中占据一个位置 ,并用这个位置的状态(1或者0 )来表示任务是否处于就绪状态 ,这个表就叫做任务就绪状态表 ,简称叫任务就绪表 任务就绪表就是一个二维数组OSRdyTbl 12 为加快访问任务就绪表的 速度,系统定义了一个变 量OSRdyGrp来表明就绪表 每行中是否存在就绪任务。 13 OSRdyTbl 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1

26、/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 OSRdyGrp D7 D6 D5 D4 D3 D2 D1 D0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 任务就绪表的示意图 01234567 x y 0 1 2 3 4 5 6 7 14 OSRdyGrp D7 D6 D5 D4 D3 D2 D1 D0 11110000prio=29 D7 D6 D5 D4 D

27、3 D2 D1 D0 1 D7 D6 D5 D4 D3 D2 D1 D0 1 OSRdyTbl3 把prio为29的任务置为就绪状态 YX OSRdyGrp | =OSMapTblprio3; OSRdyTblprio3 | = OSMapTblprio 在程序中,可以用类似下面的代码把优先 级别为prio的任务置为就绪状态: OSRdyGrp | =OSMapTblprio3; OSRdyTblprio3 | = OSMapTblprio 如果要使一个优先级别为prio的任务脱离就绪 状态则可使用如下类似代码: if(OSRdyTblprio3 15 OSRdyGrp D7 D6 D5 D4

28、 D3 D2 D1 D0 11110000prio=29 D7 D6 D5 D4 D3 D2 D1 D0 1 D7 D6 D5 D4 D3 D2 D1 D0 1 OSRdyTbly x = OSUnMapTalOSRdyTbly; 11000000000000 y = OSUnMapTalOSRdyGrp; 图5-6 在就绪表中查找最高优先级别任务的过程 从任务就绪表中获取优先级别最高的就绪任务可用如下 类似的代码: y = OSUnMapTalOSRdyGrp; /D5、D4、D3位 x = OSUnMapTalOSRdyTbly; /D2、D1、D0位 prio = (y3)+x;/优先级

29、别 或 y = OSUnMapTblOSRdyGrp; prio = (INT8U)(y 3) + OSUnMapTblOSRdyTbly); 16 优先级判定表OSUnMapTbl256 ( os_core.c) INT8U const OSUnMapTbl = 0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0,

30、 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0,

31、 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0

32、; 举例: 如OSRdyGrp的值为 00101000B,即0X28,则查得 OSUnMapTblOSRdyGrp的值 是3,它相应于OSRdyGrp中的 第3位置1; 如OSRdyTbl3的值是 11100100B,即0XE4,则查 OSUnMapTblOSRdyTbl3的 值是2,则进入就绪态的最高 任务优先级 Prio=3*8+2=26 17 小结 系统通过查找任务就绪表来 获取待运行任务的优先级 优先级 18 任务切换过程 获得待运行任务 的任务控制块 恢复待运行任务 的运行环境 处理器的PC=任 务堆栈中的断点 地址 处理器的SP=任 务块中保存的SP 如何获得待运行 任务的任务控制

33、 块? 根据就绪表获得 待运行任务的任 务控制块指针 其实,调度 器在进行调 度时,在这 个位置还要 进行一下判 断:究竟是 待运行任务 是否为当前 任务,如果 是,则不切 换;如果不 是才切换, 而且还要保 存被中止任 务的运行环 境。 19 1 任务切换宏 OS_TASK_SW( ) 任务切换就是中止正在运行的任 务(当前任务),转而去运行另 外一个任务的操作,当然这个任 务应该是就绪任务中优先级别最 高的那个任务 先保护被中 止任务的断 点数据 后恢复待运 行任务的断 点数据 不要企图用PUSH和POP指令来使程序计数 器PC压栈和出栈,因为没有这样的指令。 只好变通一下了。 中断动作和

34、过程调用指令可以使PC压栈; 中断返回指令可以使PC出栈。 因此任务切换OSCtxSw( )必定是一个中断 服务程序。 需要由宏OS_TASK_SW( ) 来引发 一次中断或者一次调用来使 OSCtxSw( ) 执行任务切换工作 20 调度时机 很容易想到的调度时机就 是定时调度。 对于实时系统来说,应该尽 可能地实现即时调度。 21 用函数OSTaskCreate( ) 创建任务 应用程序通过调用OSTaskCreate( ) 函数来创 建一个任务,OSTaskCreate( )函数的原型如下 : INT8U OSTaskCreate ( void (*task)(void *pd),/指向

35、任务的指针 void *pdata, /传递给任务的参数 OS_STK *ptos, /指向任务堆栈栈顶的指针 INT8U prio/任务的优先级 ) 22 创建任务 的一般方法 一般来说,任务可以在调用函数OSStart( )启 动任务调度之前来创建,也可以在任务中来创 建。但是,C/OS-II有一个规定:在调用启动 任务函数OSStart( )之前,必须已经创建了至 少一个任务。因此,人们习惯上在调用函数 OSStart( )之前先创建一个任务,并赋予它最 高的优先级别,从而使它成为起始任务。然后 在这个起始任务中,再创建其他各任务。 如果要使用系统提供的统计任务,则统计任务 的初始化函数也必须在这个

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 应用文书 > PPT文档

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报