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.

[参考译文] DK-TM4C129X:driverlib/udma.h 中的 UDMA_INT_SW 不是预期值

Guru**** 2610595 points
Other Parts Discussed in Thread: TM4C1294KCPDT, TM4C129XKCZAD

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/766905/dk-tm4c129x-udma_int_sw-in-driverlib-udma-h-not-expected-value

器件型号:DK-TM4C129X
主题中讨论的其他器件: TM4C1294KCPDTTM4C129XKCZAD

我在 DK-TM4C129x 开发套件的 TM4C129系列处理器上使用 UDMA。 代码执行软件存储器到存储器的散聚/聚传输、然后在传输后在中断例程中进行一些清理。

我可以使用此代码、但在开发过程中、我注意到 udma.h 为 UDMA_INT_SW 提供的值为62。 正确的值似乎是60。 我的工作代码的相关部分为:

tDMAControlTable sUnpackTaskList[kMaxChan];

void UnpackSamples()
{...

}

空 DMAManager::SetupSampleTransfer()
{...

//注意 udma.h 中的 UDMA_INT_SW 似乎不正确(62) uDMAIntRegister (60, UnpackSamples); uDMAChannelAttributeEnable (UDMA_CHANGE_SW,0); } void DMAManager::TransferSamples (...) { ... uDMAChannelScatterGatherSet (UDMA_CHANGE_SW、8、sUnpackTaskList、0); uDMAChannelEnable (UDMA_CHANGE_SW); uDMAChannelRequest (UDMA_CHANGE_SW); }

TM4C1294kcpdt 微控制器数据表将"UDMA 软件通道传输"中断列为44、该中断与图2-6 (60 = 44 + 16)所示矢量表中的60作为异常编号一致。

似乎不可能忽略 udma.h 头文件中的此类错误。 我在这里错过了什么愚蠢的东西吗?

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

    请更新至 最新版本的 TivaWare、版本2.1.4.178。 此问题已在最新版本中得到纠正。

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

    感谢 Bob 的快速反馈。 但是、它不是一个魔术项目。 事实上、我已经安装了当前版本的库、但我无法确定如何让我的 CCS 工程使用它(我仍然无法使用)。

    即使我知道了、我仍会感到很痛苦:宏名称已更改、定义已从 udma.h 跳转到 .h (在我的案例中为 tm4c129xkczad.h)。

    另外、我注意到 Udma.c 中的以下代码:

    void
    uDMAIntRegister (uint32_t ui32IntChannel、void (* pfnHandler)(void)
    ){
    //
    //检查参数。
    //
    assert (pfnHandler);
    
    //
    //注册中断处理程序。
    //
    IntRegister (ui32IntChannel、pfnHandler);
    
    //
    //启用存储器管理故障。
    //
    IntEnable (ui32IntChannel);
    }
    

    请注意"存储器管理故障"注释。 我很确定这是不对的!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您对错误评论的反馈。 我将把这个问题提交给我们的错误跟踪系统、以便在下一个版本中纠正。

    您希望帮助转换为最新版本、还是只想继续使用您的更正代码?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在"不要修复不坏的东西"的基础上(在本例中为"不坏"的给定值)、我将使用我得到的东西运行、除非您有令人信服的理由进行更改。 ;-)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我也坚信"如果它没有损坏、就不要修复"。 感谢您的反馈。