在开发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. 【bzoj1123】BLO

    1123: [POI2008]BLO Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2222  Solved: 1090[Submit][Status ...

  2. (转载)Unity 优化总结

    Unity 优化总结 2017-03-10 | 发布 大海明月  zengfeng75@qq.com  | 分类 Unity  | 标签 Unity  优化 相关文档 UGUI 降低填充率技巧两则 U ...

  3. Unity Shader入门精要学习笔记 - 第17章 Unity的表面着色器探秘

    转自 冯乐乐的<Unity Shader 入门精要> 2010年的Unity 3 中,Surface Shader 出现了. 表面着色器的一个例子. 我们先做如下准备工作. 1)新建一个场 ...

  4. laravel 5.5 oauth2.0 跨域问题解决方案

    一.laravel-Cors 安装 在终端执行安装命令如下: composer require barryvdh/laravel-cors 添加服务提供商 在Laravel配置文件app.php的pr ...

  5. laravel 错误总结

    1.ReflectionException (-1) Class PhotosController does not exist 原因: 资源路由的问题 ,命名空间要区分大小写,admin首字母要大写 ...

  6. 【持续更新】JS 时间与日期

    JS 的日期时间在项目中是必定会用到的,所以必须掌握. UTC 与 GMT 背景 十七世纪,格林威治皇家天文台为了海上霸权的扩张计画而进行天体观测.1675年旧皇家观测所(Old Royal Obse ...

  7. Solr6+IKAnalyzer分词环境搭建

    环境要求 Zookeeper版本:zookeeper-3.4.8 JDK版本: jdk1.8. Solr版本:solr-6.4.1 Tomcat版本:tomcat8 ZK地址:127.0.0.1:21 ...

  8. poj1717

    两次记忆化搜索,第一次找最小的gap,第二次找最少的次数. #include <iostream> #include <cstdio> #include <cstring ...

  9. WEB 前端菜鸟,感觉很迷茫,该怎么做?

    前几天看到这样的问题 先说问题吧:感觉前端涉及到的东西太多了,自己也很浮躁,看了挺多书,可是代码缺敲得却不多.技术菜,又什么都想学,比如现在纠结要不要先学scss或者php或者angularjs,ba ...

  10. SQL Server 2008添加字段成功,但提示列名无效

    在sql后查询,给现有表添加一个字段,即执行sql语句: alter table [sxrq_1108].[dbo].[公司周报表详情] add 总计 int default 0 然后在上述sql查语 ...