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.

[参考译文] CC2745R10-Q1:Car_Node 在 CC2745R10-Q1 上使用 APUMEM 作为结果缓冲器的问题

Guru**** 2693225 points

Other Parts Discussed in Thread: CC2745R10-Q1

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1591500/cc2745r10-q1-issue-using-apumem-as-result-buffer-in-car_node-example-on-cc2745r10-q1

器件型号: CC2745R10-Q1

SDK - 9_11_01_19

 

电路板详细信息:CC2745R10-Q1 Launchpad

CCS 工具:版本:20.3.1.5__1.9.1  

HSM INFO:FW 3.0.0 版

 

我尝试将算法处理单元 (APU) 集成到 CC2745R10-Q1 平台上的 car_node 示例代码中、

 

可通过以下方式访问 APU 存储器:

float complex * apuMem =(float complex *) APULPF3_MEM_BASE;

 

在 APU_MUSIC 示例中、使用 apuMem 作为结果缓冲区工作正常、结果按预期更新。 但是、当我在 car_node 示例中使用 apuMem 作为结果缓冲区时、即使使用相同的复制回逻辑、结果也会保持零并且不更新。

 

如果在 car_node 示例中使用全局缓冲区而不是 APUMEM、则输出正确。  

例如、我 实现了矢量和运算、并使用全局缓冲区 twrBuffer 和 GOT 输出、如图中所示、但如果我使用 apuMem、则结果将保持为零且不更新。

image.png

我已经验证了以下内容:

  • 复制前的源数据和存储器内容是一致的。
  • 复制逻辑在两种实现中是相同的。

您能解释一下为什么使用 apuMem(指向 APULPF3_MEM_BASE)作为结果指针在 APU_MUSIC 中工作、但在 car_node 中不工作?

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

    您好:  

    请在最新的 SDK 上尝试此操作。  

    此外、您在 apuMem 指针中看到了什么值? 您是否包括在内  APULPF3.h ?  

    请告诉我。  

    谢谢、
    Isaac

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

    您好:
    1.我尝试了最新的 SDK  版本 9.14.00.41、因为 APU_MUSIC 算法无法正常工作  
    我已经在 TI 论坛上针对该问题提出了问题  
    如需参考、请查看以下链接:
    (+) CC2745R10-Q1:示例 APU_MUSIC_LP_EM_CC2745R10-Q1_FREERTOS_ticlang - BluetoothRegistered︎ — TI E2E 支持论坛中 TI CC27xx SDK(版本 9_14_00_35)面临代码崩溃问题

    2. 您在 apuMem 指针中看到了什么值? 您是否包括 APULPF3.h?

    如下图所示、apuMem 中的值未更新、是的、我包含 APULPF3.h


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

    您好:  

    我们仍在努力修复 APU_music 示例工程。 这将在稍后的 SDK 中提供。  

    我已经进行了测试、并且在使用 9.14.00.41 的汽车节点示例运行信道探测时、可以看到中填充的地址 0x400E0000 处的 apuMem。 如何运行汽车节点示例? 您是否更改了项目中的任何内容?  

    谢谢、
    Isaac

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

    您好:

    感谢您的更新。
    请详细介绍您所遵循的具体步骤以及如何验证
    我想在这边重现相同的设置。

    我想在汽车节点示例中使用 APU API、如果我尝试在 SDK 9.14.00.41 上实现、它将不起作用、因为代码将卡在 APU_copybackback 函数中

    因此、我使用 SDK 9.11.01.19、因为在此示例中、APU API 在 APU_MUSIC 示例代码中运行正常

     

    然后是我尝试在汽车节点示例中实现的相同 APULP3_vectorSum 函数、它希望将结果向量存储在 apuMem 中、如下图所示、但无法执行、并且我尚未对工程进行任何更改

    如果我提供全局缓冲作为结果向量、那么我就能够在这里看到结果




    谢谢、
    Shubhangi

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

    您好:  

    汽车节点示例已使用 APU 存储器缓冲区。 我所做的测试只是在汽车节点上运行信道探测示例以及关键节点示例。 有关该设置的更多信息、请参阅 信道探测文档。  

    运行演示后、当使用 APU 处理信道探测距离时、存储器部分将更新。  

    我还是使用了 SDK 9.14.00.41 来实现这一点。  

    在查看您的代码时、我不确定应该是否填充了 apuMem。 您似乎正在从 APU RAM 外部复制数据、然后将数据直接从 APU 中提取回您提供的指针。 这将导致 APU 的输出位于结果指针的地址处。  

    我看到 apuMem 的原因是我使用的是 Process_Estimate Distance(调用 BleCsRanging_estimatePbr)函数。 根据我的理解、此函数的输出在 APU 存储器内、然后被拉出并达到 CS 距离。 然后使用 APU 存储器存储输出。  

    如果对 I/Q 后处理使用 BleCsRanging_estimatePbr 函数、是否看到 apuMem 更改?  

    谢谢、
    Isaac

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

    您好:

    1.如果使用 BleCsRanging_estimatePbr 函数进行 I/Q 后处理、是否看到 apuMem 更改?  
    是的、我能够在 apuMem 中看到更新
    我使用了 SDK 9.14.00.41 来实现这一点


    2.  

     a.我要在 APU_music 示例中实现的以下逻辑有效、能够查看 0x400E0000 处的结果

    float complex * apuMem =(float complex *) APULPF3_MEM_BASE;//其中 APULPF3_MEM_BASE 为 0x400E0000

    APULPF3_init ();  
    APULPF3_ComplexVector initiatorIQ ={.data = init_iq_Buffer、.size =(iq_length)};
    APULPF3_ComplexVector 反射器 IQ ={.data = refl_IQ_Buffer、.size =(IQ_LENGTH)};
    APULPF3_ComplexVector twrIQ ={.data = apuMem、.size =(iq_length)};


       APULPF3_startOperationSequence();

       APULPF3_VectorSum (&initiatorIQ、&reflectorIQ、false、&twriq);

       APULPF3_stopOperationSequence();

    这个相同的逻辑在 APU_music 示例中工作、而不在 car_node 示例中工作  


      c.在汽车节点中、我试图实现的相同逻辑、然后我无法在地址的 apuMem 中看到结果 0x400E0000  即使我提供基地址: APULPF3_MEM_BASE 为 0x400E0000

    相反、我能够在不同的地址看到数据、如下图所示

     

    谢谢、

    Shubhangi

     
        

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

    您好 Shubhangi、  

    我正在与团队核实。 我知道为什么会发生这种情况。  

    该 API 指南已更新、现在包含一行、其中指出“从 APU 存储器复制数据由驱动程序自动处理、并在结果指针位于 APU 存储器之外时以中断方式发生“。 请参阅 此处的 APU API 指南。  

    我认为这可能解释了 APU_music 示例工程无法在 9.14.00.41 上运行的原因、以及为什么在标准 SRAM 中找到您正在运行的运算结果、而不是 APU RAM。  

    请期待星期一 (12/8) 下周的答复。 同时、您可以使用  

    谢谢、

    Isaac

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

    您好 Issac、

    感谢您提供的信息。 期待更新。

    谢谢、
    Shubhangi

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

    您好 Shubhangi、  

    抱歉、我目前没有更新。 我仍在等待团队的更新。  

    感谢您的耐心。  

    此致、  
    Isaac

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

    您好、Isaac、

    感谢您的更新。

    感谢您让我知道、一旦您收到团队的更新、我将等待您回复。

     

    此致、

    Shubhangi

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

    您好 Shubhangi、  

    对延迟深表歉意。 我没有收到团队的更新。 我正在努力获取此更新。  

    感谢您的耐心!

    谢谢、
    Isaac