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.

[参考译文] EVMK2H:为 Linux-RT 构建 IPC 时出现问题

Guru**** 2589300 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/588405/evmk2h-problems-with-building-ipc-for-linux-rt

器件型号:EVMK2H

我要做的是: 在 EVMK2H 的 ARM 端使用 Linux-RT、并能够从 DSP 内核发送和接收数据。

我过去所做的是使用 Syslink 共享区域示例、但这适用于较旧的电路板。 这款较新的电路板现在具有处理器 SDK、因此我拥有最新的处理器 SDK Linux-RT 和 RTOS 版本。 我在 Matrix 2.0演示中找到了 IPC 示例、因此我研究了 IPC 示例。 我开始遵循以下指南: processors.wiki.ti.com/.../File:Guide_Keystone_II_IPC_examples_.zip

我设置我的 products.mak 文件、如下所示:

#
#版权所有(c) 2012-2015德州仪器(TI)公司- http://www.ti.com
#
只要

符合以下条件、允许在源代码和二进制格式中重新分发和使用#*

重新分发源代码必须保留上述版权
# 声明、此条件列表和以下免责声明。
#
*二进制形式的再发行必须复制上述版权
编号 请注意
、此条件列表和#中的以下免责声明 分发时提供的文档和/或其他材料。
#
*德州仪器公司的名称和
#的名称均不相同 其贡献者可用于认可或推广衍生产品
# 未经特定的事先书面许可。
#
#本软件由版权所有者和贡献者"按原样
"提供#、

不承认任何明示或暗示的保证、包括但不限于#对适销性和特定#用途适用性的暗示保证。 在任何情况下、版权所有者或
#贡献者都不对任何直接、间接、偶然、特殊、
#模范、 或相应的损害(包括但不限于
采购替代产品或服务的#件;丧失使用、数据或利润;
#或业务中断)、但出于任何责任理论
、#无论是在合同中、严格责任还是因
使用本软件而以任何方式产生的侵权行为(包括疏忽或#其他)、
#即使被告知可能会造成此类损害。
#
====== products.mak =====
#

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

#可选:建议将所有相关组件安装在一个文件夹中。
#
depot =/home/usman/ti

# Platform to build for
# supported platforms (选择一个):
# OMAPL138、OMAP54XX、DRA7XX、66AK2G、66AK2E、 TCI6630、TCI6636、TCI6638、
# TDA3XX
#
注意、这用于 Linux、QNX 和 BIOS 内部版本
#
platform = TCI6636

#目标安装内置二进制文件
#
注意、这用于 Linux (如果使用 IPC-Linux.mak 运行
# configure 命令)、QNX 和 BIOS。
#
destdir =$(depot)/IPC_3_44_01_01/IPC_INSTALL


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

#为 IPC Linux 配置和构建设置所需的交叉编译器路径
#
toolchain_longname = arm-no-eabi
toolchain_install_DIR =$(depot)/gcc-arm-no-eabi-4_9-2015q3
toolchain_prefix =$(toolchain_install_DIR)/bin/$(toolchain_long-ne-na-eabi-4_drink-rbi-linux-rg079+dprue-rq-rg4+rkrgrgrgrk/rq-rgrgrgrgrgrgrk-rg049+rg4+rgrgrgrgrgrg-rk-rband-rg4+rgrgrgrgrgrgrgrg-rg-rgr





此值是从
上面 kernel_install_DIR 指定的 Linux 内核中指定的#、或者
在下面指定的 make 变量 AF_RPMSG 中指定的#。 请勿同时使用。
#
AF_RPMSG =

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

#可选:TI Linux Utils 产品的路径
#
CMEM_INSTALL_DIR =


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

# QNX 工具安装路径
#
QNX_INSTALL_DIR =

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

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

# IPC BIOS 构建所需相关性的路径
#
XDC_INSTALL_DIR =$(depot)/xdctools_3_32_01_22_core
BIOS_install_DIR =$(depot)/BIOS_6_46_04_53

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

#到各种



工具的路径# ti.targets.elf.C64P = ti.targets.elf.C64P_big_endian = ti.targets.elf.self.C66 = ti.targets.elf.arm.for.arge=ti.arge.ts.g.ar32.for.arf.arge.m=ti.arf.arge.m.ar32.for.arge.m.arf.ar32.es=ti.arf.arm.arge=ti.arge.g.arge.m.ar32.for.ar32.es.arf.arges=ts.g.arge.m.ar32.for.arf.ar.ar.arf.ar32.es.arges.arm.arge=tes.arge.m.ar32.for.arge.m.ar.arf.arges.arges.arges.ar.ar.ar.ar.ar.ar32.es.arges.arges=ts.a.ar.ar.ar.ar.ar32.es
















运行"make -f IPC-Linux.mak config"时、出现以下错误:

Usman@Usman-VirtualBox:~/ti/ipc_3_44_01_01 make -f IPC-Linux.mak config
Configuring Linux IPC...
./configure --host=arm-none-eabi \
--prefix=/home/usman/ti/ipc_3_44_01_01/IPC_install \
CC=/home/usman/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc \
platform=TCI6636 \
CMEM_INSTALL_DIR=\
kernel_install_DIR=/home/usman/ti/ti-processor-sdk-linux-rt-k2hk-evm-03.03.00.04/board-support/linux-rt-4.4.41 +gitAUTOINC+968d071ce9-g968d071ce9/\
DRM_PREFIX=\
AF_RPMSG=
正在检查 BSD 兼容的安装... /usr/bin/install -c
正在检查构建环境是否正常... 是
/home/usman/ti/ipc_3_44_01_01/linux/build-aux/missing:未知的`--is-lightweight 选项
请尝试`/home/usman/ti/ipc_3_44_01_01/linux/build-aux/missing --help'以了解更多信息
配置:警告:'msing'脚本太旧或缺少
检查 arm-no-eabi-strip… 不
检查条图... 去除
线程安全 mkdir -p... /bin/mkdir -p
正在检查 gawk…… 检查
make 设置是否为$(make)... 是
检查 make 是否支持嵌套变量... 是
检查是否启用 Makefiles 的维护人员特定部分... 不
检查构建系统类型... x86_64-未知-Linux
正在检查主机系统类型... arm-none-eabi
正在检查如何打印字符串... printf
正在检查 make 使用的 include 样式... GNU
正在检查 arm-none-eabi-gcc... /home/usman/ti/gcc-arm-none-eabi-4_9-2015q3/bin/arm-none-eabi-gcc
正在检查 C 编译器是否正常工作... 无


`:错误:在`/home/usman/ti/ipc_3_44_01_01中:配置:错误:C 编译器无法创建可执行文件请参阅 config.log'以了解更多详细信息
IPC-Linux.mak:56:目标'config'的配方失败
make:***[config]错误77

我已经安装了本页上列出的所有32位库: processors.wiki.ti.com/.../Sitara_Linux_SDK_64_Bit_Ubuntu_Support

我是否正朝着我要做的事情的正确方向前进? 或者、我是否应该使用 IPC 以外的其他功能

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

    我已将此事转发给 IPC 专家。 他们的反馈应发布在此处。

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

    您可以在 μ C/ti-processor-sdk-linux-k2hk evm-03.02.00.05/中~顶级 makefile 文件。
    执行
    使 ti-ipc-linux_clean
    构建 ti-ipc-linux

    您还应在默认方向(通常为~/ti/)安装 TIRTOS。
    构建完成后、您可以使用生成的映像。

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

    当我运行它时、我会得到以下结果:

    Usman@Usman-VirtualBox:~/ti/ti-processor-sdk-linux-rt-k2hk-evm-03.03.00.04 make ti-IPC-Linux_Clean
    
    错误:TI_RTOS_PATH (/home/usman/ti/processor_sdk_rtos_k2hk_3_03_00_04)不包含
    相应的 Processor SDK RTOS 版本!
    
    请为 k2hk EVM 安装 Processor SDK RTOS 03.03.00.04。
    Makefile:599:目标'ti-IPC-RTOS-path-check'的配方失败
    make:***[ti-IPC-RTOS-path-check]错误1.
    

    编辑:TI_RTOS_PATH 不应实际指向 RTOS SDK 所在的位置、而是指向/home/user/ti 文件夹、该文件夹是实际设置所需的一个毫无意义的变量、我建议将其更改为默认安装位置、但将该变量保留为自定义安装路径。 它目前正在构建、如果失败、我将发布一个帖子、如果成功、我将更新此帖子。

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

    这是我的新故障点

    ================================================================
    配置 IPC
    ========================================
    sdk_install_path=/home/usman/ti tools_install_path=/home/usman/ti/ccsv7/.. 来源/home/usman/ti/processor_sdk_rtos_k2hk_3_03_00_04/setupenv.sh >/dev/null;\
    。 /home/usman/ti-processor-sdk-linux-rt-k2hk-evm-03.03.00.04/linux-devkit/environment-setup;\
    cd ${IPC_INSTALL_PATH};\
    ./configure ${configuration_flags}\
    CC=${CC}\
    --prefix=/usr \
    platform=${IPC_platform}\
    kernel_install_DIR=/home/usman/ti-processor-sdk-linux-rt-k2hk-evm-03.03.00.04/board-support/linux-rt-4.4.41 +gitAUTOINC+968d071ce9-g968d071ce9
    /bin/sh:来源:找不到
    /bin/sh:4:./configure:找不到
    makefile <ipc-config-linux-make:<ipcepape:s]]
    
    

    执行以下操作后:导出 IPC_INSTALL_PATH=/home/user/ti/ipc_3_44_01_01它向前移动并在此处失败

    ================================================================
    构建 IPC
    ========================================
    sdk_install_path=/home/usman/ti tools_install_path=/home/usman/ti/ccsv7/.. Source /home/usman/ti/processor_sdk_rtos_k2hk_3_03_00_04/setupenv.sh >/dev/null;\
    source /home/usman/ti-processor-sdk-linux-rt-k2hk-evm-03.03.00.04/linux-devkit/environment-setup;\
    make -j 1 -C ${IPC_INSTALL_PATH}
    /bin/sh:1:source:not found
    /bin/sh:2:source:not found
    make[1]:entering directory '/home/usman/ti/ipc_3_44_01_01
    making all in linux/etc
    make[2]:entering directory '/home/usman/ti/ipc_3_44_01_01/linux/etc make[2]
    :not be done for 'all'。
    make[2]:离开目录'/home/usman/ti/ipc_3_44_01_01/linux/etc
    在 Linux/utils
    中实现全部功能 make[2]:进入目录'/home/usman/ti/ipc_3_44_01_01/linux/src/utils
    /bin/bash ./../../libtool --tag=CC --mode=compile arm-linux-gnueabihf-gcc -DPACKAGE_name="TI\_dACKA1\_dabgi_masks=-dAC100\-deg\-dAC1_ab_masks=-dAC100_deg\-dAC1\-d_sble=dAC100_dAC100_abg\-dAC100_eh\-deg\-d_sble=-dAC100_eh\-dAC100_eh\-dAC100_eh\-dAC100_eh_eh\-deg\-dAC100_eh\-dAC100_ipc\-d\-d_sbeg\-dAC100_eh\-d\-dAC100_eh_eh\-dAC100\-dAC100_eh_eh\-dAC100\-d\-dAC100_eh_eh\-dAC100\-d_ -三月=armv7-a -marm -mfpu=neon -mfloat-abi=hard --sysroot=/home/usman/ti-processor-sdk-linux-rt-k2hk-evm-03.03.00.04/linux-devkit/sysroots/armv7ahf-neon-linux-gnueabi -I./../../hlos_common/include -D_gnu_source -Wall -I./../../linux/include -I./../../packages -March =armv7-a -marm -mfpu=neon -mfloat-abi=hard -sysroot=/home/usman/ti-processor-sdk-linux-rt-k2hk-evm-03.03.00.04/linux-devkit/sysroots/armv7ahf-neon-linux-gnueabi -lad -mpu=-ip_lad -mp.c -mp.c -md 客户端-md -mp.c -mp.c -mp.c -mp.r.c -mp.rad -mp.c -mp.c -mp.r.mp.c -mp.c
    arm-linux-gnueabihf-gcc "-DPACKAGE_NAME="TI IPC\"-DPACKAGE_TARNAME="ti-IPC\"-DPACKAGE_VERSION="3.0.0\""-DPACKAGE_STRING="TI_DH3.0_SYS_DRESR="-DPACH=1-DPACKA_1_DH_SYS_DRESR=-ST_1 -DPAC_DH_DH_1_DH_E=DH_DH_E=TI_AVEST_1 -DPAC_DH_E=TI_DH_E_DH_E=TI_AVEST_H=-DPAC_1 -March =armv7-a -marm -mfpu=neon -mfloat-abi=hard --sysroot=/home/usman/ti-processor-sdk-linux-rt-k2hk-evm-03.03.00.04/linux-devkit/sysroots/armv7ahf-neon-linux-gnueabi -I./../../hlos_common/include -D_source -Wall -I./../../linux/include -I./../../packages -March =armv7-a -mflo=neon -mfloat-abi=hard -sysroot=/home/usman/ti-processor-sdk-linux-rt-k2hk-evm-03.03.00.04/linux-devkit/sysroots/armv7ahf-neon-linux-gnueabi
    -g./../../libtool -mg.abr.c -r.ipc.g.g.c -r.gr.gr.gr.c -grgr.gpc.r.gr.gr.c -m.grgr.gr.gr.gr.gr.gp.gp.gp.gr.c -gr.gr.gr.gp.c -gr.gr.gr.gr.gr.gp.gp.gp.c
    -gr.gr.c -gr.gr.gr
    
    离开目录'/home/usman/ti/ipc_3_44_01_01/linux/src/utils
    Makefile.502:目标'all-recurs'的配方失败
    make[1]:***[all-RECURSIV]错误1
    make[1]:离开目录'/home/usman/ti/ipc_3_44_01_01
    Makefile.631:目标'ti-IPC-Linux'的配方失败
    make:***[ti-IPC-Linux]错误2
    

    我假设 Processor SDK 中包含的编译器不正确、我需要找到这个:  

    arm-linux-gnueabihf-gcc 

    必须导出路径=/home/usman/ti-processor-sdk-linux-rt-k2hk-evm-03.03.00.04/linux-devkit/sysroots/x86_64-arago-linux/usr/bin:$path

    环境设置脚本中应包含这些内容

    同样、对于原始问题、附带的具有 RTOS 处理器 SDK 包的编译器也无法正常工作、因此必须在 products.mak 中进行更改:

    toolchain_install_DIR =/home/usman/ti-processor-sdk-linux-rt-k2hk-evm-03.03.00.04/linux-devkit/sysroots/x86_64-arago-linux/usr 

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

    构建 IPC 后运行 sudo make install 时出现新问题

    Usman@Usman-VirtualBox:~/ti/ipc_3_44_01_01 sudo make install
    making install in linux/etc
    make[1]:输入目录"/home/usman/ti/ipc_3_44_01_01/linux/etc
    make[2]:输入目录"/home/usman/ti/ipc_3_44_01_01/linux/etc
    make[2]:对于'install-exec-am'不执行任何操作。
    make[2]:对于'install-data-am'没有要执行的操作。
    make[2]:离开目录'/home/usman/ti/ipc_3_44_01_01/linux/etc
    make[1]:离开目录'/home/usman/ti/ipc_3_44_01_01/linux/etc
    在 linux/src/utils
    make[1]:进入目录'/home/usman/ti/ipc_3_44_01_01/linux/src/utils
    make[2]:进入目录'/home/usman/ti/ipc_3_44_01_01/linux/src/utils
    /bin/mkdir -p '/home/usman/ti/ipc_3_44_01_01/IPC_install/lib
    /bin/bash ./../../libtool --mode=install /usr/bin/install -c libtiipcutils.la libtiiputils_liptilibs.c
    /usr/bin/install -lib.ldo /home/usman/ti/ipc_3_44_01_01/IPC_install/lib:/home/usman/ti/ipc_3_44_01_01/IPC_install/lib/libtiipcutils.so.1.0.0
    (cd /home/usman/ti/ipc_3_44_01_01/IPC_install/lib &&{ln -s -f libtiiputils.so.1.0.0 libtiiputils.so.1||{rm -f libtiiputils.so.1&& ln -s libtiiputils.so.1.0.0 libtiiputils.so.1;})
    /home/usman/ti/ipc_3_44_01_01/IPC_install/lib–libtiiputils.so.1.0.0 libtiputils.so.1;}–libtiiputils.s1.0.0–libtiiputils.s.pso 安装工具:libtiiptis.iptis.iptis.iptis.iptis.iptis.iptis.iptis.ld|
    /usr/bin/install -c .libs/libtiiputils.ai /home/usman/ti/ipc_3_44_01_01/IPC_install/lib/libtiipcutils.la
    libtool:安装:/usr/bin/install -c .libs/libtiiputils_lad.so.1.0.0 /home/usman/ti/ipc_3_44_01_01/IPC_install/lib/libtiipcutils_lad.so.1.0.0
    lib工具:安装:(CD /home/usman/ti/ipc_3_44_01_01/IPC_install/lib &&{ln -s -f libtiiputils_lad.so.1.0.0}tiiputils_lad.liptils.1| libtif.s1.0.0
    | libtiiputils.s_liptilad.s_liptis.1| libtiltis.s1.0.0 | libtiriptis.s1.r.s1.tis.le.le.le.le.s| libs1.r1.tiltis.le.le.le.le.le.le.le.s1.0.0 | libs1.tiltiltis (cd /home/usman/ti/ipc_3_44_01_01/IPC_install/lib
    
    /usr/bin/install
    
    /home/usman/ti/ipc_3_44_01_01/IPC_install/lib/libtiipcutils.a &&{ln -s -f libtiipcutils_lad.so 1.0.0 libtiipcutils_lad.so ||{rm -f libtiipcutils_lad.so && ln -libtiipcutils_lad.so 1.0.0 libtiipcutils_lad.so ||/usr/bin/install /home/usman/ti/ipc_3_44_01_01/IPC_install/lib/libtiipcutils.a
    /../../libtool:libtilipcle.librand.lib:/home/usman/ti/ipc_3_44_01_01/IPC_install/lib/libtiipcutils_lad.la):libtiiptilipturb:/home/usman/ti/ipc_3_44_01_01/IPC_install/lib/libtiipcutils.a
    目标'install-libLTLIBRARIEs'的配方失败
    make[2]:***[install-libLTLIBRARIES]错误127
    make[2]:离开目录'/home/usman/ti/ipc_3_44_01_01/linux/src/utils
    
    
    
    
    
    
    /home/usman/ti-processor-sdk-linux-rt-k2hk-evm-03.03.00.04/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf-ranlib Makefile.668:目标'install-am'的配方失败 make[1]:***[install-am]错误2 make[1]:离开目录'/home/usman/ti/ipc_3_44_01_01/linux/src/utils Makefile-am'/ti/ipc_3_44_01_01@~urse-mese-linux-imprudsman:
    

    您可以在底部看到、我运行了"哪个"命令、它可以找到它、但脚本似乎找不到它??

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

    执行 sudo "path=$path"可使安装正常工作、不知道原因、但可以正常工作。

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

    很抱歉、我是 ooo。
    无论如何、感谢您使用您的解决方案更新该主题。

    此致、
    Yordan