硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1169|回复: 5
收起左侧

[技术讨论] event(事件广播机制)

[复制链接]

3

主题

13

回帖

27

积分

新手上路

积分
27
发表于 2022-2-16 16:09:28 | 显示全部楼层 |阅读模式
对于模块化编程来说,如何实现各模块间的解耦一直是一个比较令人头疼的问题,特别是对于嵌入式编程,由于控制逻辑复杂,并且对程序体积有控制,经常容易写出各独立模块之间相互调用的问题。
因此通过 event 组件的广播事件机制, 提供了一种模块间解耦的实现方法 (也可以对前后台应用提供了一种新的框架需求)
(目前有2个版本, 一个不支持事件消息传递, 一个支持事件消息传递)
(51内核 请切换分支到 51-kernel)

欢迎大家测试反馈问题

gitee: https://gitee.com/Lin_g/event

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
发表于 2022-2-16 16:39:39 | 显示全部楼层
简单看了下,你当前这个中断里面发送消息的话,任务里面查询状态?
回复

使用道具 举报

3

主题

13

回帖

27

积分

新手上路

积分
27
 楼主| 发表于 2022-2-16 16:45:00 | 显示全部楼层
eric2013 发表于 2022-2-16 16:39
简单看了下,你当前这个中断里面发送消息的话,任务里面查询状态?

如果导出的是同步方式的话, 是在广播事件的时候就执行回调函数了
如果导出的是异步方式的话, 是在广播事件后, 在主函数里调用的(Event_AsynchCallback() 函数里调用回调函数)
回复

使用道具 举报

3

主题

13

回帖

27

积分

新手上路

积分
27
 楼主| 发表于 2022-2-16 16:52:17 | 显示全部楼层
eric2013 发表于 2022-2-16 16:39
简单看了下,你当前这个中断里面发送消息的话,任务里面查询状态?

需要看注册的方式
注册的是同步方式, 是在广播事件时就调用了回调函数
注册的是异步方式, 是在广播事件后, 主函数调用了回调函数(Event_AsynchCallback() 函数里面执行回调)
回复

使用道具 举报

4

主题

4

回帖

16

积分

新手上路

积分
16
发表于 2022-5-1 17:21:53 | 显示全部楼层
缺少事件缓存机制,不能处理多个相同事件,可以参考contiki的事件处理机制。
回复

使用道具 举报

1

主题

24

回帖

27

积分

新手上路

积分
27
发表于 2022-6-5 21:44:08 | 显示全部楼层
模块相互调用这种情况,可以通过事件机制来做到相互调用,也就是通过底层驱动给应用层发消息,告诉应用层要调用哪个底层模块,之后应用层在直接调用该底层模块的接口!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-26 21:38 , Processed in 0.165793 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表