独望枫

人在尘世间,有缘自相见,变化千千万,未开窍,已迷恋
posts - 43, comments - 0, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

FreeRTOS 线程间通信之事件

Posted on 2021-07-14 02:20 小菜枫 阅读(292) 评论(0)  编辑 收藏 引用 所属分类: 学习笔记
事件依赖于动态申请内存,只要开启了该宏,事件相关的功能同时被开启,但如果要使用事件相关的宏/函数,还需要添加对应的头文件

1、添加头文件


2、声明事件句柄和创建事件



3、创建事件示例的线程:
线程1:阻塞3S,发送事件1(1<<0);然后阻塞3S,发送事件4(1<<3);然后阻塞3S,发送事件6(1<<5);重复循环
线程2:等待事件1或者事件4,超时时间为10S,读取事件后不清除
线程3:等待事件1以及事件6,最大超时事件(阻塞式)

这样一来,理论上线程2接收到任意事件都会唤醒执行,并且存在超时的可能;线程3则需要满足两个事件都触发才会唤醒执行




4、烧写验证


--------------------------TODO:只释放,不获取事件,上述的示例会导致系统卡死

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理