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.

[参考译文] Linux/DRA72XEVM:如何使用 OCMC_RAM1配置 IPC

Guru**** 2595800 points
Other Parts Discussed in Thread: DRA725

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/642686/linux-dra72xevm-how-to-config-ipc-with-ocmc_ram1

器件型号:DRA72XEVM
主题中讨论的其他器件:DRA725

工具/软件:Linux

硬件:DRA725

软件:TI-processor-sdk-linux-Automotive ra7xx-evm-03_02_00_03

我从 https://e2e.ti.com/support/arm/sitara_arm/f/791/t/503515尝试该示例

它在我的板上运行良好。 但存储器访问性能不佳。

因此、我尝试使用 OCMC_RAM1配置 IPC

下面是我的配置:

在 Linux 内核 DTS 上:

      cmem_block_mem_1_ocmc1:cmem_block_mem@0x40300000{
           REG =<0x0 0x40300000 0x0 0x080000>;
           无地图;
           状态="正常";
       };

   cmem{
      兼容="ti、cmem";  
      #address-cells =<1>;
      #size-cells =<0>;
      状态="正常";
      #pool-size-cells =<2>;

      cmem_block_0:cmem_block@0{
            reg =<0>;
            MEMORY 区域=<&cmem_block_mem_1_ocmc1>;
            cmem-buf-Pools =<4 0 0x20000>;
       };
   };

在 ex02_MessageQ/shared/config.Bld 上

var evmDRA7XX_CMEM ={
       名称:"OCMC_RAM1"、空间:"数据"、访问:"rw"、
       基地址:0x40300000、len:0x80000、
       注释:"CMEM 存储器(512KB)"
};

Build.platformTable["ti.platforms.evmDRA7XX:dsp1"]={
   externalMemoryMap:[
       ["EXT_CODE"、evmDRA7XX_ExtMemMapDsp.EXT_CODE ]、
       ["EXT_DATA"、evmDRA7XX_ExtMemMapDsp.EXT_DATA ]、
       ["EXT_HEAP "、evmDRA7XX_ExtMemMapDsp.EXT_HEAP ]、
       ["trace_BUF"、evmDRA7XX_ExtMemMapDsp.trace_BUF ]、
       ["EXC_DATA"、evmDRA7XX_ExtMemMapDsp.EXC_DATA ]、
       ["PM_DATA"、evmDRA7XX_ExtMemMapDsp.PM_DATA]、
       [ evmDRA7XX_CMEM.name、evmDRA7XX_ExtMemMapDsp.CMEM ]、
   ]、
   代码内存:"EXT_CODE"、
   dataMemory:"EXT_DATA"、
   stackMemory:"EXT_DATA"、
};

错误日志导致编译失败:

dctools-tree/packages/xdc/platform/Utils.xs",第104行:ti.platforms.evmDRA7XX.Platform.Instance#0 ti.platforms.evmDRA7XX.Platform.Instance#0/externalMemoryMap:内存名称 OCMC_RAM1已用于现有内存对象

如何在 DSP 端为 OCMC_RAM1配置存储器映射?

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

    我已将您的问题转交给 IPC 专家。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    该错误表示"OCMC_RAM1"名称已被使用。 默认情况下、evmDRA7XX 平台在存储器映射中定义了 OCMC_RAM1存储器。 是否可以在不进行更改的情况下检查存储器映射? OCMC_RAM1应该已经在那里。

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

    我只将 DSP 固件上的 cmem 大小更改为 mach 512KB 限制。 运行错误日志:

    [ 0.000] 18个资源条目、位于0x95000000
    [ 0.000][t=0x00044ac2] xdc.runtime.Main:-> main:
    [ 0.000]使用主机在61上注册 rpmsg-proto:rpmsg-proto 服务
    [ 0.000][t=0x0050ea07] xdc.runtime.Main: NameMap_sendMessage:host 53、port=61
    [ 0.000][t=0x0053c825] xdc.runtime.Main:--> smain:
    [ 0.000][t=0x005663269]服务器:SERVER_CREATE:服务器就绪
    [ 0.000][t=0x0057d0e5]服务器:<- Server_create:0
    [ 0.000][t=0x00591bd1]服务器:--> Server_exec:
    [ 0.000][t=0x00000001:b46c630b]服务器:Server_exec:找不到 PHY 0x40360000的资源
    [ 0.000]
    [ 0.000][t=0x00000001:b46ef59d]服务器:Server_exec:找不到 PHY 0x40340000的资源
    [ 0.000]
    [ 0.000][t=0x00000001:b471644e]服务器:Server_exec:已处理 CMD=0x2000000
    [ 0.000][t=0x00000001:b4739298]服务器:<- Server_exec:0
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您的应用程序似乎无法进行地址转换? 是否使用了 Resource_physToVirt? 使用 Resource_physToVirtt 的地址转换是根据编译到映像中的 Remoteproc 资源表完成的。 您是否使用  新地址的条目更新了资源表?

    您可以在 此处找到有关创建自定义资源表的信息:

    谢谢、

    Angela