前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >飞思卡尔MQX信号量学习

飞思卡尔MQX信号量学习

作者头像
用户1605515
发布2018-04-10 11:35:39
6890
发布2018-04-10 11:35:39
举报
摘要

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

信号量

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

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

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

使能信号量组件

创建信号量

打开信号量连接

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

例程学习

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

在最新版的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

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

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

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

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

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

从例程源码中可以看出信号量的使用,源码中创建了三个相同优先级的任务来说明信号量的工作过程。

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档