关于基于ARM cortex-r5的Marvell1093r2主控的IPC通信心得

接触Marvell的ARM内核平台已有小半年。最近一个项目是三核的架构,需要用到较多的IPC知识,经过这两天的学习,稍有了解,记录也是分享如下。

就1093r2平台而言,IPC模块主要通过(interrupt_enable+interrupt_status+interrupt_clear)*3以及(desc_Ctrl+desc_content)*32这几个寄存器组成。

其中中断系列的寄存器就不用详细介绍了,负责中断状态以及相关处理的功能。至于desc是该平台IPC模块非常重要的处理手段,Ctrl寄存器主要负责记录次数desc_num和mode的选择。这里的mode一共有signal mode和call back mode两种。下面首先阐述一下这两种mode的区别和作用。

首先是signal模式,所谓signal模式就是相当于只要发送消息就可以产生一个IPC中断。

具体而言,每个DESC[0-31]有一个当前的owner cpu,这个owner cpu取决于开启该DESC中断的cpu。而此时当任意一个cpu向该DESC发送一条指令,则其owner cpu将收到一条中断。

其次,是callback模式,callback模式的DESC最后两位为target cpu的标志。callback模式具有signal模式的功能,并且当target cpu读取该DESC时也将收到一条中断。也就是说具有write和read两种中断。

目前比较常用的中断服务一般为计数++,还有设置一个flag变量来通知对应的cpu完成一定的动作。

此外,在具体的内存中,还在Share TCM中放置了callback的消息队列,共有6组,分别供0,1,2相互使用读取写入。

pause0----------------------------------------------20151223

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值