1. 首页
  2. 编程语言
  3. 硬件开发
  4. 使用DMA控制器-docker部署python爬虫项目的方法步骤

使用DMA控制器-docker部署python爬虫项目的方法步骤

上传者: 2024-07-21 22:54:17上传 PDF文件 10.65MB 热度 9次

表31.24传输类型位位值传输类型控制器:

  • 000 存储器到存储器DMA

  • 001 存储器到外设DMA

  • 010 外设到存储器DMA

  • 011 源外设到目标外设DMA

  • 100 源外设到目标外设

  • 101 存储器到外设外设

  • 110 外设到存储器外设

  • 111 源外设到目标外设源外设

31.6 使用DMA控制器

31.6.1 编程DMA

DMA部分的所有寄存器只能使用字读取和字写入来访问(即32位访问)。

  1. 使能DMA:置位DMACConfig寄存器的使能位来使能DMA控制器。

  2. 禁能DMA:执行以下操作来禁能DMA:

  3. 读取通道使能状态寄存器(DMACEnbldChns),确保所有DMA通道已被禁能。如果还有通道有效,请参考有关禁止DMA通道的方法;

  4. 通过清零配置寄存器(DMACConfiguration)的DMA使能位来禁能DMA。

  5. 使能DMA通道:置位相应通道配置寄存器的通道使能位可使能DMA通道。注意:通道在使能前必须完整地初始化。

  6. 禁能DMA通道:有3种方法可以禁能DMA通道:

  7. 直接写通道使能位。此时,通道FIFO中所有未处理的位都会丢失;

  8. 将Active和Halt位与通道使能位一起使用来禁能DMA通道;

  9. 等到传输结束,通道会自动清除。禁能DMA通道并且FIFO中的数据丢失若清除相应通道配置寄存器中的通道使能位。当前AHB传输会结束(如果有一个传输正在进行),该通道会被禁能。FIFO中的数据会丢失。禁能DMA通道且不会丢失FIFO中的数据置位相应通道配置寄存器的Halt位。这会忽略后面的DMA请求;查询相应通道配置寄存器的Active位,直至它的值到达0。这一位表示通道FIFO中是否有要传输的数据;清除相应通道配置寄存器中的通道使能位。

  10. 设置一个新的DMA传输:如果某个通道不能留出来供DMA传输使用,则:

相关链接

对于如何在实际项目中应用这些DMA配置,可以参考以下资源:

用户评论