ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:594.15KB ,
资源ID:10033556      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10033556.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ITRON系统使用方法.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ITRON系统使用方法.docx

1、ITRON系统使用方法ITRON系统使用方法目录1 引言 42 ITRON系统介绍 52.1 概要 52.2 构成 52.2.1 ITRON系统构成 52.2.2 ITRON体系结构 52.3 应用领域 62.4 如何使用ITRON系统 63 ITRON的基本机能 83.1 Task管理机能 83.1.1 Task 83.1.2 任务调度 83.1.2.1 调度产生条件 93.1.2.2 调度方式 93.1.3 任务的状态管理 93.1.3.1 ITRON系统状态定义 93.1.3.2 任务状态迁移与系统调用 103.1.4 任务的应用 123.1.5 任务的设计 133.1.5.1 任务划分

2、的原则 133.1.5.2 I/O 依赖性 133.1.5.3 时间关键性的功能 133.1.5.4 计算功能 143.1.5.5 时间内聚 143.1.5.6 周期执行功能 143.1.5.7 任务设计的误区 143.2 同步和通信管理 153.2.1 Event Flag 153.2.1.1 基本调用 163.2.1.2 Event Flag的应用 163.2.2 Semaphore 183.2.2.1 基本调用 193.2.2.2 Semaphore的应用 193.2.3 MailBox 203.2.3.1 基本调用 223.2.3.2 MailBox的应用 223.3 内存管理 243

3、.3.1 概述 243.3.2 基本调用 253.3.3 内存池的创建 253.3.4 内存池的清除 263.3.5 内存申请 263.3.6 内存释放 263.4 中断处理 263.4.1 中断处理的管理 263.4.2 中断例程的登录 273.4.3 中断中的处理 273.5 时钟管理 283.5.1 周期唤醒 283.5.2 延迟唤醒 283.5.3 Time Out指定 294 初始化处理 294.1 硬件初始化 294.2 内核初始化 294.3 软件初始化 305 附录 315.1 思考题 315.2 参考资料: 311 引言对于这样一个处处存在计算机的时代,计算机已经不再是像现在

4、这样有显示器和键盘的样子,而是内只与各种各样的机器设备中,用户不会意识到是在使用计算机,而是在不知不觉中愉快的接受了计算机提供的各种服务。为了实现处处存在计算机的设想,在TRON项目中研制了内置于形式各异的机器设备中的操作系统ITRON。ITRON与现在的大多数计算机中的操作系统的最大不同就是具有实时性。另外ITRON还有一个特点就是其标准的开放性,由于他的开发体系标准,任何人都可以自由的以ITRON为基准,创建操作系统。课程目的:本教材从应用的角度出发,比较详尽的解析ITRON系统的基本原理,并且理论结合实际,由浅入深,逐步引导大家,从而保证每位学员能够独立在基于ITRON系统内核上进行应用

5、软件的设计和开发。授课目标:通过本课程的学习,能够让大家对ITRON系统有比较深入的了解,并能够独立开发基于ITRON系统的应用软件。面向对象:本教材主要面向有一定操作系统原理基础知识,并立志于基于ITRON体系开发的人。教材构成:1. ITRON系统概要2. ITRON基本功能 任务管理 同步管理 内存管理 时钟管理 中断管理3. 初始化处理4. 系统调用详细说明2 ITRON系统介绍2.1 概要ITRON(Industrial the Real-Time Operation System Nucleus,工业实时操作系统中心)提出的实时多任务系统规范。它具有标准的实时内核,适用于任何小规模

6、的嵌入式系统,日本国内现有很多基于该内核的产品,其中消费电器较多,目前已成为日本事实上的工业标准。ITRON和日本的精密机械工业相结合,使日本在数据系统、工业机器人、办公机器方面处于世界领先地位。ITRON系统具有以下特点: 多任务支持 事件驱动基于优先级的调度 任务间的通信与同步 实时时钟控制 完全可抢占内核硬实时响应2.2 构成2.2.1 ITRON系统构成ITRON系统主要由内核、接口库、辅助工具这三个基本子系统组成。内核:ITRON的核心部分,和处理程序一起组装到目标系统中,进行实时、多任务控制。主要包括调度程序、Task管理、同步管理、初始化以及各种资源的管理等。接口库:用外部函数的

7、形式提供系统服务,实现将外部函数形式发行的系统调用转变为内核识别管理的形式的接口程序。图2.2-1 表明接口库在系统中的位置。图2.2.1-1 接口库的定位 辅助工具:包括编译工具、Task Debuger等,为用户方便式用系统提供了可能。2.2.2 ITRON体系结构建立在ITRON 基础上的系统根据功能来分层,每一层都使用下一层提供的功能,系统图2.2.2-1ITRON系统体系结构硬件构成了系统的最底层,紧接着一层包括了最简单的大多是硬件相关的操作系统,功能最上层是应用程序。2.3 应用领域随着信息终端的高性能化,在终端上搭栽操作系统的实例越来越多。根据TRON协会提供的资料,下面将列举出

8、ITRON系统的主要应用领域。 娱乐/教育设备 通信设备 AV设备 测量仪器 医疗设备、航空设备的数据收集以及数据计算系统等 家用电器在上述应用领域中,ITRON规范的操作系统的使用率比较高,普遍超过40%,除去其中没有使用操作系统的设备,这些领域中的ITON的使用率将超过60%,因此ITON规范的操作系统还是得到了广泛的认可和应用的。2.4 如何使用ITRON系统ITRON规范中定义了一系列C语言接口库,应用系统可以利用这些接口库实现应用与操作系统的相连。下面是基于itron系统的软件构建过程:图2.4-1 基于Itron系统的软件构建过程3 ITRON的基本机能作为通常的实时操作系统,一般

9、需要包含下面这些基本的管理功能: 中断管理 任务管理1. 创建、撤消2. 状态迁移3. 调度4. 同步(任务协调、资源的互斥访问、任务之间通信) 资源管理(内存、时间、端口、外设等)ITRON系统也不例外的实现了这些功能,下面将针对这些机能进行详细讲解。3.1 Task管理机能3.1.1 Task任务就是一个具有独立功能的无限循环的程序段的一次运行活动。任务具有动态性并行性异步独立性的特点。动态性任务的状态是不断变化的,一般分为:休眠态(dormant), 就绪态(ready),运行态(running), 挂起态suspended 睡眠态sleep 等如图3.1并行性是指系统中同时存在多个任务

10、,它们宏观上是同时运行的。异步独立性任务是系统中独立运行的基本单元也是内核分配和调度的基本单元每个任务各自按相互独立的不可预知的速度运行走走停停。每个任务都要按排一个决定其重要性的优先级,都有一个无限循环的程序段规定其功能(如一个C 语言过程),并相应有一个数据段、堆栈段及一个任务控制块(保存CPU 的现场, 状态等)。下面是一个ITRON系统任务应用的典型范例:void XXX_Task ( INT stacd )MSG msg;while(1) rcv_msg(&msg, MbxID); /从某个Mailbox中获取情报用户程序3.1.2 任务调度操作系统必须为多个任务可能有竞争的请求分配

11、资源,对于处理器来讲,可分配的资源主要是处理器运行时间,分配的途径是通过内核的调度来完成的。3.1.2.1 调度产生条件从表面上看,任务切换功能很简单,在某个时刻,一个正在运行的任务被终止,操作系统指定另一个任务为运行状态,并把控制权交给这个任务。但是什么事件触发了任务控制权的切换?ITRON系统中,当有如下几个条件发生时,会发生任务的调度。 处理程序的返回 发生改变系统运行状态的系统调用。 产生时钟中断。3.1.2.2 调度方式1 优先级方式:对于每个任务都事先分配有优先级,这里的优先级是指决定调度顺序的东西,调度程序首先会参照优先级别,从Ready队列中找到优先级别最高的任务赋予CPU使用

12、权。在实时操作系统中任务的优先级是应用程序设计者按照任务的重要程度来安排的,并且任务在运行中其优先级可以动态改变,这个完全需要根据实际的需求进行设计。图3.1.2.2-1 Itron Ready队列状态和处理器使用权2 FIFS方式当拥有同一优先级的任务存在多个时,调度程序将赋予成为Ready状态时间最长的任务CPU的使用权。3 任务的禁止/许可4 时间片轮旬作为Itron系统并没有提供这种支持,但是可以通过现有系统提供的服务实现这种支持,这个在后面进行说明,详细内容请参考:3.1.3 任务的状态管理任务根据运行时所必须的资源获得状况,以及有无事件发生来实现状态的迁移,所以内核必须管理各任务当

13、前所处的状态。3.1.3.1 ITRON系统状态定义操作系统的职责是控制任务的执行,这里包括决定任务交替的方式和资源的分配原则,所以为了达成这个目标,就需要描述任务的行为-即任务的状态。在ITRON中,将任务划分为如下七个状态进行管理,在任意时刻,任务状态只能属于这七个状态之一。未登录状态:non_existent没有作为任务的注册到系统中,或被消除没能登录到系统中的状态。也就是说虽然已经装配到内存中,但不受OS管理的程序。休眠状态:dormant任务生成时的状态(cre_tsk系统调用时)或者是运行终了时的状态。处于dormant状态的任务,已经从调度对象中删除掉了。就绪状态:ready成为

14、内核调度对象管理的状态。虽然已经具备除了处理机之外的所有必要资源,但是由于有比该任务优先级别更高(或者相同任务优先级别)的任务正在运行,等待运行权到达的状态,也就是说,只要运行权到达,马上迁移到run状态的状态。运行状态:run得到了系统的控制权,正在处于运行处理中的状态。系统中处于运行状态的任务只能有一个。等待状态:wait由于缺少运行的必要条件,不能进入到运行状态的状态,也就是说正在等待必要运行条件到达的状态。从wait状态的重新执行是从进入到wait状态时中断的场所开始执行,也就是说运行程序时必要的各种内部环境(寄存器、堆栈等)会复原。挂起状态:suspend被其他任务情知中断执行(su

15、s_tsk调用的发行)的状态,还有可以通过多重发行sus_tsk调用,使suspend状态嵌套。Suspend状态的解除是通过发行rsm_tsk系统调用来进行的。但是如果要发行依次rsm_tsk系统调用来解除被嵌套的suspend状态,必须要选择参数T_FRCPSM(0X1)。从syspend状态重新实行是指从为进入suspend状态处理中断的位置开始。也就是说运行程序时必要的各种内部环境(寄存器、堆栈等)会复原。双重等待状态:wait_suspend由上面wait状态和suspend状态合成的状态,也就是对应于wait状态发行了sus_tsk调用的场合迁移到的场合。Wait_suspend状

16、态是当suspend状态被解除时,就迁移到wait状态,而wait状态被解除时,就迁移到suspend状态。3.1.3.2 任务状态迁移与系统调用各个任务是通过系统调用的发行,来实现状态的迁移的,具体的状态迁移关联关系情参考图3.1.3.2-1:图3.1.3.2-1任务的状态迁移关系图各迁移过程的详细说明请参照表3.1.3.2-1状态迁移说 明系统调用Nonexistent-dormant任务生成cre_tskNonexistent-ready不可-Nonexistent-run不可-Nonexistent-wait不可-Nonexistent-suspend不可-Dormant-nonexi

17、stent任务的删除del_tskDormant-ready任务的启动sta_tskDormant-run不可(注1)-Dormant-wait不可-Dormant-suspend不可-Ready-nonexistent不可-Ready-dormant任务的强制终了ter_tskReady-run在ready状态的任务中,优先级成为最高的任务-Ready-wait不可-Ready - suspend任务的强制等待sus_tskRun-nonexistent任务的终了并自删除Exd_tskRun-dormant正常终了Ext_tskRun-ready任务的自中断,接受系统的调度(注2)-Run-

18、wait等待要因的发生:时间等待唤醒等待Event Flag等待Semaphore等待消息等待内存块等待Wai_tskSlp_tskWai_flgWai_semRcv_msgGet_blkRun-suspend不可-Wait-nonexistent不可-Wait-dormant任务的强制终了Tet_tskWait-ready等待要因发生:Time out唤醒等待Eventflag等待Semaphore等待消息等待内存块等待Wup_tskSys_wupSet_flgSig_semSnd_msgRel_blkWait-run不可(注3)-Wait-wait_suspend任务的强制等待Sus_ts

19、kSuspend-nonexistent不可-Suspend-dormant任务的强制终了Ter_tskSuspend-ready强制等待的解除Rsm_tskSuspend-run不可(注4)-Suspend-wait不可-Suspend-wait_suspend不可-Wait_suspend-wait强制等待的解除Rsm_tskWait_suspend-suspend等待要因的解除Vsnd_sig表3.1.3.2-ITRON任务的状态迁移关系表1. 通过sta_tsk调用后有时会从dormant状态迁移到run状态,但实际上是经过ready状态后迁移到run状态的。2. 当出现比自任务有更高

20、有限级的任务或对于自任务发行rot_rdp系统调用。3. 通过等待要因发生后,有时从suspend状态迁移到run状态名单实际上是经过ready状态的。4. 通过rsm_tsk系统调用发现有时从suspend状态迁移到run状态,但实际上是经过ready状态的。3.1.4 任务的应用 创建任务在Itron系统中创建任务存在两种方式,一种方式是静态注册任务;另一种方法是动态的创建任务。动态创建任务主要通过cre_tsk调用来实现的。 激活任务Itron系统中,初始创建的任务的状态是Dormant状态,这个时候任务还处于系统无法调度的状态,所以必须激活任务,激活任务的系统调用是sta_tsk,作用

21、就是将指定任务由Dormant状态迁移到Ready状态。 终止任务在Itron系统中如果需要实现将任务由ready state, run state, wait state, suspend state, wait-suspend state迁移到Dormant状态的话,需要通过下面两种方式实现,正常终止和强制终止。正常终止是任务自身主动放弃系统的使用权。强制终止是任务自身出现错误,无法自主释放系统使用权,这个时候只能通过其他任务来完成对本任务使用权的剥夺。实现任务终止的系统调用主要有下面三个: ext_tsk system callThe task that issued the ext_t

22、sk system call is switched from the run state to the dormant state. exd_tsk system callThe task that issued the exd_tsk system call is switched from the run state to the non-existent state. ter_tsk system callThe task specified by the parameters is forcibly switched to the dormant state. 删除任务实现任务状态从

23、Run或者Dormant状态切换到nonexistent状态,实现这个功能主要通过下面两个调用来完成的。 exd_tsk system callThe task that issued the exd_tsk system call is switched from the run state to the non-existent state. del_tsk system callThe task specified by the parameters is switched from the dormant state to the non-existent state.3.1.5 任务

24、的设计3.1.5.1 任务划分的原则在将一个软件系统分解成并行任务时, 主要需考虑的是系统内功能的异步性。可以通过分析数据流图中的变换, 确定哪些变换可以并行, 而哪些变换在本质上是顺序的,通过这种方法, 划分出任务: 一个变换对应一个任务,或者一个任务包括几个变换。一个变换是应该成为一个独立的任务, 还是应该和其它变换一起组成一个任务, 决定的原则如下: I/O 依赖性 (Dependency on Input/Output Device) 时间关键性的功能 (Time-critical functions-Hard Deadline) 计算量大的功能Heavy Computation fu

25、nction 功能内聚Functional relations 时间内聚Temporal relations 周期执行的功能Cyclic executing function3.1.5.2 I/O 依赖性如果换依赖于I/O, 那么它运行的速度常常受限于与它互操作的I/O 设备的速度在这种情况下, 变换应成为一个独立的任务。 在系统中创建多个与I/O 设备相当数目的I/O 任务 I/O 任务只实现与设备相关的代码 I/O 任务的执行只受限于I/O 设备的速度而不是处理器 在任务中分离设备相关性3.1.5.3 时间关键性的功能对于事件关键性的功能对响应的时间要求的第一重要的,所以对于这类任务的响应

26、的优先级别比较高。 将有时间关键性的功能分离出来组成独立运行的任务 赋予这些任务高的优先级以满足对响应时间的需要3.1.5.4 计算功能复杂的计算功能一般运行时间比较长,所以对于这类功能的设计的原则如下: 计算功能占用CPU 的时间多 捆绑计算功能成任务赋予它们较低优先级运行, 能被高优先级的任务 抢占消耗CPU 的剩余时间 保持高优先级的任务是轻量级的 多个计算任务可安排成同优先级按时间片循环轮转3.1.5.5 时间内聚 将在同一时间内完成的各功能,即使这些功能是不相关的组成功能组形成一个任务 功能组的各功能是由相同的外部事件驱动的,如时钟等这样每次任务接收到一个事件, 它们都可以同时执行

27、组成一个任务,减少了系统的开销虽然时间内聚在结构化设计中并不被认为是一个好的模块分解原则, 但在任务级是可以被接受每个功能都作为一个独立的模块来实现, 从而达到了模块级的功能内聚, 这些模块组合在一起, 又达到了任务级的时间内聚3.1.5.6 周期执行功能 将在相同周期内执行的各功能组成一个任务 频率高的赋予高优先级3.1.5.7 任务设计的误区 错误的任务划分原则任务使用SUPSPEND/RESUME 太频繁,是由于任务划分过细任务的当成功能使用,改进的方法是将任务变成子程序使用。当事件发生时调用子程序,任务划分的太粗将子程序划分为任务,得到消息后又立即检查另外的信息,不要使用轮循的方式直接

28、使用事件驱动方式 优先级倒置当低优先级的任务向高优先级的任务发送消息时,高优先级的任务不能运行,直到低优先级的任务发送消息后才能运行。这种情况下就没有必要分为两个任务只需要使低优先级的任务调用子程序即可。 死锁两个任务同时相互等待对方的信号,导致它们永远不能运行。为了避免死琐将共享资源统一排序所有的任务按序来访问多个资源。等待的事件没有发生过或者不具备等待事件的发生条件。3.2 同步和通信管理在多任务的实时系统中,一项工作的完成往往要通过多个任务或多个任务与多个中断处理过程(ISRs)共同完成。它们之间必须协调动作互相配合,甚至需要交换信息进行通信。这些通信和同步的需要是:1. 任务能和其他任

29、务及ISRs 交换数据2. 任务能以以下方式与其他任务进行同步 单向同步一个任务与另一个任务或一个ISR 同步 双向同步两个任务相互同步 与同步 一个任务与几个事件同时同步 或同步 一个任务与几个事件中的任何第一个到达事件同步3. 任务必须能对共享资源进行互斥访问为了满足任务间通信同步和互斥的需要,同时保证资源被安全的使用,必须对多个相关任务在执行的次序上进行协调。ITRON系统主要提供了如下一些同步机制。 Event Flag,任务间的协调功能。 Semaphore,对系统资源进行排他访问。 MailBox,任务之间进行的信息通信。以下章节将针对这些系统同步方式进行详细的说明。3.2.1 E

30、vent Flag在多任务处理系统中,需要等到一个任务终了后,其他任务再开始启动的等候功能,这个时候,需要拥有对其他任务是否终了进行判断的能力,ITRON系统中提供了Event Flag.来实现这个机能。ITRON系统中,一个Event Flag是ITRON工作区中的一个32 位的变量。32 位中的每一位都是表示一个事件标志,事件标志有两种状态,设置(1)和清除(0)。当一个标志处于设置状态时,表示相关的事件已经发生了,任务和ISRs 可以使用事件标志来向其他任务发送信号, 表示事件已发生。图3.2.1-1 Event Flag示意图上图中,人相当于任务,火把表示Event Flag,在没有得到通知之前,等待信号的人处于等待状态,当发送信号的人发送了通知之后,处于等待状态的人将被激活,便开始自己的作业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1