ipcm 核间通信相关 ---(1)

IPCM(内部处理器通信消息)是一种在多核处理器间利用共享内存进行通信的方法。它通过mmap()或ioremap()映射内存,实现信号数据交换。驱动层负责映射共享内存、状态保存及握手过程。连接建立时,会检查对端CPU状态,创建handle以确保稳定通信。此外,还包括内核线程、定时器、VFS接口以及资源管理和连接的握手建立与断开。
摘要由CSDN通过智能技术生成

ipcm 全称: internal processor communcation message 

翻译为: 在多核间使用消息通信,其工作原理是通过mmap()或ioremap() 实现一段共享内存,使用该共享内存,就可以实现信号数据的交互。

 

IPCM driver层:实现如下功能,一步一步如下。

  1. 共享内存的映射,当两个cpu都映射则共享内存建立完成。
  2. 保存对端cpu的状态,g_ipcm_nodes[target].state = alive 进行发送握手。

握手成功后,创建handle。基于此handle来保证稳定通讯,否则容易出错。

struct ipcm_node g_ipcm_nodes[MAX_NODES] = {0};

 

在建立连接时,读取对端cpu的g_ipcm_desc.state 来判断对端是否alive,再决定是否建立连接。

  1. 创建读取消息到hios_mem_list链表的内核线程 & 定时器线程定时唤醒内核读消息线程
  2. VFS接口实现,open/ioctl/read/write/poll/release

打开设备节点,初始化handle,从hios_mem_list读取消息,将消息写入共享内存中

  1. 资源的回收,已经参数检查性处理。——需要严格一一对应,特别花时间。

 

6、用握手的方式,建立连接和断开连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值