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.

[参考译文] AWR1843BOOST:DPU 数据存储器位置和分配

Guru**** 2439600 points
Other Parts Discussed in Thread: AWR1843BOOST

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1539581/awr1843boost-dpu-data-memory-location-and-allocation

器件型号:AWR1843BOOST


工具/软件:

您好:

当确定 DPU 的特定存储器位置时、我遇到了一些问题。 根据 xWR 雷达技术参考手册、我可以看到 L3 RAM 从 0x5100_0000 开始、L3 RAM 用于 DPIF_RadarCube(rangeProc DPU 的输出)。 但是、我还想知道 DPIF_DETMATRIX、DPIF_CFGARDetList_t 和 DPIF_PointCloudCartesian 位于哪里。 另一个问题是、在浏览演示代码时、我可以看到分配给雷达立方体的存储器是 0x2000_0000、不是 0x5100_0000、因此我猜肯定有一些映射机制、是否有任何详细文档可用于检查存储器映射?

此致

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

    您好、

    关于存储器映射、请记住、AWR1843BOOST 具有两个内核、即 ARM 和 DSP。 每个内核都有一个存储器映射。 请检查 TRM 中的存储器映射。

    您的问题似乎基于毫米波 SDK 3.6 OOB 演示。

    存储器被分配为数组

    请参阅 dss_main.c 中的:

    /*! 用于对象检测 DPC 的 L3 RAM 缓冲器*/
    uint8_t gMmwL3[SOC_L3RAM_size]
    #ifndef SOC_XWR68XX
    /* EDMA 4K 芯片错误相关:将堆与 4K 地址边界对齐,这样
     *与堆无关的更改(如程序代码)不会改变与 4K 相关的更改
     *行为*/
    #pragma DATA_ALIGN (gMmwL34096U);
    #endif
    pragma DATA_SECTION (gMmwL3“.l3ram")“);

     /*! 用于对象检测 DPC 的 L2 RAM 缓冲器*/
    #define MMWDEMO_OBJDET_L2RAM_SIZE (49U * 1024U)
    UINT8_t gDPC_ObjDetL2Heap[MMWDEMO_OBJDET_L2RAM_size]
    #ifndef SOC_XWR68XX
    /* EDMA 4K 芯片错误相关:将堆与 4K 地址边界对齐,这样
     *与堆无关的更改(如程序代码)不会改变与 4K 相关的更改
     *行为*/
    #pragma DATA_ALIGN (gDPC_ObjDetL2Heap4096U);
    #endif
    #pragma DATA_SECTION (gDPC_ObjDetL2Heap“.DPC_l2Heap")“);

     /*! 用于处理结果的 HSRAM */
    #pragma DATA_SECTION (gHSRAM“.demoSharedMem")“);
    #pragma DATA_ALIGN (gHSRAM4);
    此信息将传递给 ObjectDetection DPC

      objDetInitParams.L3ramCfg.addr =(void *)&gMmwL3[0]
      objDetInitParams.L3ramCfg.size = sizeof (gMmwL3);
      objDetInitParams.CoreL2RamCfg.addr =&gDPC_ObjDetL2Heap[0]
      objDetInitParams.CoreL2RamCfg.size = sizeof (gDPC_ObjDetL2Heap);
      objDetInitParams.CoreL1RamCfg.addr =&gDPC_ObjDetL1Heap[0]
      objDetInitParams.CoreL1RamCfg.size = sizeof (gDPC_ObjDetL1Heap);
    对象检测模块使用 API 来管理存储器池。请参阅(例如具有 MemPool 的 API)
    通过 MrmPoolAlloc () API 定义池并从这些池分配内存
    C:\ti\mmwave_sdk_03_06_02_00-LTS\packages\ti\datapath\dpc\objectdetection\objdetdsp\objdetection\objectdetection.c src
    这个演示是很久以前开发的、开发代码的团队不再提供支持。
    源代码基本上就是我们拥有的有关代码的所有信息
    谢谢你
    Cesar