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.

[参考译文] Linux:如何在 OMAPl138 SoC 的 ARM 内核上编译示例?

Guru**** 2556880 points
Other Parts Discussed in Thread: OMAP-L138, SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/613018/linux-how-to-compile-example-on-arm-core-of-the-omapl138-soc

主题中讨论的其他器件:OMAP-L138OMAPL138SYSBIOS

工具/软件:Linux

大家好、我已经通过以下链接介绍了在主机 Linux PC 上使用交叉编译器构建 HelloWorld 设计的示例  

但我想使用交叉编译器在 ARM 内核上构建一些 LED 闪烁设计。

我在 DSP 内核上使用了 LED 闪烁设计、并希望在运行 Linux 的 ARM 内核上尝试类似的设计。

是否仅切换编译器??  

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

    我假设您安装了最新的 ti-processor-sdk-linux-omapl138-lcdk-04.00.00.04、您的程序称为 myflash.c
    交叉编译电路板示例代码的步骤如下:
    导出 arch=arm
    导出路径=~μ C/ti-processor-sdk-linux-omapl138-lcdk-04.00.04/linux-devkit/sysroots/x86_64位-arago-linux/usr/bin:$path
    导出 cross_compile=arm-linux-gnueabi-
    然后导航到程序的位置并使用 gcc 对其进行编译:
    gcc -o myflash myflash.c

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

    我使用的是 SDK 1.01.00.02。

    如果我在不同的位置有头文件、如何在编译期间将它们包括在内?

    对于 LED 示例、我有这些 #include。。
    #include
    #include
    #include
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    获取以下错误:
    /home/miteshhiran/ti/pdk_OMAPL138_1_01_00_02/packages/ti/csl/tistdtypes.h:116:6:错误:#error 不支持该目标
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    是否可以在 ARM 内核(Linux)上的 OMAP-L138 LCDK 板上运行 LED 闪存示例?

    在 DSP 内核中、我们的 PDK 包含所有驱动程序和头文件、例如 GPIO 驱动程序和头文件、在 DSP 内核设计中、这些驱动程序和头文件用于在具有或不具有 SYSBIOS 的情况下刷写 LED。 是否可以通过 Linux 直接从 ARM 内核访问 GPIO?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您使用的是为 TI RTOS 编写的示例应用程序,可能在 DSP 内核上运行.... GCC 无法链接库、这就是您遇到这些错误的原因。

    您可以使用以下命令尝试克服这些错误:
    GCC -o myflash -i myflash.c

    GCC -o myflash -i myflash.c
    且仅使用:
    #include
    #include

    您可能需要重写应用程序以仅使用 Linux API (即 mmap()、IOCTL 等)。
    另一个选项是将此应用程序编译为.out 二进制文件、并使用 Remoteproc 将其加载到 DSP 上。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、明白的。
    我昨天晚上意识到了这一点,并改变了我处理这一问题的方式。 请告诉我这是否有意义。
    我现在尝试在 Windows PC 和 Linux 上使用 CCS v6构建 IPC (IPC_1_25_03_15)中给出的通知示例、希望在 syslink 下构建通知示例、并将其用于 Linux 上的 ARM 内核。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但是、当我尝试构建 syslink 示例时、我也无法做到这一点。

    以下是论坛

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

    您能否确认您的用例:
    1.您正在构建应用程序、它将在 ARM 内核上运行?

    2.您正在构建一个应用程序,该应用程序将在 DSP 内核上运行,并且您需要 Linux 内核来加载它?

    如果在 ARM 上运行、则不需要 IPC、除非您希望应用程序与 DSP 通信。

    在另一种情况下、您需要 RTOS 编译器来编译 DSP 代码、生成二进制文件并使用 Remoteproc 将其作为 DSP 固件加载。

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

    -在 ARM 上引导 Linux 之后;希望从 ARM/Linux 中引导 DSP。 (Linux 和 DSP 应用都应从 NAND 闪存中加载)
    -内核 ARM 和 DSP 之间需要持续的通信逻辑。

    为此、我尝试在 IPC 下构建示例 notify、但在 CCS v6中遇到以下错误:

    我使用以下封装:
    IPC_1_25_03_15
    xdctools_3_32_00_06_core
    BIOS_6_46_00_23
    CCS 版本:6.1.3.00033

    来自 CCS 的错误:

    未定义的首次引用
    符号
    ------ --------
    TI_sdo_ipc_gates_GateMPSupportNull_query_E P:\P16028DSP_doNOTmove\in-Development_Software\DSP\IPC_LED_DSP\Debug\configPkg\package\ccfg\app_pe674.oe674
    TI_sdo_ipc_gates_GatePeterson 查询_E P:\P16028DSP_doNOTmove\in-Development_Software\DSP\IPC_LED_DSP\Debug\configPkg\package\ccfg\app_pe674.oe674
    TI_sdo_ipc_堆_HeapMemMP_isBlocking_E P:\P16028DSP_doNOTmove\In 开发软件\DSP\IPC_LED_DSP\Debug\configPkg\package\ccfg\app_pe674.oe674


    因此、我们转移到在 Linux 主机 PC 上构建 syslink 示例、但也遇到了以下错误:

    创建所有-C 示例
    make[1]:输入目录'/home/miteshhiran/ti/syslink_2_21_01_05/examples
    编号
    #制作所有示例...
    make[2]:输入目录'/home/miteshhiran/ti/syslink_2_21_01_05/examples/ex09_readwrite
    编号
    #生成所有...
    使-C 成为所有主机
    make[3]:输入目录'/home/miteshhiran/ti/syslink_2_21_01_05/examples/ex09_readwrite/host
    编号
    #生成所有...
    使 profile=debug app_host
    make[4]:输入目录'/home/miteshhiran/ti/syslink_2_21_01_05/examples/ex09_readwrite/host
    make[4]:没有为'app_host'执行任何操作。
    make[4]:离开目录'/home/miteshhiran/ti/syslink_2_21_01_05/examples/ex09_readwrite/host
    使 profile =释放 app_host
    make[4]:输入目录'/home/miteshhiran/ti/syslink_2_21_01_05/examples/ex09_readwrite/host
    make[4]:没有为'app_host'执行任何操作。
    make[4]:离开目录'/home/miteshhiran/ti/syslink_2_21_01_05/examples/ex09_readwrite/host
    make[3]:离开目录'/home/miteshhiran/ti/syslink_2_21_01_05/examples/ex09_readwrite/host
    实现-C DSP
    make[3]:输入目录'/home/miteshhiran/ti/syslink_2_21_01_05/examples/ex09_readwrite/dsp
    编号
    #正在进行配置/linker.cmd...
    /home/miteshhiran/ti/xdctools_3_23_01_43/xs --xdcpath="/home/miteshhiran/ti/syslink_2_21_01_05/packages;/home/miteshhiran/ti/bios_6_33_02_31/packages;/home/miteshhiran/ti/ipc_1_25_03_15/packages;/home/miteshhiran/ti/xdctools_3_23_01_43/packages
    xdc.tools.configuro -o configuro \
    t ti.targets.elf.c674 -c /home/miteshhiran/ti/TI_CGT_C6000_7.3.3 \
    -p ti.platforms.evmOMAPL138:dsp -b ./shared/config.bld \
    -r 版本 Dsp.cfg
    N
    从 package/cfg/Dsp_pe674.cfg 配置 DSP.xe674 ...
    JS:"/home/miteshhiran/ti/ipc_1_25_03_15/packages/ti/sdo/ipc/Build.xs、第59行:XDC 运行时错误:TI.SYSBIOS.BIOS:无名为'smpEnabled'的属性
    "/home/miteshhiran/ti/ipc_1_25_03_15/packages/ti/sdo/ipc/package.xs、第105行
    gmake:***[package/cfg/DSP_pe674.xdl]错误1.
    JS:"/home/miteshhiran/ti/xdctools_3_23_01_43/packages/xdc/tools/Cmdr.xs、第51行:错误:xdc.tools.configuro:由于早期错误(状态= 2)、配置失败;已删除'linker.cmd'。
    Makefile:61:目标'configuro/linker.cmd'的配方失败
    maked[3]:***[configuro/linker.cmd]错误1.
    make[3]:离开目录'/home/miteshhiran/ti/syslink_2_21_01_05/examples/ex09_readwrite/dsp
    Makefile:43:目标'all'的配方失败
    maked[2]:***[全部]错误2.
    make[2]:离开目录'/home/miteshhiran/ti/syslink_2_21_01_05/examples/ex09_readwrite
    make[2]:输入目录'/home/miteshhiran/ti/syslink_2_21_01_05/examples/ex08_ringio
    编号
    #生成所有...
    使-C 成为所有主机
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    这些封装是否:
    IPC_1_25_03_15
    xdctools_3_32_00_06_core
    BIOS_6_46_00_23
    使用同一 SDK?

    通常您得到的误差为:
    JS:"/home/miteshhiran/ti/ipc_1_25_03_15/packages/ti/sdo/ipc/Build.xs、第59行:XDC 运行时错误:TI.SYSBIOS.BIOS:无名为'smpEnabled'的属性
    表示您的封装不匹配。 您还可以检查 CCS 设置(确保所有路径相同)。

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

    Yordan、您好、我不确定是否存在同一 SDK 中的所有内容。

    这是下载适用于 Linux OS 的 OMAP-L138的最新 SDK 的正确位置吗?

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

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经在 Linux 主机上安装了 SDK、并按照步骤设置 SD 卡以运行预编译映像。 但它对我和 make 命令都不起作用。 它总是抱怨找不到 Linux-dtbs!!!

    但是、我不确定是否有新的 LCDK、它附带了加载的新 SDK Linux。 我是指 Matrix 应用程序。 我有较旧的 OMAP-L138 LCDK、我想使用矩阵应用在其上运行最新的 SDK 4.0.0.4。 我设法使 create-sd 脚本正常工作,它确实创建了2个分区引导和 rootfs。

    在 SDK 指南中、还说明了将 uboot-omapl138-lcdk.AIS 文件复制到 SD 卡。 我不确定哪个分区。

    uboot boottarg bootcmd 等应设置为什么? 当我启动此版本的 Linux uboot 时、抱怨找不到 uImage、或者抱怨 bootcmd 的版本不正确。 您能否告诉我此新版本是否使用/需要不同的引导命令。 谢谢。