《嵌入式操作系统及ARM Cortex-MO》课件第七章.pptx

《嵌入式操作系统及ARM Cortex-MO》课件第七章.pptx

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第七章 μc/OS-Ⅱ信号量与互斥信号量; 在项目ZLX08的基础上新建项目ZLX09,保存在目录D:\ZLXLPC824\ZLX09下,此时的项目ZLX09

与ZLX08相同。新建文件task02.c、task02.h、task03.c和task03.h,保存在目录

D:\ZLXLPC824\ZLX09\User目录下,然后修改文件includes.h、task01.c和task01.h。将

task02.c和task03.c添加到工程的USER分组下,完成后的项目工作界面如图7-1所示。

图7-1 项目ZLX09工作界面

; 由图7-1可知,项目ZLX09包括3个用户任务,即Task01、Task02和Task03,以及3个系统任务,

即空闲任务、统计任务和定时器任务,各个任务的信息如表7-1所示。

表7-1 项目ZLX09包含的任务的信息

表7-1中,3个系统任务的任务函数名、ID号和堆栈名是由μC/OS-Ⅱ指定的,而优先级号和堆

栈大小由用户配置的,表中堆栈的大小以字为单位,每个字等于4个字节。这里,用户任务

Task01通过串口向上位机发送一些项目执行信息,即反馈给用户项目的执行情况。用户任务

Task02用于周期性地释放信号量Sem01,用户任务Task03始终请求信号量Sem01,从而同步

Task02的执行。

; 项目ZLX09的执行流程如图7-2所示。

图7-2 项目ZLX09的执行流程

; 由图7-2可知,项目ZLX09共有6个任务,其中用户任务3个,即Task01、Task02和Task03,系统

任务3个,即空闲任务、统计任务和定时器任务。在main函数中创建第一个用户任务Task01,然

后开启多任务。在用户任务Task01中创建信号量Sem01和用户任务Task02和Task03,一般地,在

基于μC/OS-Ⅱ系统的多任务应用程序中,在第一个用户任务中创建工程中用到的事件和其他

的用户任务。在启动多任务后,用户任务Task01每3秒执行一次,通过串口向上位机输出工程中

的任务总个数、每秒任务切换数和CPU利用率等信息;用户任务Task02每1秒执行一次,释放信

号量Sem01;用户任务Task03始终请求信号量Sem01,当信号量Sem01的值为0时,处于等待态,如

果信号量Sem01的值大于0或有任务正在释放信号量Sem01,则用户任务Task03进入就绪态,如果

Task03是工程中就绪的最高优先级任务,则Task03将获得CPU使用权而进入执行态,通过串口向

上位机发送信息“Running...”。由于信号量Sem01是由任务Task02每1秒释放一次的,因

此,Task03每1秒执行一次,即通过信号量Sem01任务Task03的运行与Task02同步。

回到图7-1所示界面,编译链接并运行项目ZLX09,计算机串口调试助手的显示信息如图7-3所

示。

图7-3显示的项目ZLX09中共有6个任务,每秒任务的切换次数为33次(用户任务Task01每3秒

切换一次,Task02和Task03均为每1秒切换1次,统计任务每1秒切换10次,定时器任务每1秒切换

10次,空闲任务每1秒约切换10次,共计约33次),CPU使用率为1%,优先级号为4的用户任务

Task01的堆栈使用了148字节,空闲172字节。

图7-3请看下页

;

图7-3 计算机串口调试助手显示信息

; 嵌入式控制系统中最常用的部件是按键和七段数码管,用作系统的输入设备和输出设备,

ZLG7289B为专用于驱动按键和数码管的芯片。一片ZLG7289B可同时驱动64个按键和8个七段数

码管(即64个LED灯)。LPC824学习板上集成了一片ZLG7289B芯片,驱动了16个按键、8个LED灯

和一个四合一七段数码管,电路原理图参考第3.7节。

ZLG7289B芯片管脚布局如图7-4所示。

图7-4 ZLG7289B芯片管脚布局

; 图7-4中各个管脚的作用如表7-2所示。

表7-2 ZLG7289B芯片各个管脚的含义

; 表7-2中的“数码管段选信号”是指用于驱动七段数码管中的某个段的控制信号,一般连接

到数码管的8个段控制管脚的某一脚上(8个段控制管脚为a、b、c、d、e、f、g和小数点

dp);“数码管字选信号”也常被称为“数码管位选信号”,是指用于驱动单个数码管的控制信

号,一般连接到数码管的公共有效端,由于ZLG7289B只能驱动共阴式数码管,所以数码管字选信

号连接到单个数码管的阴极公共端。图7-5示意了七段数码管各个段的位置。

图7-5 七段数码管各个段的显示位置; 结合第三章3.1节和3.7-节可知在LPC824学习板上,ZLG7289B通过四根总线与LPC824微控制

器相连接,这四根总线的连接方式为:Z

文档评论(0)

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

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

1亿VIP精品文档

相关文档