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.

[参考译文] 编译器/EVMK2GX:IPC 构建问题 IPC-Linux.mak 配置

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/899248/compiler-evmk2gx-ipc-build-issue-ipc-linux-mak-config

器件型号:EVMK2GX
Thread 中讨论的其他器件:OMAPL138

工具/软件:TI C/C++编译器



k2gUser@p罂 粟:~/ti/ipcdev-3.50.04.08B make -f IPC-Linux.mak 配置
正在配置 Linux IPC...
./configure --host=arm-none-eabi \
           --prefix=/home/k2gUser/ti/ipcdev-3.50.04.08B/IPC_install \
           CC=/home/k2gUser/ti/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-gcc \
           platform=66AK2G \
           CMEM_INSTALL_DIR=\
           kernel_install_DIR=\
           DRM_PREFIX=\
           AF_RPMSG=45
正在检查 BSD 兼容的安装... /usr/bin/install -c
正在检查构建环境是否正常... 是的
正在检查 ARM-NONE - eabi-strip ... 否
正在检查条图... 条
正在检查线程安全 mkdir -p... /bin/mkdir -p
正在检查 gawk…… 嘎嘎
正在检查 make 设置是否为$(make)... 是的
正在检查 make 是否支持嵌套变量... 是的
正在检查是否启用 Makefiles 的维护人员特定部分... 否
正在检查构建系统类型... x86_64-PC-Linux-GNU
正在检查主机系统类型... arm-none-eabi
正在检查如何打印字符串... printf
正在检查 make 使用的 include 样式... GNU
正在检查 arm-none-eabi-gcc... /home/k2gUser/ti/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-gcc
正在检查 C 编译器是否正常工作... 否
配置:错误:位于`/home/k2gUser/ti/ipcdev-3.50.04.08B 中:
配置:错误:C 编译器无法创建可执行文件
请参阅`config.log'以了解更多详细信息
IPC-Linux.mak:56:目标'config'的配方失败
make:***[config]错误77



k2gUser@Poppy:~/ti/ipcdev-3.50.04.08B cat products.mak
编号
#  版权所有(c) 2012-2018 Texas Instruments Incorporated - http://www.ti.com
编号
#  重新分发并以源代码和二进制形式使用、有无
允许  修改#、前提是满足以下条件
  符合#:
编号
#  * 重新分发源代码必须保留上述版权
#     注意、此条件列表和以下免责声明。
编号
#  * 二进制形式的再发行必须复制上述版权
#     注意、此条件列表和中的以下免责声明
#     分发时提供的文档和/或其他材料。
编号
#  * 德州仪器公司的名称和名称均不相同
#     其贡献者可用于认可或推广衍生产品
#     来自此软件、未经特定的事先书面许可。
编号
#  本软件由版权所有者和贡献者"按原样"提供
#  以及任何明示或暗示的保证、包括但不限于:
#  特定适销性和适用性的隐含保证
#  不承认目的。 在任何情况下、版权所有者不得或
#  贡献者应对任何直接、间接、偶然、特殊、
#  典型或必然的损害(包括但不限于
采购  替代货物或服务;丧失使用、数据或利润;
#  或业务中断)、无论原因是什么以及任何责任理论、
#  无论是合同、严格责任还是侵权行为(包括疏忽或)
#  otherwise)因使用本软件而产生的任何后果、
#  即使被告知可能会发生此类损坏。
编号
#===========  products.mak =====
编号

#请注意、这些变量可以在此处或命令行中显式设置。
#如果要在环境中使用变量,请参见 GNU make 手册
#-e 选项: www.gnu.org/.../make.html

#可选:建议将所有相关组件安装在一个文件夹中。
编号
软件仓库=/home/k2gUser/ti

#为其构建的平台
支持的  平台数(选择一个):
#      OMAPL138、OMAP54XX、DRA7XX、66AK2G、66AK2E、 TCI6630、TCI6636、TCI6638、
#      TDA3XX、AM65XX
编号
#注意、这用于 Linux、QNX 和 BIOS 构建
编号
平台= 66AK2G

#安装内置二进制文件时的目标位置
编号
#注意、这用于 Linux (如果您使用 IPC-Linux.mak 来运行
# configure 命令)、QNX 和 BIOS。
编号
destdir =/home/k2gUser/ti/ipcdev-3.50.04.08B/IPC_install


################## IPC Linux ##############

#设置 IPC Linux 配置和构建所需的交叉编译器路径
编号
#toolchain_longname = arm-none-linux-gnueabi
toolchain_longname = arm-none-eabi
toolchain_install_DIR =$(depot)/gcc-arm-none-eabi-7-2018-Q2-update
toolchain_prefix =$(toolchain_install_DIR)/bin/$(toolchain_longname)-

# Linux 内核路径-构建 IPC 用户库所需
编号
kernel_install_DIR =

#可选:为 RPMSG 指定地址系列。 此值已指定
#从上面 kernel_install_DIR 指定的 Linux 内核、或
#下面的 make 变量 AF_RPMSG。 请勿同时使用。
编号
AF_RPMSG = 45

#可选:DRM 库的路径
编号
DRM_PREFIX =

#可选:TI Linux 实用程序产品的路径
编号
CMEM_INSTALL_DIR =


################## IPC QNX ##############

# QNX 工具安装路径
编号
QNX_INSTALL_DIR =

#可选:任何其他编译选项
编号
QNX_CFLAGS =

################## IPC BIOS ################

IPC BIOS 构建所需相关性的#路径
编号
XDC_INSTALL_DIR =$(返厂维修)/xdctools_3_55_02_22_core
BIOS_install_DIR =$(depot)/BIOS_6_76_02_02
pdk_install_DIR =$(depot)/pdk_k2g_1_0_15

#是否要构建启用 SMP 的库(如果目标支持)?
#设置为0 (禁用)或1 (启用)
编号
BIOS_SMPENABLED=1

#各种 cgtools 的路径
编号
TI.targets.elf.C64P =
TI.targets.elf.C64T =
TI.targets.elf.c66 =/home/k2gUser/ti/ccs1000/ccs/tools/compiler/ti-cgt-c6000_8.3.6
TI.targets.elf.c674 =

TI.targets.arm.elf.arm9 =
TI.targets.arm.elf.A8F =
TI.targets.arm.elf.A8Fnv =
TI.targets.arm.elf.M3 =
TI.targets.arm.elf.M4 =
TI.targets.arm.elf.M4F =
TI.targets.arm.elf.R5F =

TI.targets.arp32.elf.ARP32 =
TI.targets.arp32.elf.ARP32_FAR =

GNU.targets.arm.A8F =
GNU.targets.arm.A15F =/home/k2gUser/ti/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux
GNU.targets.arm.A53F =
k2gUser@Poppy:~/ti/ipcdev-3.50.04.08B

构建机器:
Ubuntu 18.04 SMP x86_64

注意使用 CCS-10提供的工具会生成相同的消息。 版本 IPC_3_50_04_07也失败。

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

    您好、Phillip、

    您是否在 ARM 内核上运行 Linux? 如果是 Linux/ARM、请按照 IPC 快速入门指南中的说明在 Linux SDK 中使用高级构建、

    http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Foundational_Components_IPC.html#ipc-quick-start-guide

    雷克斯

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

    您好 Rex

    是的、ARM 正在运行 Linux。

    APP_HOST 应用程序生成了一个 coredump。

    DSP 内核首先启动、然后启动主机应用。

    root@k2g-evm:/opt/phil /opt/phil/ex02_messageq/host/bin/release/app_host DSP1
    分段故障(转储内核)
    root@k2g-evm:/opt/phil 2020年4月24日01:30:07 k2g-evm 进程1235 (APP_HOST)、用户0转储内核。

    但我找不到核心文件。 我猜核心文件将存储在"/var/lib/systemd/coredump 中。 我还对文件'core.app_host*'执行查找,但未成功。

    此致、

    Phil

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

    您好、Phil、

    是否是 Linux SDK 高级版本中的二进制文件?  DSP 二进制文件是否已加载并在 DSP 上运行?

    在/usr/bin/ipc/examples/ex02_messageq 文件夹下的 Linux 文件系统中有预编译的 ex02_MessageQ 示例二进制文件。 您可以尝试使用它们。

    雷克斯

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

    是否是 Linux SDK 高级版本中的二进制文件?

    不确定您要问什么。

    从"3.7.2中的过程中删除。 IPC 快速入门指南"二进制文件位于"IPC"文件夹中、而不是 Linux SDK 中。

    运行 IPC Linux 示例

    1. 可执行示例位于 IPC_xx_xx_xx/examples 目录下的 RTOS Proc SDK 中。
    _ _elf/ex /host/bin/debug/app_host
    _ _elf/aF <xx_yyyyyy/ /bin/debug <ServerCore_or_component.xe66 for DSP
    _ _elf/aF <xx_yyyyyy/ /bin/debug <sServerCore_or_component.xem4 for IPU 


    我需要更多信息和说明:
     Linux SDK 高级版可以是/home/k2gUser/ti/ti-processor-sdk-linux-k2g-evm-06.01.00.08/targetNFS/usr/bin/ipc/examples、它似乎是/home/k2gUser/ti/ipc_3_50_04_07/examples/66AK2G_linux_elf/ex02_messageq 的副本

           导出路径=/home/k2gUser/ti/ti-processor-sdk-linux-k2g-evm-06.01.00.08/linux-devkit/sysroots/x86_64-arago-linux/usr/bin:$path
           导出 TI_RTOS_PATH=/home/k2gUser/ti
           导出 IPC_INSTALL_PATH=/home/k2gUser/ti/ipc_3_50_04_07


    DSP 二进制文件是否已加载并在 DSP 上运行?

    DSP 内核在 host_app 之前启动

    root@k2g-evm:/usr/bin/ipc/examples/ex02_messageq mpmcl 复位 dsp0
    重置成功
    root@k2g-evm:/usr/bin/ipc/examples/ex02_messageq mpmcl status dsp0
    Dsp0处于复位状态
    root@k2g-evm:/usr/bin/ipc/examples/ex02_messageq mpmcl load dsp0 /opt/phil/ex02_messageq/core0/bin/release/server_core0.xe66
    加载成功
    root@k2g-evm:/usr/bin/ipc/examples/ex02_messageq mpmcl 运行 dsp0
    运行成功
    root@k2g-evm:/usr/bin/ipc/examples/ex02_messageq mpmcl status dsp0
    Dsp0处于运行状态



    在/usr/bin/ipc/examples/ex02_messageq 文件夹下的 Linux 文件系统中有预编译的 ex02_MessageQ 示例二进制文件。 您可以尝试使用它们。

    root@k2g-evm:///usr/bin/ipc/examples/ex02_messageq/release/app_host DSP1
    已中止(转储内核)
    2020年4月24日14:25:54 k2g-EVM 转储用户0内核的进程1052 (APP_HOST)。

    创建了核心文件。






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

    您好、Phil、

    对于 K2G、使用 CORE0而不是 DSP1。 以下是使用 PLSDK 6.1版本中预构建的示例二进制文件的日志

    k2g-EVM 登录名:root
    root@k2g-evm:~

    root@k2g-EVM:~# cd /usr/bin/ipc/examples/ex02_messageq/release
    root@k2g-evm:/usr/bin/ipc/examples/ex02_messageq/release ls
    APP_HOST server_core0.xe66
    root@k2g-evm:/usr/bin/ipc/examples/ex02_messageq/release mpmcl 复位 dsp0
    [156.582472] remoteproc remoteproc0:已停止远程处理器10800000.dsp
    重置成功
    root@k2g-evm:/usr/bin/ipc/examples/ex02_messageq/release mpmcl load dsp0 server_core0.xe66
    加载成功
    root@k2g-evm:/usr/bin/ipc/examples/ex02_messageq/release mpmcl 运行 dsp0
    [180.448170] remoteproc remoteproc0:加电10800000.dsp
    [180.456075] remoteproc remoteproc0:引导未指定的预加载 FW 映像
    [180.467475] alloc_contig_range:[81f804、81f807) PfN 忙
    [180.478289] virtio_rpmsg_bus virtio0:rpmsg 主机处于联机状态
    [180.478441] virtio_rpmsg_bus virtio0:创建通道 rpmsg-proto addr 0x3D
    [180.510663] remoteproc remoteproc0:registered virtio0 (类型7)
    [180.516732] remoteproc remoteproc0:远程处理器10800000.dsp 现已启动
    运行成功
    root@k2g-evm:/usr/bin/ipc/examples/ex02_messageq/release ./app_host CORE0
    -->主要:
    ->Main_main:
    --> App_create:
    APP_CREATE:主机已就绪
    <-- App_create:
    --> App_exec:
    APP_exec:发送消息1
    APP_exec:发送消息2.
    APP_exec:发送消息3
    APP_exec:已收到消息、正在发送消息4
    APP_exec:已收到消息、正在发送消息5
    APP_exec:已收到消息、正在发送消息6
    APP_exec:已收到消息、正在发送消息7
    APP_exec:已收到消息、正在发送消息8
    APP_exec:已收到消息、正在发送消息9
    APP_exec:已收到消息、正在发送消息10
    APP_exec:已收到消息、正在发送消息11
    APP_exec:已收到消息、正在发送消息12
    APP_exec:已收到消息、正在发送消息13
    APP_exec:已收到消息、正在发送消息14
    APP_exec:已收到消息、正在发送消息15
    APP_exec:已收到消息
    APP_exec:已收到消息
    APP_exec:已收到消息
    <-- App_exec:0
    --> App_delete:
    <-- App_delete:
    <-- Main_main:
    <--主要:
    root@k2g-evm:/usr/bin/ipc/examples/ex02_messageq/release uname -a
    Linux k2g-EVM 4.19.59-rt24-g4203cb8c96 #2 SMP 抢占 RT Thu 4月2日09:07:05 EDT 2020 armv7l GNU/Linux
    root@k2g-evm:/usr/bin/ipc/examples/ex02_messageq/release

    雷克斯

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

    您好 Rex

    /usr/bin/ipc/examples/ex02_messageq/release/app_host CORE0

    这起作用了。

    /opt/phil/ex02_messageq/host/bin/release/app_host CORE0

    我构建的那个不工作。

    我对 "3.7.2的解释似乎仍然存在问题。 IPC 快速入门指南"。

    我在这些论坛上找到了一些其他信息、可能有助于澄清这些信息。

    谢谢、

    Phil

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

    您好、Phil、

    Linux IPC 示例不支持从 RTOS SDK 进行构建。 您需要按照快速入门指南中的说明安装 Linux SDK 并在 Linux SDK 中构建。 设置交叉编译器工具链路径并进行几次导出后、您可以发布"make ti-ipc-linux;make ti-ipc-linux-examples"。 IPC Linux 库不包含在发布包中、因此在构建示例之前需要"make ti-ipc-linux"。 您可能不需要在 RTOS SDK 中使用"make IPC-BIOS"为其库在 RTOS 端构建 IPC、但我绝不会尝试错过该步骤。  

    快速入门指南指定了需要设置的导出内容、并提供了分步说明。 它应该有助于重新构建示例。

    雷克斯

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

    您好 Rex

    我使用版本06.01.00.08将 TI 工具重新加载到干净的 TI 文件夹中、并在论坛帖子中根据建议验证 Rule.make 文件。
    这是成功的。
    我还使用最新版本06.03.00.106进行了验证

    谢谢、
    Phil