基于 marvell 的 OMCI SDK 内部使用的进程间通讯
1、OMCI SDK 内部进程间通讯的用途:
编译之后,可最多生成 个应用程序,即便去除 、语音、组播、、示范
进程等等业务性质的或不必需的应用程序,也至少需要 、、 这 个应用
程序,其中 进程负责接收 报文和特殊事件并处理, 进程负向上接收
进程的指令以及向下完成相应的硬件配置; 进程负责各类报警、统计项的查询处
理上报;另一方面,报文的处理并非是按照一个完全固定的顺序进行,如不是所有的报文
都需要 进程处理后再发给 进程处理,它可能直接配置硬件,而某些其他进程
也许在一些异步事件触发后也会发给 进程处理或直接配置硬件等等,所以对于某
些重要进程的资源,如 进程的 数据库以及一些业务进程的硬件资源,需要避
免被同时访问,需要一个互斥机制。
原先 提供了一个进程间通讯的机制,基于 的消息队列为基础。由于一些原
因我们当前的内核对其支持不好,所以需要对其进行整改,改为基于 的消息队列。
消息队列的报文结构要求如下:
! "#
$
%&# '((((((((((((((((((((((((((((((((((((((((((((((((((((((消息类型
#"%'(((((((((((((((((((((((((((((((((((((((((消息内容
)"#"'
的整改就是基于 消息队列的消息类型以及消息内容中封装的其他信息为
基础,实现了一个相对实用的多进程通讯方式。
2、OMCI SDK 内部进程间通讯描述:
2.1、MIPC 相关代码:
的进程间通讯命名为 ,整改后代码目录如下图: