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.

[参考译文] RTOS/OMAP-L138:CAN#39;t 从 Linux 内核获取共享区 ID

Guru**** 2935310 points

Other Parts Discussed in Thread: OMAP-L138

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/670631/rtos-omap-l138-can-t-get-sharedregion-id-from-linux-kernel

器件型号:OMAP-L138

工具/软件:TI-RTOS

大家好!

我使用的是 OMAP-L138。 使用 Syslink 功能在 BIOS 上运行 DSP。 在*。cfg 文件中定义了一些共享区域(SR0、SR1):

/*共享区域配置*/
var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');

/*配置 SharedRegion #0 (IPC)*/
var SR0Mem = Program.cpu.memoryMap["SR_0"];

SharedRegion.setEntryMeta(0、
新建 SharedRegion.entry ({
姓名: "sr0"、
基址: SR0Mem.base、
长度: SR0Mem.len、
ownerProcId:MultiProc.getIdMeta ("host")、
高速缓存启用:false、
IsValid: 真
})
);

//配置 SharedRegion #1 (程序共享区)*/
var SR1Mem = Program.cpu.memoryMap["SR_1"];

SharedRegion.setEntryMeta(1、
新建 SharedRegion.entry ({
姓名: "共享区域"、
基址: SR1Mem.base、
长度: SR1Mem.len、
ownerProcId:MultiProc.getIdMeta ("host")、
高速缓存启用:false、
IsValid: 真
})
); 

在 Linux 端(在内核模块中)、从主机加载时、从每个从可执行文件读取有关共享区域的信息。

但我无法在这样的代码中看到我的区域:

uint16 regid;

regid = SharedRegion_getIdByName ("SR0");
pr_info ("SR0 ID:%d\n"、regid);
regid = SharedRegion_getIdByName ("shared region");
pr_info ("shared region &ID:%d\n"、region);

if ("x_trase =%dx、gr、
gr 1)、sqeName (%dr

、sqe1)、gr (%dx 区域名称:%dx、gr、spr"(n_r) entry.base、entry.len、entry.IsValid、entry.name、entry.ownerProId);
} 

我只能得到这样的回报:

SR0 ID:65535
共享区域 ID:65535
共享区域#1:基址0x0、len 0x0、有效0、名称(空)、所有者0 

因此、我只获得 SharedRegion_INVALIDREGIONID   (0xFFFF)。

Linux (主机)引导配置有效:共享区域定义为仅供 DSP 使用。

我还应该如何从 Linux 内核访问共享区域?

共享区域配置

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

    您能否分享在 OMAP-L138的 ARM 内核上运行的 Linux SDK?
    DSP 上还运行哪个 RTOS SDK 版本?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我仍在为 OMAP-L138使用 mcsdk_1_01_00_02。
    我还将 syslink_2_21_01_05/BIOS_6_35_01_29用于 DSP 内核。

    我只需要使用共享区域、而无需其他 IPC 功能。
    我还从 IPC 3.X 中读取、在使用 SharedRegion 之前、我需要运行 IPC_START()。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我需要将 SysLink_setup()和 IPC_control()函数添加到 userspace 代码中。 我还向 DSP 代码添加了 IPC_START()和 IPC_ATT()以连接到远程主机(ARM)。

    谢谢 Yordan!

    此致、Bakir

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

    此致、
    Yordan