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/PROCESSOR-SDK-K2G:在 CCS7中构建 IPC ex02_MessageQ 示例

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/598384/rtos-processor-sdk-k2g-build-ipc-ex02_messageq-example-in-ccs7

器件型号:PROCESSOR-SDK-K2G
主题中讨论的其他器件:EVMK2G66AK2G02

工具/软件:TI-RTOS

pdk_k2g_1_0_5安装在默认目录中。


我在 C:\ti\ipc_3_44_01_01\examples 中遵循了 readme.txt
和构建
C:\ti\ipc_3_44_01_01\examples\66AK2G_BIOS_elf\ex02_MessageQ、适用于主机(ARM)和 core0 (DSP)
而不会出现任何问题。
然后、将两个.out 文件加载到 CCS 中并成功在 K2G EVM 上运行。 这些消息在 CCS 的 RTOS 对象视图中观察到。

由于我在 CCS 中进行了其他开发、我实际上需要在 Windows 上的 CCS 中构建 ex02_MessageQ 示例。

我发现了这一涉及类似问题的链接:
CCS 中的 e2e.ti.com/.../443667 IPC

我尝试按照此链接中提到的更改进行操作、但并非完全针对 IPC 示例代码。 该链接介绍了如何将 package.bld 中的所有存储器区域从示例添加到自定义平台。 但存储器区域所在的 K2G 示例代码
C:\ti\ipc_3_44_01_01\examples\66AK2G_BIOS_elf\ex02_MessageQ\shared\config.bld

无论如何、我使用了平台向导并在中定义了基于 K2G 存储器映射的自定义平台
 以便从示例代码的 config.Bld 中添加所有存储器区域
以在我的定制平台中封装.bld。

当我尝试构建时、我收到以下错误:

****为项目 My_MessageQ_evmK2G_c66x 构建配置调试****

"C:\\ti\\ccsv7\\utils\\bin\\gmake"-k -j 32 all -O
'生成文件:./My_Mq.cfg '
'调用:XDCtools '
"C:/ti/xdctools_3_32_01_22_core/xs "-xdcpath="C:/ti/bios_6_46_04_53/packages;C:/ti/pdk_k2g_1_0_5/packages;C:/ti/edma3_lld_2_12_03_27/packages;C:/ti/ipc_3_44_01_01/packages;C:/ti/ndk_2_25_01_11/packages;C:/ti/uia_2_00_06_52/packages;C:/ti/ccsv7/ccs_base;C:/Users/sjw/ti/myRepository/platforms;" xdc.tools.configuro configPkg -t ti.targets.elf.c66 -p myK2gEvm256MBddr3 -r debug"/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.2 "cfg_mq"。
正在制作 package.mak (由于 package.bld)...
正在为软件包 configPkg 生成接口(因为 package/package.xdc.inc 比 package.XDC 旧)...
从 package/cfg/My_mQ_pe66.cfg 配置 My_Mq.xe66 ...
subdir_rules.mk:19:目标'Build-1777438783-InProc '的配方失败
JS:"c:/Users/sjw/workspace_v7/My_messageQ_evmK2G_c66x/ipc.cfg.xs、第115行:TypeError: Cannot read property "base" from undefined (C:/Users/sjw/workspace_v7/My_messageQ_evmK2G_c66x/ipc.cfg.xs #115)
   "C:/Users/sjw/workspace_v7/My_messageQ_evmK2G_c66x/My_mQ.cfg、第144行
   "./package/cfg/My_mQ_pe66.cfg,第188行
gmake.exe:***[package/cfg/My_MQ_pe66.xdl]错误1
JS:"c:/ti/xdctools_3_32_01_22_core/packages/xdc/tools/Cmdr.xs、第52行:错误:xdc.tools.configuro:由于先前的错误(状态= 2)、配置失败;已删除'linker.cmd'。
gmaking[1]:***[Build-1777438783-InProC]错误1.
gmake:***[build-1777438783]错误2.
subdir_rules.mk:16:目标'build-1777438783'的配方失败
gmake:目标"全部"不会由于错误而重新生成。

****构建完成****

/Debug/configPkg 下自动生成的 config.Bld 和 package.Bld 都没有我在自定义平台中添加的存储器区域。 我在这里做了些什么问题吗?

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

    我已通知软件团队。 反馈将直接发布在此处。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以在修改 ipc.cfg.xs 之后构建
    VAR SR0Mem ={
    名称:"SR_0"、空格:"data"、访问:"rw"、
    基地址:0x84800000、len:0x200000、
    注释:"SR#0内存(2 MB)"
    };

    SharedRegion.setEntryMeta(0、
    新建 SharedRegion.entry ({
    姓名: "SR_0"、
    基址: SR0Mem.base、
    长度: SR0Mem.len、
    ownerProId:1、
    IsValid: 对、
    高速缓存启用:xdc.global.SR0_高速 缓存启用
    })
    );

    这只是为了传递有关的抱怨
    " TypeError: Cannot read property "Bbase" from undefined "(类型错误:无法从未定义的"

    一旦我加载 DSP .out 文件(ARM 仍然具有来自 CCS 外部编译的输出文件),它就会在 SERVER_CREATE ()中失败。

    以下是从 ROV -> RAW 中提取的
    主页:-->
    SERVER_taskFxn:-->
    SERVER_taskFxn:IPC 就绪
    错误:"(未知文件)"、第256行:E_exceptionMax:PC = 0x1b0d820c、sp = 0x840011e8。

    如何正确处理 IPC.cfg 中的 SharedRegion 和 CONFIG[Bld 中的 MemoryMap?
    这两个文件都位于 C:\ti\ipc_3_44_01_01\examples\66AK2G_BIOS_elf\ex02_MessageQ\shared 中
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    最后、我可以使 CCS 中的 DSP ex02_MessageQ 软件正常工作、并且 ARM 和 DSP 之间的通信也正常工作。
    我执行了以下步骤
    1.使用空 RTSC 工程创建新的 CCS 工程。
    2.将服务器(DSP)的示例代码:Core0.cfg、mainCore0.c、Server.c、Server.h 和./shared/AppCommon.h 复制到我的新 CCS 项目的 wrokspace
    3.将存储器相关变量和设置从./shared/ipc.cfg.xs 和 config.Bld 添加到 Core0.cfg
    修复了编译期间的任何错误。 这些错误可在 Core0.cfg 中修复。
    5.将平台更改为我的新平台。 如果选择了平台 ti.platforms.evmTci66AK2G、则可以跳过此步骤。 如果我选择的器件是66AK2G02、我不知道为什么 evmTci66AK2G 不可用。 可用平台为 evmC66AK2E 而非 K2G。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    约书亚、

    感谢您的更新。

    >>如果选择了平台 ti.platforms.evmTci66AK2G、则可以跳过此步骤。 如果我选择的器件是66AK2G02、我不知道为什么 evmTci66AK2G 不可用。

    该平台应在 C:\ti\BIOS_6_46_04_53\packages/ti\platforms\evmTCI66AK2G02中定义、您可能需要进行检查、以防意外移除。

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

    K2G 平台实际上位于 C:\ti\BIOS_6_46_04_53\packages/ti\platforms\evmTCI66AK2G02中。 但 它只是被过滤掉、而没有显示在平台字段中。 我是否错过了任何步骤?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这很有意思。 针对目标 A15而不是 C66x 正确显示了平台。 此外、导入的 PDK RTOS 示例(由 pdkprojectcreate.bat 生成)也列出了该平台。 我已要求其他团队帮助研究这一点。

    此致、
    Garrett