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:如何将共享内存堆用于 MessageQ 应用?

Guru**** 2577385 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/629315/rtos-how-to-use-shared-memory-heap-for-messageq-app

Thread 中讨论的其他器件:OMAPL138

工具/软件:TI-RTOS

您好,

我设法使 IPC 3.46.00.02版本的 ex02_message 示例正常工作。 (可从下载

)

我在*。cfg 文件中添加了以下代码

/*共享内存基址和长度*/
VAR SHAREMDE= 0x80001400;
VAR SHAREDMEMSIZE = 0x00002000;

/*
*需要定义共享区域。 IPC 模块使用此功能
*以制作可移植指针。 所有处理器都需要添加此内容
*使用其共享存储器区域的基址进行调用。
*如果处理器无法访问内存,请勿添加。
*
VAR SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');
SharedRegion.setEntryMeta(0、
{基地址:SHAREMMEM,
Len:SHAREDMEMSIZE、
ownerProId:0、
IsValid:true、
名称:"Shared RAM"、
});

并希望为 MessageQ 创建堆。

我尝试添加<#include /ti/sdo/ipc/SharedRegion.h  

希望使用 Memory_alloc (SharedRegion_getHeap (0)、256、8、NULL);  

而 不是 msg =(App_Msg *) MessageQ_alloc (Module.heapId、Module.msgSize);

但我遇到以下错误:

编号
#生成所有...
使 profile=debug app_host
make[3]:输入目录'/opt/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq/host
编号
#正在生成 bin/debug/obj/App.ov5T...
/opt/ti-processor-sdk-linux-omapl138-lcdk-04.00.00.04/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabi-gcc -D_reentrant -c -md -mf bin/debug/obj/App.ov5T.dep -Wall -ffloat-store -fic -wunused -pthread -dfar=-ggdb -D debug -i. 一. -I/opt/ti/ipc_3_46_00_02/linux/include -I/opt/ti/ipc_3_46_00_02/packages -o bin/debug/obj/App.ov5T App.c
在 App.c:46:0中包含的文件中:
/opt/ti/ipc_3_46_00_02/packages/ti/sdo/ipc/SharedRegion.h:50:21:致命错误:xdc/sdst.h:无此类文件或目录
#include
^μ A
编译已终止。

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

    我已将您的疑问转发给软件专家。 他们的反馈应发布在此处。

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

    共享区模块仅在 SYS/BIOS 环境中受支持、请参阅 processors.wiki.ti.com/.../SharedRegion_Module:中的注释

    仅 SYS/BIOS 环境支持共享区域模块。 HLOS 上未提供该功能。 对于 HLOS 环境、我们建议在可用时使用本机共享存储器 API、例如 Android 上的 Ion。 其他替代方案包括 CMEM (用于 Linux)和特定于 QNX 的 SharedMemoryAlloctor (在 IPC 的 QNX/目录中提供)。

    此致、
    Garrett