TMS320F28388D 的 IPC程序使用
IPC主要的作用是:
处理器之间的数据通信
本例背景
F28388D中的CPU1核与CM4核之间的简单数据通信。
本例主要是从CPU1向CM4核发送数据。
可以在之前的以太网通信例程中,加入IPC程序。
程序来源
IPC程序借鉴于C2000 WARE例程中的ipc_ex1_basic_c28x1.c与ipc_ex1_basic_cm.c
路径为:
C:\ti\c2000\C2000Ware_3_04_00_00\driverlib\f2838x\examples\c28x_cm\ipc
(例程给的特别好,稍微改一下,自己就可以用上了)
程序结构
两部分组成:
第一部分:
完成CPU1核中的IPC发送程序
(将上面的ipc_ex1_basic_c28x1.c程序移植进自己的CPU1核的例程中)
第二部分:
完成CM4核中的IPC接收程序(接收用的中断)
(将上面的ipc_ex1_basic_cm.c程序移植进自己的CM4核的例程中)
移植后,编译成功。然后根据上一篇文章中的下载方法下载到板子中去。
观察CPU1核的pass值,如果由0变为1,就代表IPC成功运行。
程序中,重点程序说明
自己的数据,可以先放到一个数组中,然后替换掉下面的readData数组。
#pragma DATA_SECTION(readData, “MSGRAM_CPU_TO_CM”);
下面IPC发送函数中的readData与前面的一样,可以被自己的数组替换。len代表给数组的长度,可以用#define定义一个常量,方便修改,也可以直接写数字。
IPC_sendCommand(IPC_CPU1_L_CM_R, IPC_FLAG0, IPC_ADDR_CORRECTION_ENABLE,
IPC_CMD_READ_MEM, (uint32_t)readData, len);
下面的是CM4核中的接收数据的函数。
&addr接收了来自CPU1的数据。 &data接收了来自CPU1的数组长度。
IPC_readCommand(IPC_CM_L_CPU1_R, IPC_FLAG0, IPC_ADDR_CORRECTION_ENABLE,
&command, &addr, &data);
下面的for循环中,UDPData1[i] =*((uint32_t )addr+i);可以通过i的依次增加,完成对地址对应数据的转存。
for(i=0; i<data; i++)
{
UDPData1[i] =((uint32_t *)addr+i);
}
想法与例程的提供
当然,在我的应用背景下,对于CPU1的例程而言,也可以将以太网的例程(ethernet_c28x_config)移植进ipc_ex1_basic_c28x1.c中。与上面的移植方法相比,都很简单。
但是CM4核的程序,建议将IPC程序移植进enet_lwip中。反过来移植的话,工作量有点大。
移植完的IPC+UDP协议的以太网数据通信例程见博客中的资源上传。(文章中压缩包上传有限制)
TMS320F28388D 的 IPC程序使用相关推荐
- Linux C编程--进程间通信(IPC)5--System V IPC 机制2--信号量
信号量定义 最简单的信号量是一个只有0与1两个值的变量,二值信号量.这是最为通常的形式.具有多个正数值的信号量被称之为通用信号量.在本章的其余部分,我们将会讨论二值信号量. P与V的定义出奇的简单.假 ...
- Android进程间通信(IPC)机制Binder简要介绍和学习计划
在Android系统中,每一个应用程序都是由一些Activity和Service组成的,这些Activity和Service有可能运行在同一个进程中,也有可能运行在不同的进程中.那么,不在同一个进程的 ...
- 自己动手研发P2P功能的IPC摄像头
纯工程师一名,历经一段时间的摸索,搞定了基于海思3518E方案的IPC摄像头, 研发摄像头需要掌握的知识点还挺多的,没法通过三言两语讲述清楚. 先上图, 最后完成的作品如下: 研发一款摄像头需要掌握的 ...
- 编程精粹 --Microsoft编写优质无错C程序秘诀
献给我的妻子Beth, 以及我的双亲Joseph和Julia Maguire ────为了他们的爱和支持 序 1986年,在为几家小公司咨询和工作了10年之后为了获得编写Macintosh应用程序的经 ...
- Linux内核省电社区,Linux 内核社区补丁对比
Linux 内核主线总体而言兼具了性能.稳定和安全于一身,不过总有些 Geek 不满足主线中的种种限制,使用各自社区的补丁为它添砖加瓦. 概述 pf内核,这算是一个非常为人熟知的内核.包含了ck补丁( ...
- Android Binder总结
本文原创作者:Cloud Chou.欢迎转载,请注明出处和本文链接 从前面的博客中我们已经学习到如何使用binder,也学习到binder的框架及原理.今天就聊聊我对android为什么使用binde ...
- 《分布式计算云计算与大数据》第一章
第一章.分布式计算概述 1.分布式计算概述 分布式计算是计算机科学研究的重要内容,主要研究对象是由若干个通过网络联合在一起的计算机组成的硬件系统,这些计算机把需要非常大的计算能力的项目分成许多小部分, ...
- linux补丁rt ck pf zen,Linux 内核社区补丁对比
Linux 内核主线总体而言兼具了性能.稳定和安全于一身,不过总有些 Geek 不满足主线中的种种限制,使用各自社区的补丁为它添砖加瓦. 概述 pf内核,这算是一个非常为人熟知的内核.包含了ck补丁( ...
- 1.1分布式计算的概念
1.1分布式计算的概念 1.1.1 定义 一个分布式系统是由若干个通过网络互连的计算机组成的软硬件系统 ,且这些系统互相配合已完成一个共同的目标(往往这个共同的目标称为"项目"). ...
最新文章
- mysql php commit_php mysqli_autocommit()使用实例
- java web文件夹_JAVA WEB项目文件夹上传下载解决方案
- Sicily/1282. Computer Game
- 修改看板视图默认显示个数
- UHDTV (超高清电视)的色域与取样精度及格式
- 基于单片机的超市储物柜设计_毕业设计论-单片机储物柜
- 毫米和像素怎么换算_自己计算出来的关于像素和厘米单位的换算
- ICPC 2015 北京 Today Is a Rainy Day
- 微信小说,微信游戏系统域名被屏蔽是怎么回事
- APP的文件数据直传腾讯云COS实践
- 矩阵对应多项式?多项式?→从特征多项式和哈密顿凯莱定理开始
- matlab一维矩形积分,玩转matlab之一维 gauss 数值积分公式及matlab源代码
- 12.11 蜜蜂路线
- 【物联网】21.物联网开发之先进传感 - RGB-D 传感器
- QPS从0到4000请求每秒,谈达达后台架构演化之路
- Electron教程(七)结语
- 充分利用Office:Office 2007 EnterPrise 企业版各软件介绍
- 基于python+pyqt+halcon实现视觉定位(halcon12.0)【附部分源码】
- TCP连接的心跳包机制
- 【JIRA】 JIRA 8.5.1 快速安装
热门文章
- python 量子计算包_ProjectQ:解锁Python实现量子计算的新方式!
- matlab仿真电气连接,MATLAB仿真及在电子信息与电气工程中的应用简介,目录书摘...
- photoshop cs6中kuler和minibridge打开是空白的解决方法
- mysql-MDL元数据锁
- 睿智的目标检测35——Pytorch搭建YoloV4-Tiny目标检测平台
- 微测检测Qi 1.3最新版本预测试服务全面上线
- 自定义Qt Designer插件
- VK Cup 2016 - Round 1 (Div. 2 Edition) D. Bear and Polynomials
- 知识点滴 - 在Win10里添加Excel的ODBC数据源
- 毕业设计-opencv图像视频质量评价分析