基于OSEck系统的TI C66x DSP进程间的三种通信机制
来源:互联网 发布:windows版icloud 编辑:程序博客网 时间:2024/06/08 02:16
TI C66x DSP平台运行在OSEck系统上,这样存在的进程间的通信方式有以下几种:
1,DSP的同一个core内的不同进程间的通信
这种通信属于core内通信,将会使用OSEck系统提供的系统调用函数,send与receive,A进程调用send函数,将消息发往B进程,消息(在OSEck系统中是signal,signal结构体包括message ID,message接收进程的PID,message的payload指针)的指针将作为send函数的参数,在send函数内部将会把消息挂载到进程B的signal list上,并判断是否需要切换到进程B(基于抢占式调度);进程B中调用receive函数接收signal,当检测到B的signal list上已有siganl,进程就可开始处理signal(抢占式调度满足条件时,B进程才可以从ready状态切换到running状态)。这种通信由OSEck系统的系统调用函数实现,不需要DSP平台参与。
2,DSP不同core间的进程间通信
这种通信属于跨core通信,将利用C66x DSP的协处理器Queue Manager(C66x系列DSP才有该协处理器,同一个DSP内的所有core共享该硬件,其原理详见TI 多核导航user guide),coreA内运行的B进程与coreC内运行的D进程通信,首先A进程将指向消息payload以及接收消息进程信息的descriptor push到queue manager的queue E,在coreC的DSP 平台进程中将会监控queue E(监控条件如可以是queue E内的descriptor数,监控queue的功能也由queue manager硬件提供,通过配置相关寄存器实现,无需软件参与),当监控条件满足时,将会产生中断(事先已经注册好中断,与event F触发),在中断函数中,从queue E中pop出descriptor,并从中提取出接收进程的pid,然后下面的事情就是core内通信了,在中断函数中调用send函数,将消息发给D进程。从而事先跨core的不同进程间的通信。
3,不同DSP间的进程通信
这种通信方式将会利用DSP的SRIO硬件实现,DSP A中coreB的C进程与DSP D中coreE的F进程通信,也将利用queue manager硬件,在C66x DSP的SRIO硬件中,其对外提供的接口只有queue,即C进程必须把descriptor push到queue G(SRIO的输入queue,在user guide中,SRIO的输入queue numer是固定的),然后F进程通过SRIO通信机制拿到descriptor,进而完成跨DSP通信。
这里只是简要介绍这三种通信机制,在以后文章中将会详细讨论。
- 基于OSEck系统的TI C66x DSP进程间的三种通信机制
- TI C66x DSP 系统events及其应用 - 5.10(创建ISR的三种情况)
- TI C66x DSP 系统events及其应用 - 5.1(QM accumulator的配置)
- TI C66x DSP 系统events及其应用 - 5.12(vector的创建)
- TI C66x DSP QM queue的reserve方法
- TI C66x DSP 四种内存保护问题 -之- 外设访问corePac内部资源时的内存保护问题
- TI C66x DSP 四种内存保护问题 -之- CPU访问corePac内部资源时的内存保护问题
- TI C66x DSP 系统events及其应用 - 1
- TI C66x DSP 系统events及其应用 - 2
- TI C66x DSP 系统events及其应用 - 3
- TI C66x DSP 系统events及其应用 - 5.3(Interrupt)
- TI C66x DSP 系统events及其应用 - 5.6(INTMUX)
- TI C66x DSP 系统events及其应用 - 5.7(IST)
- TI C66x DSP 系统events及其应用 - 5.8(ISTP)
- TI C66x DSP ETB功能
- TI C66x DSP 四种内存保护问题
- 基于TI的C55XX系列DSP芯片上McBSP的UART通信(无DMA)
- TI C66x DSP 四种内存保护问题 -之- 针对CPU访问外存(DDR3 or MSM)时的内存保护问题
- 一定不能再让CSDN博客长草了。
- 【存储管理】物理页面的使用和周转
- MOUNT挂载设备
- 在iOS项目中使用FMDataBase
- VC中tab控件的使用
- 基于OSEck系统的TI C66x DSP进程间的三种通信机制
- C++多态和虚函数
- java面试题inti=2;i+=i-=i*i的值以及关于i++;++i;i=i+1;i+=1 的效率问题
- Linux11-Linux系统用户管理和用户组管理
- 关于TOleContainer在新窗体显示,并禁止工具条的方法,
- 构建Hadoop 2.2.0
- 删数 贪心
- 2013-2014计算机核心期刊排名
- poj1005——I Think I Need a Houseboat