2826|0

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

DSP的多核处理器的核间通信机制 [复制链接]

多核处理器由中断触发通信后,配置相应的寄存器,以完成通信。TMS320C6678主要的核间通信寄存器有16个, 其中8个IPC中断生成寄存器(IPCGR0~IPCGR7) 和8个IPC中断确认寄存器(IPCAR0~IPCAR7)。将IPC 中断生成寄存器IPCGRx(0≤x≤7) 的最后一位IPCG 位置1,就能产生对core_x 的中断;1~3位是保留位,4~31位(SRCS0~SRCS27)提供了可以识别多达28种的中断来源。IPC 中断确认寄存器IPCARx(0≤x≤7) 的0~3位是保留位,4~31 位(SRCC0~SRCC27)分别对应28种不同的中断来源。当SRCSx 被置1时,寄存器将相应的中断确认寄存器的SRCCx 位置1。当中断被确认后,寄存器将SRCCx和相应的SRCSx 位同时置0 。
当TMS320C6678的一个处理器核准备与其他处理器核通信时,根据TMS320C6678 的中断事件映射表, 引发91号事件,产生可屏蔽的核间中断, 调用中断服务例程。中断服务例程IPC_ISR 函数设计如下:
voidIPC_ISR()
{
KICK0= KICK0_UNLOCK;
KICK1= KICK1_UNLOCK;
*(volatileuint32_t *) IPCGR[2] = 0x20;
*(volatileuint32_t *) IPCGR [2] |= 1;
KICK0= KICK0_UNLOCK;
KICK1= KICK1_UNLOCK;
}
以向core_2 发送0x20 信息的中断为例,对应的0x20 的信息存入SRCS 位中, 用于识别中断源。同时将当前CPU 核心内的中断产生寄存器IPCGR2 的最后一位IPCG位置1, 触发IPC 中断。当目标处理器核被中断触发后,会自动跳转到中断异常向量表中相应的入口点,读取当前核心中断产生寄存器IPCGRx (0≤x≤7 ),从寄存器的SRCS 位中获取通信发起方传来的核间信息。然后将信息存入对应的中断确认寄存器IPCARx 中,清空SRCC 和相应的SRCS位, 用以接收下一次的核间中断。其中的KICK0 和KICK1 为陷阱控制寄存器, 用来避免通信冲突的发生。
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表