This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/DK-TM4C129X:来自闪存的 DMA

Guru**** 2330830 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/592631/rtos-dk-tm4c129x-dma-from-flash

器件型号:DK-TM4C129X

工具/软件:TI-RTOS

是否有原因无法使用 ROM 中的 TIVAUDMA 传输 SPI?  每当我使用 ROM 指针为传输消息调用 SPI_transfer 时、我都会遇到崩溃和错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已将您的主题移至器件论坛。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 David:

     请参阅总线矩阵存储器表下的内容。 不允许 UDMA 访问 ROM。 只有 CPU 能够。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想我应该更具体一点…

    我一直忘记、闪存和 ROM 之间的器件存在差异。

    我的程序和常量数据被加载到闪存中、但我无法使用 DMA 将其从 SPI 端口传输出去。
    如果我将其存储到 RAM 缓冲区中、然后将其发送出去、我就没有问题。

    但是、如果我可以直接从闪存中发送它、那么在存储器消耗方面会更加高效和简单。

    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    David、

    DK-TM4C129X 要求启用闪存以进行 DMA 读取。 尝试添加以下代码:

    //
    //为 DMA 设置闪存访问
    //
    HWREG (FLASH_PP)|= FLASH_PP_DFA;
    HWREG (FLASH_DMASZ)= 0x4000;
    HWREG (FLASH_DMAST)= 0x0;
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    宏由定义:

    #include "inc/hw_flash.h"