飞思卡尔MQX信号量学习

0?wx_fmt=gif

摘要

这篇笔记主要介绍飞思卡尔MQX实时操作系统信号量的学习,以IAR环境,以搭载飞思卡尔KV46MCU的官方塔式系统硬件开发板硬件平台。

信号量

MQX共有三种类型的信号量,轻量级信号量(Lightweight Semaphores),信号量(Semaphore),还有一种叫互斥量(Mutex).,信号量在其他的操作系统中也有,功能都差不多,主要用来同步任务,以及控制对共享资源的访问,互斥量主要用于任务独占共享资源的访问问题。轻量级信号量是MQX核心组件,无需配置加载就可使用,默认是使能的,而信号量是可选组件,需要先配置使能。

信号量的操作和使用函数主要有:

0?wx_fmt=jpeg

使用信号量可以按照如下的建议步骤

使能信号量组件

创建信号量

打开信号量连接

使用完信号量,释放信号量

例程学习

参照例程学习是最好的理解和掌握知识的方法,看再多的描述,不动手操作永远也学不会,建议各位猿友参照官方的例程和文档学习,市面上的书籍和资料有的都是翻译过来的,不如官方原版的参照性。

在最新版的SDK1.2里面集成了对MQX的支持,更好的消息是也包括对kv4xMCU的支持,我们一直在用这个系列MCU讲解相关的知识,建议大家安装1.2版本的,SDK里面的驱动可以直接使用,不用在开发。

在例程安装目录下找到信号量的例程,并打开,进行batch build 编译。

C:\Freescale\KSDK_1.2.0\rtos\mqx\mqx\examples\sem\build\iar\sem_twrkv46f150m

0?wx_fmt=jpeg

可以发现初始编译例程有错误

0?wx_fmt=jpeg这是因为信号量不像轻量级信号量是核心组件,信号量是可选组件,需要先使能该组件,按照编译提示修改代码

将small_ram_config.h中第118行的定义修改为1使能信号量组件

0?wx_fmt=jpeg再次重新编译工程,可以看到编译通过,没有错误,如下显示

0?wx_fmt=jpeg打开串口终端,并设置为115200,N,8,1的配置,下载运行程序

0?wx_fmt=jpeg

0?wx_fmt=jpeg先在例程的指引下学会信号量的使用,像之前我们学习event的使用一样,在学习完这些组件后,我们会建立自己的工程。如果各位猿友还有什么不清楚的可以参考官方说明文档,这里不在赘述,这里要提的一点是查看观察下工程的配置,因为我们在前面的很多课程中都提高配置说明,所以这里不在详细说明,但自己一定要会配置,如果是自己开发搭建工程,配置不正确,那么后面的编译就别提了。

嵌入式

程序猿

微信号:InterruptISR

嵌入式程序猿致力于打造程序猿工程师交流分享的精品移动平台,欢迎各位猿友加入和分享。微信搜索嵌入式程序猿添加关注,或者长按下方二维码,选择识别图中二维码添加关注。

0?wx_fmt=jpeg

0?wx_fmt=jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
目 录 第一章 前言 .................................................................................................... 1 1.1 关于MQX .............................................................................................. 1 1.2 关于本手册 ............................................................................................ 1 1.3 3.0和2.50版本的新特点 ...................................................................... 2 1.4 约定 ........................................................................................................ 4 1.4.1 提示 ................................................................................................ 4 1.4.2 注释 ................................................................................................ 4 1.4.3 注意事项 ......................................................................................... 4 第二章 MQX概述 .......................................................................................... 5 2.1 MQX的组织结构 .................................................................................. 5 2.2 初始化 .................................................................................................... 6 2.3 任务管理 ................................................................................................ 6 2.4 调度 ........................................................................................................ 7 2.5 存储管理 ................................................................................................ 7 2.5.1 可变大小存储块管理 ..................................................................... 7 2.5.2 固定大小存储块管理(区块) ..................................................... 7 2.5.3 高速缓存控制 ................................................................................. 8 2.5.4 存储器管理单元(MMU)控制 ................................................... 8 2.5.5 轻级存储管理 ............................................................................. 8 2.6 任务同步 ....................................................................
对于初学者想要学习尔(Freescale)单片机,可以按照以下学习路线进行: 1. 学习基础电子知识:了解电子元件、电路原理、数字电路和模拟电路等基础知识。 2. 掌握C语言编程:尔单片机主要使用C语言进行编程,因此需要学习C语言的基础语法、数据类型、流程控制和函数等知识。 3. 了解单片机架构和特性:熟悉尔单片机的架构和特性,包括中央处理器、存储器、输入输出通道以及时钟系统等。 4. 学习尔开发工具:掌握尔开发工具,如CodeWarrior、Kinetis Design Studio等,在开发环境中进行代码编辑、编译、下载和调试等操作。 5. 学习外设驱动编程:了解尔单片机常用的外设,如GPIO(通用输入输出)、UART(串行通信)、SPI(串行外设接口)和I2C(串行总线)等,并学习如何通过编程控制这些外设。 6. 进行实际项目开发:选择一些简单的项目,如LED灯控制、蜂鸣器控制或者温度传感器读取等,通过实际项目的开发来巩固所学知识。 7. 深入学习高级特性:进一步学习尔单片机的高级特性,如中断、定时器、PWM(脉宽调制)和ADC(模数转换)等。 8. 参考资料和实战经验:除了学习教材和在线资源,还可以参考尔官方文档和论坛,以及与其他开发者交流经验。 请注意,这只是一个基本的学习路线,具体的学习内容和进度还需要根据个人的实际情况和学习目标进行调整。祝您学习顺利!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值