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-OMAPL138:使用 make 生成 IPC 示例

Guru**** 2551110 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/617668/rtos-processor-sdk-omapl138-using-make-to-build-ipc-examples

器件型号:PROCESSOR-SDK-OMAPL138
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

我尝试按照步骤构建提供的 IPC 示例

我一点也不幸运、因为 Makefile 文件不包含所需的目标...

我正在运行 OMAP-L138-lcdk 板、wiki 页面提到仅为 keystone2-EVM 加载开箱即用演示。 我是否假设我可以构建简单的 MessageQ 演示并将其手动加载到 OMAP-L138-lcdk 板中?

如果 Im 正确遵循以下说明:

  1. 将 Linux 处理器 SDK 安装到$HOE/ti/ti-processor-sdk-linux...中
  2. 添加交叉编译工具链-按照内核构建过程完成
  3. 从 Linux Processor SDK 文件夹中、启动 Build is make-Unable to as no rule to make target exists

步骤片段...

Juan@marlin ~/ti/ti-processor-sdk-linux-omapl138-lcdk-04.00.00.04 $ echo $path
/home/juan/ti/ti-processor-sdk-linux-omapl138-lcdk-04.00.00.04/linux-devkit/sysroots/x86_64-arago-linux/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/5.4.0
Juan@marlin ~/ti/ti-processor-sdk-linux-omapl138-lcdk-04.00.00.04 $ make ti-IPC-Linux
make:***没有规则使目标'ti-IPC-Linux'成为目标。 停下。 

当前 makefile 目标...

#内核构建目标
Linux:
Linux_install:
linux_clean:

# make rules for matrix-GUI project
matrix-GUI:
Matrix-gui_clean:
Matrix-benchmarks 构建

目标
arm-benchmarks:
arm-benchmarks_install
:
arm-benchmarks_install_debug:

# am-sysinfo 构建目标
am-sysinfo:am-install_profile_linux-browser







:ams-install_profile_example




:am-install-linux-install_guie-profilese-profile_install-linux-profiles: am-install-profile_linux-profiles_sines_sines_sinover-example


# refresh-screen build targets
refresh-screen
:refresh-screen_install
:
refresh-screen_install_debug:

# PRU build targets
PRU:Linux
PRU_clean:
PRU_install:

# u-boot build targets
u-boot-legacy:u-boot
u-boot-legacy_clean:u-boot_clean
:u-boot-u-boot_u-legacy

:u-boot-u-install:u-boot-u-boot_clean:u-boot_u-u-linux-u-clean:u-boot_install_u-legacy:

我确定我错过了什么。 您能看到我出了什么问题吗?

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

    我已将此内容转发给 TI-RTOS 专家。 他们的反馈应发布在此处。

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

    你没有错过任何东西。 ProcSDK 开始在4.0.0.4版本中包含 OMAP-L。 我认为 TI 忽略了在此平台上构建的顶层。 这是一个错误。 我将把它提交给我们的错误系统。 您可能需要按照 IPC 用户指南 processors.wiki.ti.com/.../IPC_Users_Guide 中的说明进行操作。

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

    谢谢 Rex。

    执行以下操作后、IM 现在能够构建 IPC 库  

    但我并不是一路都能找到,因为我仍然无法树立榜样。

    Juan@marlin ~/ti/ipc_3_46_00_02/examples $ make platform=OMAPL138 Hostos=Linux 
    # #生成所有示例... make[1]:输入目录'/home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq 主机 toolchain_prefix =/home/juan/ti/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi- BIOS_install_DIR =/home/juan/ti/bios_6_46_05_55 IPC_INSTALL_DIR =/home/juan/ti/ipc_3_46_00_02 XDC_INSTALL_DIR =/home/juan/ti/xdctools_3_32_01_22_core ti.targets.elf.c674 =/home/juan/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3 make[1]:离开目录'/home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq make[1]:进入目录'/home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq ## Making DSP... make -C DSP PROCLIST="DSP host" make[2]:进入目录'/home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq/dsp make profile=debug PROCLIST="DSP host" server_dsp.x make[3]:进入目录'/home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq/dsp ## make bin/debug/server_dsp.xe674... /home/juan/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/bin/cl6x -z -w -q -u _c_int00 -c -m bin/debug/obj/server_dsp.xe674.map -o bin/debug/server_dsp.xe674 bin/debug/obj/Maindsp.oe674 bin/debug/obj/Server.oe674 \ bin/debug/configuro/linker.cmd -l /home/juan/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/lib/libc.a 未定义 第一个参考 符号 文件中 ------ -------- TI_IPC_family_omapl138_virtqueue_instance_init__E /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq/dsp/bin/debug/configuro/package/cfg/Dsp_pe674.oe674 TI_IPC_family_omapl138_virtqueue_addUsedBuf__E /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq/dsp/bin/debug/configuro/package/cfg/Dsp_pe674.src/ipc/ipc.ae674 TI_IPC_family_omapl138_virtqueue_getAvailBuf__E /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq/dsp/bin/debug/configuro/package/cfg/Dsp_pe674.src/ipc/ipc.ae674 TI_IPC_family_omapl138_virtqueue_king__E /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq/dsp/bin/debug/configuro/package/cfg/Dsp_pe674.src/ipc/ipc.ae674 TI_IPC_family_omapl138_virtqueue_startup___F /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq/dsp/bin/debug/configuro/package/cfg/Dsp_pe674.oe674 错误:未解析的符号仍 存在错误:链接期间遇到错误;"bin/debug/server_dsp.xe674"未 生成 >>编译失败 make[3]:***[makefile:65:bin/debug/server_dsp.xe674]错误1 make[3]:离开目录'/home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq/dsp make[2] :***[makefile:56]错误2[dsp /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq/dsp : /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex02_messageq make 目录:1[maked]:1[make2]:1[makedese] 输入目录"/home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping BIOS_install_DIR =/home/juan/ti/bios_6_46_05_55 IPC_INSTALL_DIR =/home/juan/ti/ipc_3_46_00_02 XDC_INSTALL_DIR =/home/juan/ti/xdctools_3_32_01_22_core ti.targets.elf.c674 =/home/juan/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3 host toolchain_prefix =/home/juan/ti/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi- make[1]:离开目录/home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping make[1]:进入目录"/home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping ## Making DSP... make -C DSP PROCLIST="DSP host" make[2]:进入目录'/home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping/dsp make profile=debug PROCLIST="DSP host" server_dsp.x make[3]:进入目录'/home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping/dsp ## make bin/debug/server_dsp.xe674... /home/juan/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/bin/cl6x -z -w -q -c -m bin/debug/obj/server_dsp.xe674.map -o bin/debug/server_dsp.xe674 bin/debug/obj/Maindsp.oe674 bin/debug/obj/SvrDsp.oe674 bin/debug/obj/appdsp.oe674 bin/debug/l linker.cmd -configuration/boot.cmd /home/juan/ti/ccsv7/tools/compiler/ti-cgt-c6000_8.1.3/lib/libc.a 未定义 第一个参考 符号 文件中 ------ -------- virtqueue_cacheWb /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping/dsp/bin/debug/configuro/package/cfg/Dsp_pe674.oe674 TI_IPC_family_omapl138_virtqueue_instance_init__E /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping/dsp/bin/debug/configuro/package/cfg/Dsp_pe674.oe674 TI_IPC_family_omapl138_virtqueue_addUsedBuf__E /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping/dsp/bin/debug/configuro/package/cfg/Dsp_pe674.src/ipc/ipc.ae674 TI_IPC_family_omapl138_virtqueue_getAvailBuf__E /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping/dsp/bin/debug/configuro/package/cfg/Dsp_pe674.src/ipc/ipc.ae674 TI_IPC_family_omapl138_virtqueue_king__E /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping/dsp/bin/debug/configuro/package/cfg/Dsp_pe674.src/ipc/ipc.ae674 TI_IPC_family_omapl138_virtqueue_startup___F /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping/dsp/bin/debug/configuro/package/cfg/Dsp_pe674.oe674 错误:未解析的符号仍 存在错误:链接期间遇到错误;"bin/debug/server_dsp.xe674"未 生成 >>编译失败 make[3]:***[makefile:57:bin/debug/server_dsp.xe674]错误1 makefile [3]: 离开目录'/home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping/dsp makefile:2]:***[makefile:50:all]错误2 /home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping/dsp :[makefile:/home/juan/ti/ipc_3_46_00_02/examples/OMAPL138_linux_elf/ex11_ping make 目录:1:93] All]错误2

    事实上,预编译内核/rootfs 上有 MessageQApp (不是理想的,但必须执行)。 我可以在电路板上运行应用程序、包括将 DSP trace0加载到/debug 上的 debugfs 中。 我认为这将一直持续到 SDK 更新、因为它确认电路板配置正确...  

    但是,在生成 CCSv7.2项目时(尝试复制 MessageQApp,而且您知道,做一些工作) ,缺少环境变量(其中 XXXX 是 IPC/XDC/TI_PDK/BIOS);

    • xxxx_include_path 环境变量-全部包含
      我可以通过手动添加所需的软件包文件夹来解决这些问题、现在很烦人、但 至少要编译应用程序
    • xxxx_libraries 和 XXXX_library_path 环境变量  -全部包含
      我还没有浏览过所有缺少的符号,因此我的应用程序还没有链接(MessageQ_*、ti_SysBIOS_*、XDC_runtime __*、MultiProc_*),但我确定它将被修复一次...

    我了解应用程序无法编译/链接的原因(缺少头文件和依赖项)... 问题是、CCS 是否应该从已安装的软件包中为我填充上述环境变量?  

    我选择了正确的产品(因为我确保每个产品只有一个版本-由 RTOS SDK 安装)
    CCS 检测到这些产品、并在应用程序启动时"已安装"这些产品
    环境变量告诉我它们是"产品 XXXX"贡献的、并显示" "作为值。  这些变量由 CCS 根据所选的产品进行添加/更新。

    如何获取 CCS 检测/使用的正确路径和库? 这是您可以帮助我的吗?还是最好在新的主题/CCS 论坛中提问? 我不知道这些变量的配置位置/方式以及它们是否"发送到 CCS...

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

    在构建示例之前、您是否做得很干净? 如果确实如此、则可能会删除 SDK 中包含的 IPC 库。 从未定义符号的错误中、我怀疑是这样的。 您可能需要按照 processors.wiki.ti.com/.../IPC_Install_Guide_BIOS 中的说明尝试重建 IPC、然后构建示例。

    我将请 RTOS 工程师回答您的 CCS 相关问题。

    雷克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我对这一帖子中的最后几个问题也很感兴趣。 "如何获取 CCS 检测/使用的正确路径和库? 这是您可以帮助我的吗?还是最好在新的主题/CCS 论坛中提问? 我不知道这些变量的配置位置/方式以及它们是否"发送到 CCS... "
    如果这些文件可以简单地创建和完成 CCS、而不是纯生成文件、那将会非常好。 Juan 您是否找到了 CCS 的方法?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Rex Chang"]

    你是清洁的吗?

    [/报价]

    我认为我没有... 但我尝试了很多不同的东西、所以谁知道...

    我尝试构建 IPC 的 BIOS 端、但出现以下故障;

    CLE9 InterruptArm.c……
    "InterruptArm.c"、第40行:致命错误:无法打开源文件"ti/sysbios/family/ARM/DM6446/Hwi.h"
    在编译"InterruptArm.c"时检测到灾难性错误。
    编译已终止。 

    因此、我再次重新安装了 IPC (使用 RTOS 处理器 SDK)、并且仅构建了 Linux 端;

    make -f IPC-Linux.mak config
    make
    sudo make install 

    一切都如预期的那样成功、有一个小(或者可能不是?) 配置阶段警告;

    /home/juan/ti/ipc_3_46_00_02/linux/build-aux/missing:unknown
    `--is-lightweight (未知的`--is-is-lightweight)'选项尝试/home/juan/ti/ipc_3_46_00_02/linux/build-aux/missing --help'以了解更多信息
    configure:warning:'msing'脚本太旧或缺失 

    在该阶段、我再次尝试构建一些示例、我看到了相同的未定义符号。 我现在唯一的猜测是 products.mak 配置不正确?

    e2e.ti.com/.../products.cfg

    如现在所示...

    我能够根据这些 Linux 库进行构建(生成有效的 GNU 可执行文件以在电路板上运行)、因此我可以继续开发过程... 我现在将介绍如何使用 Remoteproc 将我自己的 DSP 固件文件加载到电路板上的学习动作... 这应该完全测试我的 IPC 开发生态系统...

    但是、最好能够按照所提供的内容构建这些库和示例...  

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

    [引用用户="Jorden Luke "]

    Juan 您是否找到了 CCS 的方法?

    [/报价]

    尊敬的 Jorden:

    此时、我生成了两个测试项目。 一个用于使用 GNU 的 ARM、另一个用于使用 TI/RTOS 编译器的 DSP。

    IM 手动更新 Linux 端应用程序的 CCS 包含目录、库和库路径。 此应用程序会编译和链接、并能够在目标板上运行。

    RTOS 应用程序不需要任何手动配置。 路径在 XDC 工具页面中正确显示、但在 C6000编译器和链接器配置页面中仍然为空... 我无法正确加载固件以在电路板上运行、因此无法确认这是否正确、只需对其进行编译并链接时没有错误。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何在 CSS 包含目录中添加库? 我已经厌倦了通过链接资源和构建环境添加它们。 include 目录仍然没有放入正确的文件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Jorden Luke ]CSS 头文件目录中的库是如何添加的? 我已经厌倦了通过链接资源和构建环境添加它们。 include 目录仍然没有放入正确的文件。

    [/报价]
    我目前不在我的开发 PC 上、但这就是我所做的...
    为了进行编译、我添加了编译器包含目录的安装路径;
    /usr/local/include/ti 

    这将有助于查找所有缺少的头文件...

    要进行链接、我向链接器库路径添加了以下路径;

    /linux/src/api/.libs
    /linux/src/utils/.libs
    /linux/src/transport/.libs 

    并添加必要的库;

    tiipc
    tiipcutils
    titransimpmsg 

    这将有助于解析所有 IPC 函数调用...

    您可能还只需添加系统范围的安装目录/usr/local/lib、但我看到过一些文章、人们最终使用错误的库版本、而内容未按计划执行、因此我认为链接到特定版本是一个更好的主意、而不是链接到系统范围的副本。 现在、我想一下、也许对 include 目录执行相同操作是个更好的主意...

    我的 GNU 项目设置为交叉编译项目。

    按照 Wiki 中的步骤10和11、所有设置都在 C/C++ Build -> Settings 中更新。