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.

[参考译文] MSPM0G3507-Q1:getMemResult 与 ULLMEM.MEMRES

Guru**** 2459600 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1485992/mspm0g3507-q1-getmemresult-vs-ullmem-memres

器件型号:MSPM0G3507-Q1

工具与软件:

您好!

如果我们调用 DL_ADC12_getMemResult (ADC0、0)、则 PREG 为&ADC0->ULLMEM.MEMRES[0]、结果地址为(&ADC0->ULLMEM.MEMRES[0])+ DL_ADC12_SVT_OFFSET、它将被读取并返回16位结果。

如果我们使用 ADC0->ULLMEM.MEMRES[0]、则结果地址为&ADC0->ULLMEM.MEMRES[0]、请注意没有偏移 DL_ADC12_SVT_OFFSET。

与仿真结果相比较、这两个值都正确、但它们是不同的实现方式。

与效率、尺寸或其他方面是否不同?

谢谢、此致、
Ambroise

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

    您好!

    我认为这两种方法是相同的。 因为 MEMRES 寄存器中只有一个实际的地址。 编译器接管了地址转换。 所以、底层应该没有任何差别。  

    此致、

    Cash Hao

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

    为什么您说 MEMRES 寄存器的一个地址? 以下两个地址不同:

    &ADC0->ULLMEM.MEMRES[0]

    (&ADC0->ULLMEM.MEMRES[0])+ DL_ADC12_SVT_OFFSET

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

    您好!

    我知道有两种方法可以 在应用程序代码级别处理该 MEMRES 寄存器。 但对于编译器级别、这两种方法将指向相同的地址、因为 MEMRES 寄存器将只有一个实际的地址。

    此致、

    Cash Hao

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

    因此、由于 ADC0->ULLMEM.MEMRES[0]是 MEMCTL0的 ADC 结果

    返回 ADC0->ULLMEM.MEMRES[0];

    但从上面的代码来看、为什么要添加偏移 DL_ADC12_SVT_OFFSET?

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

    您好!

    在  DL_ADC12_SVT_OFFSET 的说明中、它指出"这是一个用于将偏移解析到 ADC12 SVT 孔径的内部宏"。  

    此致、

    Cash Hao

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

    您知道为什么一个 MEMRESx 寄存器有两个地址吗?

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

    您好!

    不可以、我可以向软件团队了解为什么需要 在此处添加 DL_ADC12_SVT_OFFSET。  

    此致、

    Cash Hao

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

    您好!

    经软件团队确认、 ADC0->ULLMEM.MEMRES[0]是低速访问端口。  (&ADC0->ULLMEM.MEMRES[0])+ DL_ADC12_SVT_OFFSET 是高速访问端口。  

    用于配置的低速端口正常。
    但是、使用这些访问端口读取 ADC 结果会导致数据丢失。

    此致、

    Cash Hao