FX3 DMA生产者消费者ID代表的含义
在开发FX3的时候,觉得赛普拉斯的库注释太少,很多时候无法理解代码含义。由于使用DMA,需要理解DMA生产者消费者代表的含义,经过多方查找,决定记录下来。
在cyu3dma.h中对SocketID进行了枚举,以下是其具体代码。
typedef enum CyU3PDmaSocketId_t
{
CY_U3P_LPP_SOCKET_I2S_LEFT = 0x0000, /**< Left channel output to I2S port. */
CY_U3P_LPP_SOCKET_I2S_RIGHT, /**< Right channel output to I2S port. */
CY_U3P_LPP_SOCKET_I2C_CONS, /**< Outgoing data to I2C slave. */
CY_U3P_LPP_SOCKET_UART_CONS, /**< Outgoing data to UART peer. */
CY_U3P_LPP_SOCKET_SPI_CONS, /**< Outgoing data to SPI slave. */
CY_U3P_LPP_SOCKET_I2C_PROD, /**< Incoming data from I2C slave. */
CY_U3P_LPP_SOCKET_UART_PROD, /**< Incoming data from UART peer. */
CY_U3P_LPP_SOCKET_SPI_PROD, /**< Incoming data from SPI slave. */ CY_U3P_PIB_SOCKET_0 = 0x0100, /**< P-port socket number 0. */
CY_U3P_PIB_SOCKET_1, /**< P-port socket number 1. */
CY_U3P_PIB_SOCKET_2, /**< P-port socket number 2. */
CY_U3P_PIB_SOCKET_3, /**< P-port socket number 3. */
CY_U3P_PIB_SOCKET_4, /**< P-port socket number 4. */
CY_U3P_PIB_SOCKET_5, /**< P-port socket number 5. */
CY_U3P_PIB_SOCKET_6, /**< P-port socket number 6. */
CY_U3P_PIB_SOCKET_7, /**< P-port socket number 7. */
CY_U3P_PIB_SOCKET_8, /**< P-port socket number 8. */
CY_U3P_PIB_SOCKET_9, /**< P-port socket number 9. */
CY_U3P_PIB_SOCKET_10, /**< P-port socket number 10. */
CY_U3P_PIB_SOCKET_11, /**< P-port socket number 11. */
CY_U3P_PIB_SOCKET_12, /**< P-port socket number 12. */
CY_U3P_PIB_SOCKET_13, /**< P-port socket number 13. */
CY_U3P_PIB_SOCKET_14, /**< P-port socket number 14. */
CY_U3P_PIB_SOCKET_15, /**< P-port socket number 15. */
CY_U3P_PIB_SOCKET_16, /**< P-port socket number 16. */
CY_U3P_PIB_SOCKET_17, /**< P-port socket number 17. */
CY_U3P_PIB_SOCKET_18, /**< P-port socket number 18. */
CY_U3P_PIB_SOCKET_19, /**< P-port socket number 19. */
CY_U3P_PIB_SOCKET_20, /**< P-port socket number 20. */
CY_U3P_PIB_SOCKET_21, /**< P-port socket number 21. */
CY_U3P_PIB_SOCKET_22, /**< P-port socket number 22. */
CY_U3P_PIB_SOCKET_23, /**< P-port socket number 23. */
CY_U3P_PIB_SOCKET_24, /**< P-port socket number 24. */
CY_U3P_PIB_SOCKET_25, /**< P-port socket number 25. */
CY_U3P_PIB_SOCKET_26, /**< P-port socket number 26. */
CY_U3P_PIB_SOCKET_27, /**< P-port socket number 27. */
CY_U3P_PIB_SOCKET_28, /**< P-port socket number 28. */
CY_U3P_PIB_SOCKET_29, /**< P-port socket number 29. */
CY_U3P_PIB_SOCKET_30, /**< P-port socket number 30. */
CY_U3P_PIB_SOCKET_31, /**< P-port socket number 31. */ CY_U3P_SIB_SOCKET_0 = 0x0200, /**< S-port socket number 0. */
CY_U3P_SIB_SOCKET_1, /**< S-port socket number 1. */
CY_U3P_SIB_SOCKET_2, /**< S-port socket number 2. */
CY_U3P_SIB_SOCKET_3, /**< S-port socket number 3. */
CY_U3P_SIB_SOCKET_4, /**< S-port socket number 4. */
CY_U3P_SIB_SOCKET_5, /**< S-port socket number 5. */ //U-port是指endpoint socket
CY_U3P_UIB_SOCKET_CONS_0 = 0x0300, /**< U-port output socket number 0. */
CY_U3P_UIB_SOCKET_CONS_1, /**< U-port output socket number 1. */
CY_U3P_UIB_SOCKET_CONS_2, /**< U-port output socket number 2. */
CY_U3P_UIB_SOCKET_CONS_3, /**< U-port output socket number 3. */
CY_U3P_UIB_SOCKET_CONS_4, /**< U-port output socket number 4. */
CY_U3P_UIB_SOCKET_CONS_5, /**< U-port output socket number 5. */
CY_U3P_UIB_SOCKET_CONS_6, /**< U-port output socket number 6. */
CY_U3P_UIB_SOCKET_CONS_7, /**< U-port output socket number 7. */
CY_U3P_UIB_SOCKET_CONS_8, /**< U-port output socket number 8. */
CY_U3P_UIB_SOCKET_CONS_9, /**< U-port output socket number 9. */
CY_U3P_UIB_SOCKET_CONS_10, /**< U-port output socket number 10. */
CY_U3P_UIB_SOCKET_CONS_11, /**< U-port output socket number 11. */
CY_U3P_UIB_SOCKET_CONS_12, /**< U-port output socket number 12. */
CY_U3P_UIB_SOCKET_CONS_13, /**< U-port output socket number 13. */
CY_U3P_UIB_SOCKET_CONS_14, /**< U-port output socket number 14. */
CY_U3P_UIB_SOCKET_CONS_15, /**< U-port output socket number 15. */ CY_U3P_UIB_SOCKET_PROD_0 = 0x400, /**< U-port input socket number 0. */
CY_U3P_UIB_SOCKET_PROD_1, /**< U-port input socket number 1. */
CY_U3P_UIB_SOCKET_PROD_2, /**< U-port input socket number 2. */
CY_U3P_UIB_SOCKET_PROD_3, /**< U-port input socket number 3. */
CY_U3P_UIB_SOCKET_PROD_4, /**< U-port input socket number 4. */
CY_U3P_UIB_SOCKET_PROD_5, /**< U-port input socket number 5. */
CY_U3P_UIB_SOCKET_PROD_6, /**< U-port input socket number 6. */
CY_U3P_UIB_SOCKET_PROD_7, /**< U-port input socket number 7. */
CY_U3P_UIB_SOCKET_PROD_8, /**< U-port input socket number 8. */
CY_U3P_UIB_SOCKET_PROD_9, /**< U-port input socket number 9. */
CY_U3P_UIB_SOCKET_PROD_10, /**< U-port input socket number 10. */
CY_U3P_UIB_SOCKET_PROD_11, /**< U-port input socket number 11. */
CY_U3P_UIB_SOCKET_PROD_12, /**< U-port input socket number 12. */
CY_U3P_UIB_SOCKET_PROD_13, /**< U-port input socket number 13. */
CY_U3P_UIB_SOCKET_PROD_14, /**< U-port input socket number 14. */
CY_U3P_UIB_SOCKET_PROD_15, /**< U-port input socket number 15. */ CY_U3P_CPU_SOCKET_CONS = 0x3F00, /**< Socket through which the FX3 CPU receives data. */
CY_U3P_CPU_SOCKET_PROD /**< Socket through which the FX3 CPU produces data. */ } CyU3PDmaSocketId_t;
其中:
LPP_SOCKET是指 外设硬件端口,如CY_U3P_LPP_SOCKET_UART_PROD就代表UART的 RX 端口,而CY_U3P_LPP_SOCKET_UART_CONS就代表TX,因为数据要从TX端口发送。
P-PORT 是指FX3中的GPIF端口
S-PORT 是指FX3专门为SD/MMC卡准备的端口
U-PORT 是指USB端口,或者说是Endpoint Socket端口
CPU_SOCKET是指 FX3的CPU所收到的数据储存的端口
FX3 DMA生产者消费者ID代表的含义的更多相关文章
- 进程,线程,GIL,Python多线程,生产者消费者模型都是什么鬼
1. 操作系统基本知识,进程,线程 CPU是计算机的核心,承担了所有的计算任务: 操作系统是计算机的管理者,它负责任务的调度.资源的分配和管理,统领整个计算机硬件:那么操作系统是如何进行任务调度的呢? ...
- Cypress EZ-USB FX3 DMA模式下的串口通讯
由于公司设备升级后出了问题,需要对USB驱动进行修改,原本使用的是寄存器模式进行UART传输,但是由于FX3寄存器模式会出现长时间延时等待的问题,不得不对其传输模式进行修改.虽然赛普拉斯的EZ-USB ...
- Linux 进程间通信(包含一个经典的生产者消费者实例代码)
前言:编写多进程程序时,有时不可避免的需要在多个进程之间传递数据,我们知道,进程的用户的地址空间是独立,父进程中对数据的修改并不会反映到子进程中,但内核是共享的,大多数进程间通信方式都是在内核中建立一 ...
- Celery 框架学习笔记(生产者消费者模式)
生产者消费者模式 在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类.函数.线程.进程等).产生数据的模块,就形象地称为生产 ...
- python网络编程--进程(方法和通信),锁, 队列,生产者消费者模型
1.进程 正在进行的一个过程或者说一个任务.负责执行任务的是cpu 进程(Process: 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在 ...
- (转)OS: 生产者消费者问题(多进程+共享内存+信号量)
转:http://blog.csdn.net/yaozhiyi/article/details/7561759 一. 引子 时隔一年再次用到 cout 的时候,哥潸然泪下,这是一种久别重逢的感动,虽然 ...
- POSIX信号量与互斥锁实现生产者消费者模型
posix信号量 Link with -lpthread. sem_t *sem_open(const char *name, int oflag);//打开POSIX信号量 sem_t *sem_o ...
- [并发编程 - socketserver模块实现并发、[进程查看父子进程pid、僵尸进程、孤儿进程、守护进程、互斥锁、队列、生产者消费者模型]
[并发编程 - socketserver模块实现并发.[进程查看父子进程pid.僵尸进程.孤儿进程.守护进程.互斥锁.队列.生产者消费者模型] socketserver模块实现并发 基于tcp的套接字 ...
- 【Windows】用信号量实现生产者-消费者模型
线程并发的生产者-消费者模型: 1.两个进程对同一个内存资源进行操作,一个是生产者,一个是消费者. 2.生产者往共享内存资源填充数据,如果区域满,则等待消费者消费数据. 3.消费者从共享内存资源取数据 ...
随机推荐
- CSS以及JS各种库的在线CDN引用地址
JS类—— html5.js,让你的IE浏览器支持H5新特性:http://html5shiv.googlecode.com/svn/trunk/html5.js (记得要注释判断哦) JQuer ...
- 命令行媒体处理工具 FFmpeg
FFmpeg 是一套在命令行界面运行的跨平台媒体处理工具,属于自由软件,常用来对视频音频和图片等媒体文件进行格式转换.分割和合并等,也可录屏录音. 开发语言:C官网:https://www.ffmpe ...
- Tomcat固定的目录结构
1. /work Tomcat把由Jsp生成的Servlet放于此目录下. 2. /webapps 当发布Web应用时,默认情况下把Web应用文件放于此目录下. 3. /logs 存放Tomcat的日 ...
- Gym - 101147J Whistle's New Car 树上差分
J. Whistle's New Car time limit per test 15 seconds memory limit per test 512 megabytes input car.in ...
- Git .gitignore 设置为全局global
在操作Git时,我们会将修改的内容$git add . 到Git,Git会提示我们哪些文件都修改了.此时提示中会包括系统自动修改的文件,bin文件等.而我们add到Git时,并不希望将这些文件也一同a ...
- gunzip
gunzip——解压缩.gz的压缩文件 GNU unzip 命令所在路径:/bin/gunzip 示例1: # gunzip services.gz 解压缩当前目录下的services.gz文件,执行 ...
- 如何处理Docker错误消息:please add——insecure-registry
本地安装Kubernetes时,遇到如下的错误消息: pleade add --insecure-registry gcr.io to daemon's arguments 解决方案:点击Docker ...
- MINST手写数字识别(一)—— 全连接网络
这是一个简单快速入门教程——用Keras搭建神经网络实现手写数字识别,它大部分基于Keras的源代码示例 minst_mlp.py. 1.安装依赖库 首先,你需要安装最近版本的Python,再加上一些 ...
- Google Colab免费GPU使用教程(一)
一.前言 现在你可以开发Deep Learning Applications在Google Colaboratory,它自带免费的Tesla K80 GPU.重点是免费.免费!(国内可能需要tz) 这 ...
- 使用prelu
一个使用方式:http://blog.csdn.net/xg123321123/article/details/52610919 还有一种是像relu那样写,我就是采用的这种方式,直接把名字从relu ...