Other Parts Discussed in Thread: OMAP-L138
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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 内核访问共享区域?
共享区域配置