Thread 中讨论的其他器件: SYSBIOS
您好!
AM6548的 PDK 以及(缺失)平台文档-这次是 UDMA:
我必须实现裸机应用(尽可能小)、该应用利用 DMA 将数据从 DDR4传输到共享 SRAM。 由于应用程序必须尽可能快、因此必须驻留在共享 SRAM 中。
首先、我看了 PDK 中的示例。 和(这是 PDK 的一般问题!) 几个小时后、我注意到 EDMA 示例不能用于 A53内核。 这是因为我在一些子树中找到了另一个文档、其中说明了如何将使用 EDMA 的应用移植到 UDMA -这说明了 UDMA 是一个新的东西、甚至更复杂。 因此、我必须使用 uDMA。 我想我可以分解的只有一个可用示例:本移植文档中的示例。
pdk_am65xx_1_0_7\packages/ti_drv\udma\docs\Migrating_Applications_from_EDMA_to_UDMA_using_TI-RTOS.pdf
(但我不想使用 TI-RTOS!)
即 UDMA 驱动程序
packages/ti/drv/udma/lib/am65xx/mpu1_0/release/udma.aa53fg
取决于
packages/sciclient/lib/am65xx/mpu1_0/release/sciclient.aa53fg
packages/osal/lib/nonos/am65xx/a53/release/ti.osal.aa53fg
因此会将依赖项引入 OSAL、从而将我的裸机应用程序链接到这些应用程序。 为什么对信号量支持、固件库(!)存在硬依赖关系 ? (这意味着我还必须加载固件二进制文件才能使用 DMA!?、因为 UDMA 初始化函数会挂起...) 到目前为止、没有 RTOS 依赖性、因此 pdf 标题也会误导您、您是否同意?
这会导致一个只能容纳半兆字节的应用、即如果两个内核平等共享 MSMC SRAM、则应该运行 UDMA 传输的软件已经已满...
因此、产生了以下想法和问题:
- 为什么 PDK 中有很多(如果不是大多数)示例、我为6548下载了这些示例(!) 不适用于6548、而是适用于其他平台–这毫无意义!
- 其中是 UDMA 的可理解文档。 用户不能遵循 TRM 14、000页的任何可用寄存器访问顺序。
- 如何在不向其他库引入大量依赖项的情况下使用 UDMA ...
- UDMA 是一项非常基本的功能、因此、它所需的软件也应该很小且快速! 170行用于传输1024字节的 C 代码似乎是一个坏笑话–在文档中、我几乎不会对定义、宏和函数进行任何解释。 它只是一个空的 doxygen 文档... 至少是 IMHO。
我期待得到任何帮助!
Andreas