在开发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代表的含义的更多相关文章

  1. 进程,线程,GIL,Python多线程,生产者消费者模型都是什么鬼

    1. 操作系统基本知识,进程,线程 CPU是计算机的核心,承担了所有的计算任务: 操作系统是计算机的管理者,它负责任务的调度.资源的分配和管理,统领整个计算机硬件:那么操作系统是如何进行任务调度的呢? ...

  2. Cypress EZ-USB FX3 DMA模式下的串口通讯

    由于公司设备升级后出了问题,需要对USB驱动进行修改,原本使用的是寄存器模式进行UART传输,但是由于FX3寄存器模式会出现长时间延时等待的问题,不得不对其传输模式进行修改.虽然赛普拉斯的EZ-USB ...

  3. Linux 进程间通信(包含一个经典的生产者消费者实例代码)

    前言:编写多进程程序时,有时不可避免的需要在多个进程之间传递数据,我们知道,进程的用户的地址空间是独立,父进程中对数据的修改并不会反映到子进程中,但内核是共享的,大多数进程间通信方式都是在内核中建立一 ...

  4. Celery 框架学习笔记(生产者消费者模式)

    生产者消费者模式 在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类.函数.线程.进程等).产生数据的模块,就形象地称为生产 ...

  5. python网络编程--进程(方法和通信),锁, 队列,生产者消费者模型

    1.进程 正在进行的一个过程或者说一个任务.负责执行任务的是cpu 进程(Process: 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在 ...

  6. (转)OS: 生产者消费者问题(多进程+共享内存+信号量)

    转:http://blog.csdn.net/yaozhiyi/article/details/7561759 一. 引子 时隔一年再次用到 cout 的时候,哥潸然泪下,这是一种久别重逢的感动,虽然 ...

  7. POSIX信号量与互斥锁实现生产者消费者模型

    posix信号量 Link with -lpthread. sem_t *sem_open(const char *name, int oflag);//打开POSIX信号量 sem_t *sem_o ...

  8. [并发编程 - socketserver模块实现并发、[进程查看父子进程pid、僵尸进程、孤儿进程、守护进程、互斥锁、队列、生产者消费者模型]

    [并发编程 - socketserver模块实现并发.[进程查看父子进程pid.僵尸进程.孤儿进程.守护进程.互斥锁.队列.生产者消费者模型] socketserver模块实现并发 基于tcp的套接字 ...

  9. 【Windows】用信号量实现生产者-消费者模型

    线程并发的生产者-消费者模型: 1.两个进程对同一个内存资源进行操作,一个是生产者,一个是消费者. 2.生产者往共享内存资源填充数据,如果区域满,则等待消费者消费数据. 3.消费者从共享内存资源取数据 ...

随机推荐

  1. 537 Complex Number Multiplication 复数乘法

    详见:https://leetcode.com/problems/complex-number-multiplication/description/ C++: class Solution { pu ...

  2. KEIL MDK之RTX的移植

    原文: http://lib.csdn.net/article/embeddeddevelopment/12240 一 将MDK安装目录的C:\keil\ARM\RL\RTX\Config下面的配置文 ...

  3. Navicat for MySQL在ubuntu下运行没有反应

    Step1: 打开Navicat官网,下载Navicat ,网址:http://www.navicat.com/en/download/download.html Step2:进入下载目录,解压压缩包 ...

  4. 【Linux】VirtualBox网络配置桥接模式

    VirtualBox网络配置桥接模式 CentOS/RHEL (虚拟机)配置 # 基于桥接模式设置固定 ip cat >> /etc/sysconfig/network-scripts/i ...

  5. Java 实现Excel表数据的读取和写入 以及过程中可能遇到的问题

    问题1:Unable to recognize OLE stream 格式的问题要可能是因为给的数据是2010年的数据表后缀为.xlsx,要先转化成2003版的后缀为.xls 问题2: Warning ...

  6. php类重载

    首先,因为PHP是弱类型语言,是不直接支持重载的,不过可以通过一些方法来实现重载. 先说一下重写 在子类继承父类方法后,自己重新定义父类的方法,包含函数名,形参(个数,顺序)完全相同,但权限修饰符可不 ...

  7. COGS 696. [IOI1996][USACO 2.3] 最长前缀

    ★   输入文件:prefix.in   输出文件:prefix.out   简单对比时间限制:1 s   内存限制:128 MB 描述 USACO 2.3.1 IOI96 在生物学中,一些生物的结构 ...

  8. Stream.iterate方法与UnaryOperator

    前提:本人在翻看<Java核心技术II>的时候在p17的时候发现一段代码不是很明白.不知道为什么就输出了1,2,3,4,5,6,7,8,9,10,...也不知道n-n.add(BigInt ...

  9. 如何让Spring MVC显示自定义的404 Not Found页面

    不知道大家对千篇一律的404 Not Found的错误页面是否感到腻歪了?其实通过很简单的配置就能够让Spring MVC显示您自定义的404 Not Found错误页面. 在WEB-INF的web. ...

  10. ssh复制remote

    rsync rsync localdirectory username@10.211.55.4:/home/username/Downloads/localdirectory -r