在开发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. Codeforces Round #396 (Div. 2) E

    Mahmoud and Ehab live in a country with n cities numbered from 1 to n and connected by n - 1 undirec ...

  2. morphia(5)-删除

    @Test public void delete() throws Exception { final Query<Employee> query = datastore.createQu ...

  3. 17999 Light-bot 模拟 + kmp求循环节

    http://acm.scau.edu.cn:8000/uoj/mainMenu.html 17999 Light-bot 时间限制:1000MS  内存限制:65535K 提交次数:0 通过次数:0 ...

  4. java emoji表情存储解决方案

    1.问题产生情况 我遇到这个问题是做微信开发的时候有些有用的头像用了微信的emoji表情,然而我的mysql数据库用的编码是utf8_general_ci,就是utf-8编码,结果也就报错误了. 2. ...

  5. hdu2475Box(splay树形转线性)

    链接 推荐一篇帖子 http://blog.csdn.net/lyhypacm/article/details/6734748 这题暴力不可行主要是因为这颗树可能极度不平衡,不能用并查集是不能路径压缩 ...

  6. Flask 学习系列(二)---Jinjia2模板

    下面是一个jinjia2的简单模板的例子: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  7. dp考试

    a[问题描述]

  8. 【学习笔记】六:面向对象的程序设计——理解JS中的对象属性、创建对象、JS中的继承

    ES中没有类的概念,这也使其对象和其他语言中的对象有所不同,ES中定义对象为:“无序属性的集合,其属性包含基本值.对象或者函数”.现在常用的创建单个对象的方法为对象字面量形式.在常见多个对象时,使用工 ...

  9. 在页面实现qq跳转链接

    http://shang.qq.com/v3/widget/consult.html

  10. Java类的静态块の一

    类的静态块在类加载时候执行,执行早于构造函数,并且只执行一次. 下面这个例子可以帮助理解: package untility; public class A { // 静态块 static { A c ...