1. 首页
  2. 编程语言
  3. 硬件开发
  4. 链表项示例-docker部署python爬虫项目的方法步骤

链表项示例-docker部署python爬虫项目的方法步骤

上传者: 2024-07-21 22:50:31上传 PDF文件 10.65MB 热度 12次

链表项示例第一个链表项存放在0x20000,定义了要传输的第一个数据块,这个数据块是存放在0x0A200和0x0AE00之间的数据。

  • 源起始地址0x0A200

  • 目标地址设为目标外设地址

  • 传输数据宽度:1个字(32位)

  • 传输大小:3072个字节(0xC00)

  • 源和地址突发大小:16个传输

  • 下个LLI地址:0x20010

如果你想更深入地了解DMA的工作原理,不妨参考这篇详细的介绍:DMA数据传输原理

第二个链表项存放在0x20010,描述了要传输的下个数据块:

  • 源起始地址0x0B200

  • 目标地址设为目标外设地址

  • 传输数据宽度:1个字(32位)

  • 传输大小:3072个字节(0xC00)

  • 源和目标突发大小:16个传输

  • 下个LLI地址:0x20020

这样,一个链表就形成了,每个链表项都指向链表中的下一个链表项。为了初始化DMA流,需要将第一个链表项(位于0x20000)编程到DMA。当第一个数据包被传输后,下个LLI就自动被装载。对于那些想深入了解如何通过链表控制多通道传输的读者,可以看看这篇文章:DMA多通道配置

最后一个LLI存放在0x20070,它包含:

  • 源起始地址0x11200

  • 目标地址设为目标外设地址

  • 传输数据宽度:1个字(32位)

  • 传输大小:3072个字节(0xC00)

  • 源和目标突发大小:16个传输

  • 下个LLI地址:0x0

由于下个LLI地址被设为0,因此,这是最后一个描述符,而且,DMA通道在传输完最后这个数据项后被禁能。当然,通道也可能设置成产生中断来向ARM处理器指明通道可以被重新编程了。要掌握更多关于ARM处理器和DMA的知识,不妨看看这个PPT:ARM处理器DMA控制器.ppt

神奇的DMA,真的是数据传输的魔法师啊!

下载地址
用户评论