【SemiDrive源码分析】【X9芯片启动流程】20 - MailBox 核间通信机制介绍(代码分析篇)之 MailBox for RTOS 篇
- 一、Mailbox for RTOS 源码分析
-
- 1.1 示例程序 mailbox_msg.c 源码分析
- 1.2 High Level Driver 源码分析:偏上层接口封装部分
-
- 1.2.1 hal_mb_create_handle():初始化g_hal_mbox结构体,初始化g_mb_ctl结构体,注册mbox的中断及中断处理函数用于接收数据
- 1.2.2 hal_mb_init():空函数
- 1.2.3 hal_mb_get_client_with_addr():初始化 g_hal_mbox->cl[0] 结构体
- 1.2.4 hal_mb_request_channel_with_addr():配置rx_new_data接收函数,申请MBOX_TX_BUF_SZ大小的发送缓冲区配置在cl->mchan.msg_data中,在 cl->mchan中 配置远端rproc号及对应address地址,建立channel链路,配置在g_mb_ctl全局结构体中
- 1.2.5 hal_mb_send_data():封装数据并发送,通过判断 `BM_TMC0_TMC0_MSG_SEND` 奇存器是否为0来确定对端是否接收成功
- 1.2.6 hal_mb_free_channel() 与 hal_mb_put_client() :释放han->hwchan 硬件链路信息、msg申请的内存空间,清空cl结构体相关的信息
- 1.3 Low Level Driver 源码分析:偏底层协议实现部分
- 1.4 hal_mb_release_handle():释放`g_mb_ctl`、`g_hal_mbox`、`mbox_handle` 相关内存
- 1.5 RTOS MailBox 实现代码总结
本 SemiDrive源码分析 之 Yocto源码分析 系列文章汇总如下: