




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课程设计(大作业)报告课程名称:嵌入式操作系统 设计题目:MQX基本要素综合项目 院 系: 设 计 者昆明学院信息技术学院课程设计(大作业)报告摘要 MQX已经走过了20多年的发展历程,基于MQX的产品已达数百万。飞思卡尔于2009年收购MQX,并推出第一个版本MQX-RTOS3.0.1后,对其功能进行了不断加强,MQX是一款免费、开源、有技术支持,面向工业控制、医疗电子、家用电器等领域的嵌入式实时操作系统。MQX具有学习难度低,开发工具强,外设驱动丰富,内核精简、架构清晰、实时性强、应用范围广等特点。与Linux相比,Linux的MMU、OpenGL功能强大,占用资源多,而MQX内核精简、
2、效率高、实时性强,更适合工业控制、医疗电子、家用电器等领域。因此,选用MQX作为RTOS的学习蓝本,不仅入门难度小,且实际应用的可行性大。关键词: MQX、内核精简、实时性强、效率高。目录一、题目分析1二、MQX的介绍及说明1三、各任务的主要功能介绍2四、系统框图3五、程序代码及分析4六、运行结果5七、总结5七、参考文献5课程设计(大作业)报告1、 题目分析MQX基本要素综合项目,主要介绍一个包含MQX基本要素综合项目的设计过程,主要分为几个部分,介绍对模块引脚做统一说明,介绍中断服务例程ISR的功能设计与任务的功能设计,介绍PC与MCU通信帧协议,包含帧格式和帧命令,给出MCU方主要任务的代
3、码实现,PC程序的界面。需求分析:将设计一个实例来验证SD-FSL-K60-C评估板各个模块的硬件功能,需要包含任务、中断、驱动、轻量级事件、轻量级信号量、轻量级消息队列、轻量级日志等基本要素。为区分不同的功能单元并确保数据的完整性,需要以组帧的方式完成数据的双向传输。具体实现可通过串口发送相应的帧数据来控制具体的模块。基于以上需求,可运用以上基本要素来实现对LED、UART、ADC、RTC、Flash等几个模块的测试,其中LED模块控制板上的4盏小灯,UART模块实现串口的发送接收,ADC模块实现AD采样,RTC模块实现实时对时,Flash模块实现Flash的读取。2、 MQX的介绍及说明1
4、、介绍:本部分对程序中所使用的LED,ADC,RTC,Flash,UART几个模块的引脚做统一说明。2、MQX的特点:(1)实时性高。MQX提供高效的任务调度、内存管理等功能。MQX采用基于优先级的、抢占式调度策略。带有最优化上下文切换和中断处理,用于实现快速、高效的预测响应时间,具有高实时性。(2)内核精简。MQX采用微内核结构,代码最小为16KB,RAM最小开销为2KB,对硬件系统开销较小;可以根据需要添加可定制组件,具有直接应用编程接口API、高度模块化架构,能够很好地满足各种不同应用需求。(3)内核免费且有技术支持。MQX内核完全免费,开放源码,成本低,软件资源丰富。(4)开发工具成熟
5、、外设驱动丰富。(5)性价比高。3、硬件说明: LED:LED1的外接引脚为PTB6,LED2的外接引脚为PTB7,LED3的外接引脚为PTB8,LED4的外接引脚为PTB9。 ADC:因外接引脚较多,ADC0模块的14通道为PTC0,ADC1模块的17通道为PTA17,K60芯片温度传感器内接ADC0模块的26通道。 RTC:要使RTC模块能够正确运行,首先要把K60_C型板反面上的32.768kHz晶振旁边的R8电阻去掉。 Flash:在默认情况下,程序中有关 Flash读写操作的 Flash区域是在 Flash的块0的最后若干字节,使用的长度取决于 Flash模块的帧数据内容。 Flas
6、h分为块0和块1,均为256KB,块0的范围是0x00000000-0x0003FFFF。 UART:发送引脚为PTE24,接收引脚为PTE25。3、 各任务的主要功能介绍1、主任务(task_main):完成全局变量初始化(如轻量级信号量)、外设初始化、创建其他任务、安装用户ISR。2、LED任务(task_run_LED)主要功能是用以控制K60-C板上的4盏LED灯。首先解析发给LED模块的帧命令,控制K60-C板上的4盏LED灯的某一盏。本任务中运用了轻量级日志,先将这6个32位的数据逐一写入一则日志条目中,再从该日志中将数据读取出来放入一个局部变量的数组中,最后将数据放入轻量级发送消
7、息队列中。3、解帧任务(task_decode):将由串口4接收到的完整帧数据分别复制到LED模块、ADC模块、RTC模块和Flash模块各自的缓冲区,并设置各个模块任务的事件位。4、UART任务(task_run_UART):为了防止帧数据包含帧尾类型的数据,要对帧数据增加转义字符。本任务从轻量级发送消息队列中取出数据,然后调用转义函数对其增加转义字符。把各个任务的存放数据的全局数组元素定义为32位,是因为MQX提供的轻量级消息队列操作的数据单位为32位。5、ADC任务(task_run_ADC):主要功能是通道初始化和AD数据采集。根据帧数据中与ADC模块相关的命令字段来区分是通道初始化操
8、作还是AD数据采集操作。通道初始化操作的模块号与通道号来自PC界面的选项,在默认情况下,采样位数定为16位,采样次数为10次。AD数据采集操作将从最新初始化过的AD通道中采样数据,并在该操作的最后,将采样数据放入轻量级发送消息队列中。6、RTC任务(task_run_RTC):主要功能是时间对表和回发当前RTC时间。这两种操作实际上操纵的都是相对于公共参考时间的相对秒数,只是PC把相对秒数转换过后显示绝对时间,时间对表也不回发数据,对表正确性与否可通过回发当前RTC时间操作在PC的显示的时间信息来判断。在该任务最后,将实时时钟的相关帧数据放入轻量级发送消息队列中。7、Flash任务(task_
9、run_FLASH):主要功能是向Flash读取数据,在该例子中Flash功能较为简单,不提供Flash随机读写。读写操作的Flash区域是在Flash的块0的最后若干字节,长度取决于Flash模块的帧数据内容。四、系统框图系统框图12. 帧格式:帧头帧长模块编码有效数据帧尾命令编码命令参数1B1B1B1BNB1B各字段的含义现介绍如下:帧头:0xAA。帧长:包括帧头、帧长、模块编号、有效数据、帧尾五个部分在内的所有字节总数。模块编号:0x01、0x02、0x03、0x04分别对应LED、ADC、RTC、Flash。有效数据:每一个模块以不同的操作来区分不同的命令,长度根据模块的使用情况而定。
10、帧尾:0x55。MCU仅在把数据回发给PC时增加了转义字符,以提高PC解析MCU数据帧的速度,程序中转义字符约定为0xA5。帧数据中除帧头、帧尾之外,如果遇到0xAA、0xA5、0x55,就在这几个数据之前增加一个0x55,以区别帧头、转义、之外。而PC在将帧数据发给MCU时并不增加转义字符。 五、程序代码及分析改进后的代码:switch(gLED_Buff4) case 0x01:light_control(Light_D1,LIGHT_OFF); / 设定为高电平light_control(Light_D2,LIGHT_ON);light_control(Light_D3,LIGHT_ON
11、);light_control(Light_D4,LIGHT_ON);break;case 0x02:light_control(Light_D1,LIGHT_ON);light_control(Light_D2,LIGHT_OFF); / 设定为高电平light_control(Light_D3,LIGHT_ON); light_control(Light_D4,LIGHT_ON); break; case 0x03: light_control(Light_D1,LIGHT_ON); light_control(Light_D2,LIGHT_ON);light_control(Light_
12、D3,LIGHT_OFF); light_control(Light_D4,LIGHT_ON);/light_control(Light_D3,LIGHT_OFF);break;case 0x04: light_control(Light_D1,LIGHT_ON); / 设定为高电平light_control(Light_D2,LIGHT_ON);light_control(Light_D3,LIGHT_ON); / 设定为高电平light_control(Light_D4,LIGHT_OFF); /light_control(Light_D4,LIGHT_OFF); break; defau
13、lt:break;思想分析:LED灯开始是全亮的,首先Light_D1关闭,则其余三个小灯都打开,因为是取反,所以当关闭的时候灯是亮的,其他的小灯也一样。1、串口4的ISR:设计串口4的ISR的目的是为了接收PC发来的数据帧,并将完整的数据帧传递给解帧任务。2、设计主任务的目的是完成解帧任务、LED任务、ADC任务、RTC任务、Flash任务、UART任务正常运行之前的准备工作。3、解析帧数据是发送给哪一个模块工作,如果放在串口4的ISR中完成,会大大降低串口4的组帧函数的重用性,为把该工作独立出来,增加一个解帧任务来完成。4、设计LED任务的目的是接收PC的命令,控制K60-C板上的4盏LE
14、D灯的亮暗。5、设计ADC任务的目的是为了控制ADC通道进行AD数据采集。6、设计RTC任务的目的是为了控制RTC模块计时。7、设计Flash任务的目的是为了控制Flash模块完成数据的写操作与读操作。8、设计UART任务的目的是为了测试UART4模块,同时完成将数据帧传递到轻量级消息队列的工作。六、运行结果七、总结 通过此次嵌入式操作系统课程设计,在课程设计期间,编写程序代码并进行修改。编写完成程序代码运行中出现了好多个错误和警告,与同学讨论之后改正了几个错误但是还存在错误没有修改完,后面又问了其他同学加上自己查阅资料,找出了错误的出处。在这次课程设计中让我更加的掌握了这门课程中平时所没有掌握的知识,并且能够把嵌入式操作系统很好的运用,也提高了我的知识领域。结束了两周的课程设计,也让我从课
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新疆轻工职业技术学院《寄生虫学检验》2023-2024学年第二学期期末试卷
- 永州师范高等专科学校《康复护理学》2023-2024学年第二学期期末试卷
- 南阳理工学院《医学营养学》2023-2024学年第一学期期末试卷
- 沈阳科技学院《口腔医学临床前技能训练(三)》2023-2024学年第二学期期末试卷
- 上海中华职业技术学院《短视频制作A》2023-2024学年第二学期期末试卷
- 秦皇岛职业技术学院《合唱排练法》2023-2024学年第二学期期末试卷
- 荆州理工职业学院《现代汉语语法专题研究》2023-2024学年第二学期期末试卷
- 金山职业技术学院《音乐专业导论》2023-2024学年第一学期期末试卷
- 山西应用科技学院《西方哲学通史》2023-2024学年第一学期期末试卷
- 南京特殊教育师范学院《食品感官鉴定实验》2023-2024学年第一学期期末试卷
- GB4053.3-2009固定式钢梯及平台安全要求第3部分:工业防护栏杆及钢平台
- 销售部长助理岗位职责
- ISOTS 22163专题培训考试
- 六年级下册数学课件-第4单元 比例 整理和复习 人教版(共21张PPT)
- JJF(鲁) 142-2022 称重式雨量计校准规范
- Adobe-Illustrator-(Ai)基础教程
- 程序的运行结果PPT学习教案
- 圆柱钢模计算书
- 合成宝石特征x
- 查摆问题及整改措施
- 年度研发费用专项审计报告模板(共22页)
评论
0/150
提交评论