版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、、实验目的利用实验平台,模拟车辆照明控制系统工作学习嵌入式系统的裁剪与定制3)熟悉AD转换器,键盘等设备的操作熟悉基于消息循环的事件处理机制理解操作系统对于嵌入式系统的意义:、本课题选题背景及国内外研究动态(一)选题背景20世纪90年代中期以后,LED作为汽车尾灯已经被人们广泛接受。近 年来, 随着LED亮度的逐渐增加,2003年高亮度Luxeom的市场投放,使LED开始在汽车 前照灯领域崭露头角,它以体积小、寿命长、环保、聚焦距离 短等优势受到人们 普遍的关注和青睐。然而,氤气和LED前照灯技术只能工作在一种模式下,即一种固定的类型下。但是,实际道路使用状况、环境状 况、气候状况等情况非常复
2、 杂。数据分析显示,在夜间发生车祸的数量是白 天车祸数量的两倍,为了在夜间 或者是恶劣天气下能达到更好的视觉效果, 要求前照灯光线随着不同的驾驶环境 而改变。这就需要设计一种灵活的前照 灯系统。传统的前照灯系统是由:近光灯、远光灯、行驶灯和前雾灯组合而成。在 城 市道路行驶并且限速的情况下,主要采用近光;在乡间道路或者高速公路上高速行驶的时候,主要采用远光;雾天行驶的时候,应该打开雾灯;白 天行驶,应该 打开行驶灯(欧洲标准)。但是实际的使用中,传统的前照灯 系统存在着诸多问 题。例如,现有近光灯在近距离上的照明效果很不好,特 别是在交通状况比较复 杂的市区,经常会有很多司机在晚上将近光灯、远
3、 光灯和前雾灯统统打开;车辆 在转弯的时候也存在照明的暗区,严重影响 了司机对弯道上障碍的判断;车辆在雨天行驶的时候,地面积水反射前灯的 光线,产生反射眩光等等。欧洲汽车照明研究机构曾经就此作过做专项调查,结果显示,欧洲司机们最希望改善的是阴雨天气积水路面的照明,排在第二位的是乡村公路的照 明,接下来依次是弯道照明、高速公路照明和市区照明。上述这些问题的存在,就使得研制一种具有多种照明功能的前照灯成为必要,并且这些功能的切换,出于安全上的考虑,必须是自动实现的。所以欧洲 和日本相继研制了这种自动适应车辆行驶状态的前照灯系统一一 AFS (自适 应前照灯系统)。(二)国内外研究现状目前,在汽车前
4、照灯的标准方面有欧洲标准和美国标准,两者主要在近 光配光上有较大的差别欧洲标准特别注重对眩光的控制,因此在其配光上存在15。的截止线,并且照度也比较低。在美国,道路大多比较宽阔,因此对眩光没什么特别 的要求,只要 前照灯能够照得更远更亮就可以了。随着经济全球化进程的加 快,人们迫切要求消除这2 种标准之间的差别,建立一个统一的国际标 准。一种方法是将两种标准中合理的部分综合起来形成一个双方都能接受的 标准;另外一种方法是建立一个包括多种功能的前照灯系统,它能根据不 同的路况、天气而采用不同的照明方式,这就是AFS系统。对于AFS前照灯系统的研究在国外已经取得了很大进展,日趋成熟。日 本、 欧洲
5、等国的知名汽车制造商都纷纷推出自己的AFS,在高档轿车中标配 AFS的同时,将其在中档甚至中低档轿车车型中作为选配列出。比如奥迪A& 宝马 5 系,梅塞德斯CLS E系、M系,大众B6,雷克萨斯RX330,丰田皇冠等等。在国外,AFS已经得到广泛应用,而国内在这方面的研究还比较少。引 进的AFS大多考虑生产商本国道路状况,而国内的道路状况与日本和欧洲有较大不同因此AFS并不能发挥最大的作用,对 AFS在国内的应用带来了阻 力。国内上海小 系公司已经对天津丰田锐志 AFS前照灯完成了国产化开发工 作,用于新款丰田佳 美AFS前照灯系统业已完成,但其主要是以技术引进 为主。三)AFS系统综述1 、
6、 AFS 系统组成动态照明系统这一概念是 20世纪 90年代初提出的,经过10多年的发 展,智能化自适应前照灯照明系统AFS正式亮相。该系统可以根据汽车行驶的速度、偏离 速率以及转向角等表示汽车运动状态的参量来计算照明的方 式。随着 2003 年静态转弯照明系统在欧洲汽车市场上的投放, 2004 开始尝 试引入动态转弯照明 系统,并很快受到欢迎和推广。这种系统尤其在城镇、 乡村、高速公路等不同复 杂路况 条件下以及恶劣天气中的应用,将有益于驾 驶安全性的提高。AFS系统是由传感器组、传输通路、电控单元和执行机构组成。由于需要对多种车辆行驶状态做出综合判断,因此 AFS系统是一个多输入多输出的复
7、 杂的系 统。其主要部分包括:前照灯卤素车灯、HID灯或LED灯等。传感器一一包括角度传感器和速度传感等。随着速度和方向盘角度的改变,车身高度和倾斜度也会随之改变,传感器将这些参数的变化通过 CAN (controller area network )总线传输给电控单元(ECU),电子控制 单元收集所有传感器传来的数据控制执行电机,在理论上给出最合理的光分布,用来 改善 灯光照明。并调整照雾探测器一一该探测器能应用在恶劣天气尤其是浓雾条件下,给出 真并调整照实的实际可视距离。自动雾探测器可根据雾浓度大小给出正确的判断,明方式,以适应恶劣天气,提高雾天驾驶的安全性夜间可视系统一一作为一个独立的可
8、视增强系统,该系统主要分为 远红外线和近红外线两种特性,这两种都能应用在支持夜间可视的前照灯系 统中。作为一个综合系统,可视光源和红外线的综合应用能够识别障碍物、 步行者和其 他物品。、 AFS 系统功能阴雨天气的照明:阴雨天气,地面的积水会将行驶车辆打在地面上 的光线,反射至对面会车司机的眼睛中,使其目眩,进而可能造成交通事 故。 AFS 有效的解决方法是:前灯发出特殊光型,减弱地面可能对会车产生 眩光的区域的 光强。转弯道路的照明:传统前灯的光线因为和车辆行驶方向保持着一致,所以不可避免的存在 照明的暗区。一旦在弯道上存在障碍物,极易因为司机对其准备不足,引 发交通事 故。AFS解决的方法
9、是:车辆在进入弯道时,产生旋转的光型,给 弯道以足够的 照明。高速公路的照明:车辆在高速公路上行驶,因为具有极高的车速, 所以需要前照灯比乡村道路照得更远,照得更宽。而传统的前灯却存在着高 速公路上照明不足的问题,如图5所示。AFS采用了更为宽广的光型解决这一问题。城市道路的照明:城市中道路复杂、狭窄。传统前照灯近光如图 7 所示,因为光型比较狭长,所以不能满足城市道路照明的要求。AFS在考虑到车辆市区行驶速度受到限制的情况下,可以产生比较宽阔的光型,有效地避免了与岔路中突然 出现的行人、车 辆可能发生的交通事故。、举例:雷克萨斯自适应照明系统(AFS)夜间行驶时,装备自适应照明系统的lexu
10、ST克萨斯使驾驶员在转弯时拥有良好视野。感应器将监控车速和前轮转向角度,以估计驾驶员三秒后的 位置,同时令前大灯照向此处。左、右前大灯可依据转弯角度进行不同程 度的旋转,一个可旋转 5 度,另一个可旋转15度。当驶近弯道时,车灯将紧随前方道路走向,而绝非简单照亮道路边缘。 自适应照明系统有助于缓解夜间行车疲劳,尤其在不熟悉的连续弯路当中行驶时。:、需求分析一款AFS车辆前照灯系统需要提供以下服务:、 三 种车灯照明基本状态:近光宽照明,远光照明,转弯死角照明;、 具 备车速传感器和天气状况传感器; TOC o 1-5 h z 、 将 速度划分为三档,由低到高分别为城市速度,乡村速度和高速公路速
11、度;、 城 市照明时,采用近光灯照明;、 乡 村速度时,采用限制左侧照明,即此时右侧同时使用远光灯和近光灯,而左侧使用近光灯;、 高 速路速度时,同时使用远光灯和近光灯照明;、通 过传感器识别雾天,自动打开雾灯功能,并且,雾灯不影响其他灯的使用;、转 向时,自动触发转向照明灯,将所转向的区域中的死角照亮,转向结束,关闭转向灯;9、为应付紧急情况,所有的灯均可通过键盘手动控制;10、出于安全性的考虑,车灯的变化需要在尽量短的时间内完成,以尽 可能 的提高驾驶员的客观的可视范围。四、实验的基本内容(一)AFS系统模型抽象与资源模拟1、系统中具备多种传感器,并且可以周期性采样各传感器数据,综合处2、
12、车灯作为系统的输出设备,通过其组合表达系统的处理结果3、模块之间独立性较强,需要有软开关可以屏蔽模块。针对实验室内的条件,结合实验平台中的资源,对车辆前照灯控制系统中的设备作如下模拟:1、用8个LED分别模拟各组车灯,对8个LED编号分别为1至8, 1号和8号 模拟侧光灯,2号和7号模拟雾灯,3号和6号模拟外侧远光灯,4号和5号模拟 近光灯。示意图如下:LED1LED2LED3LED4LED5LED6LED7LED8左侧内雾灯左远光如左近光火右近光火右远光火雾灯右侧四AD转换器0模拟方向盘,居中为正向行驶AD转化器1模拟车速传感器4、键盘模拟驾驶员车内控制按钮。1号键和3号键为左右侧的近光 灯
13、,4 号键和6号键为左右侧的远光灯,7号键和9号键为左右侧光灯,5控制雾灯。NumLoc凝用于手动控制和自动控制的切换AD转换器2模拟空气中雾气数据采样。:)环节实验准备根据上述分析,实验准备阶段需要熟悉的环节实验有:1、AD转换器实验中有主要目的是知道编程实现 A/D功能的主要方法。AD转换器实验是系统 关AD转换器的基础模块实现的基础。中有1)新建工程,将Exp5中的文件添加到工程2)编写获取转换结果函数(main, c )nn3)主函数(main, c)2、键盘和LED实验法。键目的是学习键盘及LED驱动原理,掌握键盘及LED驱动芯片的使用方 盘和LED实验是系统中键盘和LED两个基础模
14、块实现的基础。法。键1)新建工程,将Exp3中的文件添加到工程。2)定义 zlg7289 寄存器(zlg7289. h)ttdefine ZLG7289_CS (0 x20) GPB5ttdefine ZLG7289_KEY (0 x10) /GPG4ttdefine ZLG7289_ENABLE()doZlg7289SI0Band=rSBRDR; Zlg7289SI0Ctrl=rSI0C0N; rSI0C0N=0 x31; rSBRDR=0 xff:rPDATB&= (AZLG7289_CS);wh 订 e(0)ttdefine ZLG7289_DISABLE()dorPDATB|二 ZLG
15、7289_CS;rSBRDR=Zlg7289SI0Band;rSI0C0N=Zlg7289SI0Ctrl; wh 订 e ( 0)编写 zlg7289 驱动函数( zlg7289. c )定义键盘映射表: ( Keyboardl6. c )unsigned charKeyBoard_Map = 4, 8, 11, 0, 0, 0, 0, 0, 5, 9, 12, 15, 1, 0, 0, 0, 6, 10, 13,16, 2, 3 , 0,0, 7, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16、 0,0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0;/64, 键值映射表。通过查找键盘映射表来确定键盘扫描码对应的按键值。)定义键盘读取函数: ( Keyboardl6. c ) 编写主函数,将按键值在数码管上显示。3、消息循环实验目的是学习使用系统的消息循环。掌握如何通过系统的消息循环来响应 键盘的消息,同时学会使用图形模式下的液晶屏文字显示函数。最终实现 按 不同的键,在屏幕上显示不同的文字;同时,把键盘的按键号码输出到PC机的终端显示。消息循环实验部分是本系统的一个核心部分,是各个 模块之间的一个通信纽带。1、新建工程,将 Expl 中的文件加入工程。2
17、、打开 Main, c 文件 , 仔细阅读 Key_Scan_Ta.sk 函数 系统的键盘扫描函数。理解系统中 Main_Task任务消息队列的创建和发送的过程。3、在Main_Task任务中加入代码,实现消息循环。即:等待消息、处理(响应)消息、删除消息。使用WaitMessage接收消息,通常等待时间设置为无限长。如图 4-1 所示,系统的消息循环是一个无限循环。系统的消息结构定义如下:typedef struct P0S_Ctrl pOSCtrl; / 消息所发到的窗口 ( 控件)U32 Message:U32 WParam;U32 LParam;OSMSG, *POSMSG;收到消息以
18、后(即,WaitMessage函数返回),通过判断消息结构中Message的成员来判断消息类型。如果是键盘消息,则 Message的值为OSM_KE, YWparami数 存储的是按键的号码,LParam参数存储的是同时系统按下的功能键(如果没有,则为 0 ) 。开始等待下一条消息之前必须使用 DeleteMessage 删除消息,释放系 统的内存空间。4、编写键盘消息响应函数,处理键盘的消息。当有键盘消息收到的时候,把按键号码显示在液晶屏上,同时,发送给PC机的终 端。4、操作系统移植实验目的是掌握和理解UC/OS-II内核的主要结构及UC/OS-II内核移植到ARM7处理器上的基本方法。操
19、作系统移植实验部分是系统中最核心的部分,控 制、调 度着其他模块正常、协调地运行。实验主要的内容( 1 ) 、该实验的文件分为两类,其一是STARTU下的系统初始化、配置等文件,其二是 u C/O-S II的全部源码, arch 目录下的 3 个文件是和处理器架构相关的。. 设置 os_cpu.h 中与处理器和编译器相关的代码typedef unsigned char BOOLEAN;typedef unsigned char INT8U;typedef signed char INT8S;typedef unsigned int INT16U;typedef signed int INT16
20、S;typedef unsigned long INT32U:typedef signed long INT32S;typedef float FP32;typedef double FP64;typedef unsigned int OS_STK;typedef unsigned int OS_CPU_SR;extern int INTS_OFF(void);extern void INTS_ON(void);define OS_ENTER_CRITICAL() cpu_sr = INTS_0FF(); define OS_EXIT_CRITICAL () if(cpu_sr 二二 0) I
21、NTS_0N(); define 0S_STK_GR0WTH 1与编译器相关的数据类型因为不同的微处理器有不同的字长,所以 u C/O-S II 的移植包括了一系 列的类型定义以确保其可移植性。尤其是 U c/0-s II 代码从不使用 C 的 short, int 和long 等数据类型,因为它们是与编译器相关的,不可移植。相 反的,我们定义的整形数据结构既是可移植的又是直观的。为了方便,虽然u C/O-S II 不使用浮 点数据,但我们还是定义了浮点数据类型。例如,INT16U数据类型总是代表16位的无符号整数。现在,u C/O-S II和用户的应用程序就可以估计出声明为该数据类型的变量的
22、取值范围是0 65535o将u C/O-S II移植到32位的处理器上也就意味着INT16U实际被声明为无符号 短整形数据结构而不是无符号整数数据结构。但是,u C/O-S II所处理的仍然 是INT16U。用户必须将任务堆栈的数据类型告诉给u C/O-S II o 这个过程是通过为0S_ST声明正确的C数据类型来完成的。我们的处理器上的堆栈成员是16位的,所以将OS_TS声明为无符号整形数据类型。所有的任务堆栈都必须用OS_TS声明数据类型。OS_ENTER_CRITICAL3() OS_EXIT_CRITICAL(后所有的实时内核一样 ,u C/O-SII 需要先禁止中断再访问代码的临界区
23、,并且在访问完毕后重新允 许中断。这就使得UC/O-SII能够保护临界区代码免受多任务或中断服务例程(ISR)的破坏。在S3c44B0X是通过两个函数(OS_CPU_A. S)实现开关中断的。INTS_OFFmrsmov orrmsrand movINTS_ONINTS_OFFmrsmov orrmsrand movINTS_ONrO, cpsrrl, rOrl, rl, #0 xC0CPSR, rlrO, rO, #0 x80 pc, lr;当前CSR;复制屏蔽;屏蔽中断位;关中断(IRQ and FIQ);从初始CS晒回fiq;当前;当前CSR;屏蔽中断;开中断(IRQ andmrs rO
24、 ,cpsrbicrO, rO, #0 xC0msrCPSR, rOmovpc, lros_stk_groWTH:多数的微处理器和微控制器的堆栈是从上往下长的。但是某些处理器是用另外一种方式工作的。uC/O-SII被设计成两种情 况都可以处理,只要在结构常 量os_stk_groWth指定堆栈的生长方式就 可以了。置os_stk_grOWth o表示堆栈从下往上长。置os_stk_grOWth 1表示堆栈从上往下长。.用C语言编写6个操作系统相关的函数(OS_CPU_C.)COSTaskStklnitOSTaskCreate ()和 OSTt skCreateExt () 通过调用 OSTas
25、kStklnit () 来初始 化 任务的堆栈结构。因此,堆栈看起来就像刚发生过中断并将所有的寄存器保存到堆栈中的情形一样。图12-2显示了 OSTaskStklntO放到正被建立 的任务堆栈中 的东西。这里我们定义了堆栈是从上往下长的。在用户建立任务的时候,用户传递任务的地址,pdata指针,任务的堆 栈栈顶和任务的优先级给 OSTaskCreate ()和OSTaskCreateExt ()。一旦用户 初始化了堆 栈,OSTaskStklnitO就需要返回堆栈指针所指的地址。OSTaskCreate ()和OSTaskCreateExt ()会获得该地址并将它保存到任务控制块(OS_TCB
26、中)。OS_STK * OSTaskStklnit (void (*task) (void *pd), void *pdata., OS_STK *ptos, INT16U opt)/*装载堆栈指针/*装载堆栈指针*/ opt+;stk = (unsigned int *)ptos;/*为新任务建立堆栈*/ TOC o 1-5 h z -stk = (unsigned int) task; /*pc */12; /* rl2 */-stk = (unsigned int) task; /*lr */ *-stk12; /* rl2 */-tk = 11;/* r11 */ *-tk 二 10;
27、 /* rlO */一 stk = 9;/*r9 */一 stk =8;/*r8 */-stk = 7:/*r7*/*-stk = 6;/*r6 */-stk = 5;/*r5*/*-stk = 4;/*r4 */-stk = 3;/*/ *-stk 二 2;/*r2 */stk = 1; /* r1 */stk = (unsigned int) pdata; /* rO */一一 stk = (SUPMODE); /* cpsr */-stk = (SUPMODE); /* spsr */ return (OS_STK *)stk); OSTaskCreateHook当用 OSTaskCre
28、ate () 和 OSTaskCreateExt () 建立任务的时候就会调用OSTaskCreateHookQ该函数允许用户或使用移植实例的用户扩展U C/O-S II功能。当 u C/O-S II 设置完了自己的内部结构后,会在调用任务调度程序之前调用OSTaskCreateHookQ该函数被调用的时候中断是禁止的。因此用户应尽量减少该函数中的代码以缩短中断的响应时间。OS_TCB勺指当OSTaskCreateHookOOS_TCB勺指针,这样它就可以访问所有的结构成员了。函数原型:void OSTaskCreateHook (OS_TCB *ptcb)OSTaskDelHook当任务被删
29、除的时候就会调用OSTaskDelHook()。该函数在把任务从 U C/O-S II的内部任务链表中解开之前被调用。当OSTaskDelHook曦调用的 时候,它会收到指向正被删除任务的OS TCB勺指针,这样它就可以访问所有的结 构成员了。OSTaskDelHook ()可以来检验TCJB扩展是否被建立(一个非 空指针)并进行一些清除 操作。函数原型:void OSTaskDelHook (OS_TCB *ptcb) OSTaskSwHook当发生任务切换的时候就会调用OSTaskSwHook() OSTaskSwHoo画)以 直 接访问OSTCBCu和OSTCBHighRd, y因为它们
30、是全局变量。 OSTCBC指r向被切 换出去的 任务OS_TCBffi OSTCBHighRd指向新任务OS_TCBi意在 调用OSTaskSwHoo朝)间中 断一直是被禁止的。因此用户应尽量减少该函数 中的代码以缩短中断的响应时 间。函数原型:void OSTaskSwHook (void)OSTaskStatHookOSTaskStatHookO每秒钟都会被 OSTaskStat ()调用一次。用户可以用OSTaskStatHook() 来扩展统计功能。例如,用户可以保持并显示每个任务的 执行时 问,每个任务所用的CPU分额,以及每个任务执行的频率等。函数原型:void OSTaskSta
31、tHook (void)OSTimeTickHookO STimeTickHook0 在每个时钟节拍都会被OSTaskTickO 调用。实际上, OSTimeTickHook () 是在节拍被U C/O-S II 真正处 理,并通知用户的移植实例或应用程序之前被调用的。函数原型:void OSTimeTickHook (void)后5个函数为钩子函数,可以不加代码。只有当 OS_CFG.肝的OS_CPU_HOOKS_E置N为1时才会产生这些函数的代码。?用汇编语言编写4 个与处理器相关的函数 ( OS_CPU. AS)MOSStartHighRdy () ;运行优先级最高的就绪任务OSStar
32、tHighRdyLDR r4, addr_OSTCBCur ;得到当前任务 TCB地址LDR r5, addr_OSTCBHighRdy ;得到日勺高优先级任务 TCB地址LDR r5, r5 ; 获得堆栈指针LDR sp, r5 ; 转移到新的堆栈中STR r5, r4;设置新的当前任务TCB地址LDMFD sp!, r4;MSR SPSR, r4 ;LDMFD sp!, r4 ; 从栈顶获得新的状态MSR CPSR, r4 ; CPSR 处于 SVC32Mod馥式OS_TASK_SW; () 任务级的任务切换函数OS_TASK_SWSTMFD sp!, lr ; 保存 pcSTMFDsp!
33、, lr STMFD;STMFDsp!, lr STMFD;保存lr;保存寄存器和返回地址保存当前的PSR呆存SPSRsp!, r0-rl2 MRS r4, CPSR STMFD sp!, r4 : MRS r4, SPSR STMFD sp!, r4; ; OSPrioCur = OSPrioHighRdy LDR r4, addr_OSPrioCur LDR r5, addr_OSPrioHighRdy LDRB r6, r5 STRB r6,r4;得到当前任务TCB地址LDR r4, addr_OSTCBCur LDR r5,r4STR sp, r5;保存sp在被占先的任务的TCB;得到
34、最高优先级任务TCB 地址 LDR r6, addr_OSTCBHighRdy LDR r6, Er6 LDR sp,r6;得至U新任务堆栈指针;OSTCBCu二 OSTCBHighRdy STR r6, r4;保存任务方式寄存器LDMFD sp!, r4 MSR SPSR, r4 LDMFD sp!, r4 MSR CPSR,r4 ;返回到新任务的上下文LDMFD sp!, r0-rl2, lr, pc设置新的当前任务的TCB地址OSIntCtxSwO ;中断级的任务切换函数OSIntCtxSw add r7, sp, #16;保存寄存器指针LDR sp, =IRQStack ;FIQ_ST
35、ACK mrs rl, SPSRorr rl, rl, #0 xC0msr CPSR_cxsf, rlldr rO, r7, #52;LDR sp, =IRQStack ;FIQ_STACK mrs rl, SPSRorr rl, rl, #0 xC0msr CPSR_cxsf, rlldr rO, r7, #52;sub rO, rO, #4STMFD sp!, rOSTMFD sp!, lr;关闭 IRQ, FIQ.;转换模式(应该是 SVC_MODE从IRQ堆栈中得到IRQs LR (任务 nr*、;当前PC地址是(savecLLR - 4 );保存任务PC;保存LR从FIQ堆栈中得到保
36、存的寄存器 在任务堆栈中保存寄存器mov Ir, r7 ;保存 FIQ 堆栈 ptr in LR (转到 nuke r7 ) ;从FIQ堆栈中得到保存的寄存器 在任务堆栈中保存寄存器ldmfd lr!,r0rl2STMFDp!, r0rl2MRS r4, CPSRbic r4, r4, #OxCO;使中断位处于使能态STMFD sp!, r4:保存任务当前 PSRMRS r4, SPSRSTMFD sp!, r4; SPSR;OSPrioCur 二 OSPrioHighRdy / 改变当前程序LDR r4, addr_OSPrioCurLDR r5, addr_0SPrioHighRdyLDRB r6, r5 STRB r6, r4;得到被占先的任务 TCBLDR r4, addr_OSTCBCurLDR r5, r4STR sp, r5;保存sp在被占先的任务的TCB;得到新任务TCB地址LDR r6, addr_OSTCBHighRdyLDR r6, r6LDR sp, r6;得到新任务堆栈指针;OSTCBCur = OSTCBHighRdySTR r6, r4;设置新的当前任务的TCBtfc址
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第三单元英语课件
- 财政专业课件
- 财政知识下载课件
- 创作字谜课件
- 从种植到收获课件
- 实训八:光学相干层析成像技术与应用
- 小学二年级美术教学设计《垃圾分类小妙招》
- 高三物理动态电路计算专题教学设计
- 初中七年级心理健康教学设计朋友多多快乐多多
- 初中九年级英语教学设计:上册核心短语深度内化与迁移运用训练
- 银川创投集团全资子公司银川商功人工智能科技有限公司公开招聘人工智能工程师等专业技术人员笔试备考试题及答案解析
- 血管内导管相关性血流感染预防与诊治指南
- 2026榆林能源集团有限公司招聘工作人员笔试参考题库及答案
- 麻醉应急预案措施方案(3篇)
- 2027贵州航天电器秋季招聘284人考试参考题库及答案解析
- 2026年秋季开学高三拒绝躺平心理减压课件
- 考研形近易混词汇 (二)
- 矿产资源勘查实施方案编写提纲及解读
- 2026年艾滋病知识竞赛试题及答案
- 《水的净化》课件
- 2026年6月英语六级真题(第一套)及答案解析
评论
0/150
提交评论