打印
[AT32 WorkBench]

AT32 WorkBench常用功能27--FreeRTOS信号量使用介绍

[复制链接]
218|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 muyichuan2012 于 2025-1-2 19:23 编辑

AT32WorkBench常用功能27
--FreeRTOS信号量使用介绍

FreeRTOS信号量使用介绍
本文主要介绍如何基于AT32 WorkBench配置FreeRTOS信号量

硬件环境
l  AT-START-F437
l  下载线缆

软件环境
l  AT32 Workbench
l  MDK5

信号量介绍
使用信号量的最初目的是为了给共享资源建立一个标志,该标志表示该共享资源被占用情况。

这样,当一个任务在访问共享资源之前,就可以先对这个标志进行查询,从而在了解资源被占用的情况之后,再来决定自己的行为。

配置步骤:
1.    打开AT32 WorkBench新建AT32F437工程
      

2.    在中间件中打开FREERTOS并在模式窗口中勾选启用。此时FreeRTOS会有一个默认的配置,并生成一个my_task01任务。
      
3.    在配置框内点击“计数型信号量”,会出现信号量创建窗口,如下:
      

      点击“添加”即可创建计数型信号量(二值信号量与计数型信号量类似,区别在与计数型信号量可以配置信号量获取次数,
      但二值信号量默认只能获取一次,想要再获取需要等前一次获取的信号量释放掉才可以)。
      信号量名称:默认为my_counting_semxxx(xx为数字,依次增加),用户可以任意修改信号量名称
      最大数量:计数型信号量可获取最大次数
      初始化数量:初始化可获取计数型信号量次数
      分配:动态或者静态
      信号量数组:选择静态内存分配时有效;StaticSemaphore_t类型变量,用于保存信号量状态.

4.    点击生成代码按钮,选择MDK5;便可生成FreeRTOS工程,生成代码在freertos_app.c/.h文件内
      
5.    打开生成工程,结构目录如下
      


      freertos_app.c内为workbench生成的关于FreeRTOS的应用层代码,包括任务的创建,计数型信号量的创建、任务入口函数等。

6.    下面进行试验验证,提前打开串口1打印功能(在“模块分类”中打开USART1,选择“异步模式”;
      然后在SYSTEM中将“串口打印”选择为USART1即可),在任务中添加计数型信号量获取情况和打印信息,如下:
      
7.    编译,下载到对应开发板,打开串口助手
      

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

206

主题

1932

帖子

30

粉丝