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.

[参考译文] AM4379:AM4379:调用:GNU 链接器错误、makefile:166:目标的配方'xxx...'失败

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1166698/am4379-am4379-invoking-gnu-linker-error-makefile-166-recipe-for-target-xxx-failed

器件型号:AM4379
主题中讨论的其他器件: SYSBIOSUNIFLASH

大家好

正在为 AM4379 Cortex A 处理 QSPI 引导加载程序项目

由于我正在使用 CCS、因此我从此处下载"sysbios_ind_sdk 02_01_03_02"以方便导入。
https://software-dl.ti.com/sitara_indus/esd/SYSBIOSSDK-IND-SITARA/latest/index_FDS.html

直接在 .\ti\SysBIOS_ind_sdk_02.01.03.02\sdk\starterware 中设置工作区、并导入引导加载程序和所有相关项目。

编译每个依赖项工程没有问题、但在 makefile 中加载依赖项链接器时引导加载程序会出现编译错误。

未修改任何代码、只为 SDK 导入原始 CCS 工程。 想知道是什么导致 gmake 错误和分配失败。

# Tool invocations
../../../binary/bootloader/bin/am43xx-evm/ccs/bootloader_boot_qspi_a9host_debug.out: $(OBJS) $(LDS_SRCS) $(GEN_CMDS) C:/ti/sysbios_ind_sdk_02.01.03.02/sdk/starterware/board/ccs/am43xx_boot_debug/../../../binary/board/lib/am43xx-evm/a9/ccs/am43xx_boot_debug/libboard_boot.a C:/ti/sysbios_ind_sdk_02.01.03.02/sdk/starterware/dal/ccs/am43xx_debug/../../../binary/dal/lib/am43xx-evm/a9/ccs/am43xx_debug/libdal.a C:/ti/sysbios_ind_sdk_02.01.03.02/sdk/starterware/soc/ccs/am43xx_boot_qspi_debug/../../../binary/soc/lib/am43xx-evm/a9/ccs/am43xx_boot_qspi_debug/libsoc_boot_qspi.a C:/ti/sysbios_ind_sdk_02.01.03.02/sdk/starterware/utils/ccs/am43xx_debug/../../../binary/utils/lib/am43xx-evm/a9/ccs/am43xx_debug/libutils.a C:/ti/sysbios_ind_sdk_02.01.03.02/sdk/starterware/library/qspilib/ccs/am43xx_debug/../../../../binary/qspi_lib/lib/am43xx-evm/a9/ccs/am43xx_debug/libqspi_lib.a C:/ti/sysbios_ind_sdk_02.01.03.02/sdk/starterware/device/ccs/am43xx_debug/../../../binary/device/lib/am43xx-evm/a9/ccs/am43xx_debug/libdevice.a
	@echo 'Building target: "$@"' <-- hold here
	@echo 'Invoking: GNU Linker'
	"C:/ti/gcc-arm-none-eabi-4_7-2013q3-20130916-win32/gcc-arm-none-eabi-4_7-2013q3-20130916-win32/bin/arm-none-eabi-gcc-4.7.4.exe" -mtune=cortex-a9 -marm -mlong-calls -DBOOT_QSPI -DAM43XX_FAMILY_BUILD -Dam4379 -funsigned-char -ffunction-sections -fdata-sections -g -gstrict-dwarf -Wall -mfloat-abi=hard -Wl,-Map,"../../../binary/bootloader/bin/am43xx-evm/ccs/bootloader_boot_qspi_a9host_debug.map" --entry Entry -Wl,--gc-sections -L"../../../binary/dal/lib/am43xx-evm/a9/ccs/am43xx_debug/" -L"../../../binary/qspi_lib/lib/am43xx-evm/a9/ccs/am43xx_debug/" -L"../../../binary/device/lib/am43xx-evm/a9/ccs/am43xx_debug/" -L"../../../binary/board/lib/am43xx-evm/a9/ccs/am43xx_boot_debug/" -L"../../../binary/utils/lib/am43xx-evm/a9/ccs/am43xx_debug/" -L"../../../binary/soc/lib/am43xx-evm/a9/ccs/am43xx_boot_qspi_debug/" -Wl,--defsym,HEAPSIZE=0x400 -Wl,--defsym,STACKSIZE=0x18000 -o"../../../binary/bootloader/bin/am43xx-evm/ccs/bootloader_boot_qspi_a9host_debug.out" $(ORDERED_OBJS)
	@echo 'Finished building target: "$@"'
	@echo ' '
	@$(MAKE) --no-print-directory post-build

这是我的设置

CCS:v11.2

常规中的属性配置:am43xx_boot_QSPI_debug [活动]

编译器常规:GNU v4.7.4 Linaro (默认)

常规中的链接器命令文件:AM437X.lds

GNU 链接器中的内衬命令文件: ./../../examples/gcc/am43xx_boot_xip_ccs.lds (默认)

此致、

Ernie

 

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

    你好、Ernie

    感谢您的查询。

    我将分配给专家。 请期待一些延迟。

    此致、

    Sreenivasa

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

    您好、Ernie、

    这看起来像是编译器版本不匹配问题。 适用于 AM437x  的 SYSBIOS 工业 SDK 由具有 QSPI 引导加载程序的 Processor SDK RTOS 取代。 请参阅 有关 QSPI 引导加载的 Processor SDK RTOS 文档。  

    另请注意、TI 已停止支持 AM437x 的非 Linux 软件开发。 请查看 此公告 并在此处查找综合资源。

    此致、

    _________

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

    大家好、Jianzhong

    感谢您提供信息。 我应该使用哪种编译器版本?

    我安装  了 Processor SDK RTOS。 但在 已安装的文件夹 C:/ti/.中找不到"./boot/sbl/tools/flashwriter /"路径 安装的 PROCESSOR-SDK-RTOS-AM437X 为"ti-processor-SDK-RTOS-AM437X-EVM-06.03.00.106-Windows-x86-64安装.exe"。

    我应该安装哪个软件包来拥有这些文件夹?

    此致、

    Ernie

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

    您好、Ernie、

    安装 Processor SDK RTOS 后、您还应看到 安装了 PDK 文件夹 PDK_AM437X_1_0_17。  闪存写入 器位于:pdk_am437X_1_0_17\packages/ti\starterware\binary\QSPI_APP_flash_writer\bin\am43xx-EVM。

    请确保阅读 AM335x/AM437x 的引导/刷写文档:  4.6.3.1.8.2.通过 QSPI 引导。 其他章节适用于不同的器件。  

    此致、

    _________

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

    大家好、Jianzhong

    感谢您的更正。

    由于我的项目的 QSPI 是板载闪存、因此我不能只是将 boot/app/config 文件"复制"到它。 我计划使用 TI uniflash 命令行 通过 UART 将映像写入板载闪存。 我想知道它是否可以执行 Processor SDK RTOS 文档中提到的有关 QSPI 引导加载的副本。

    例如、
    1.加载编程器:
    dslite.bat --mode load --config= "xds200.ccxml"="">C:\ti\pdk_am437X_1_0_17\packages/ti\board\utils\uniflash\target\bin\idkAM437x\UART_idkAM437x_flash_programmer.out -n 1.

    2.将引导加载程序加载到地址0x0:
    dslite.bat --mode 处理器-c COM9 -f "bootloader_boot_qspi_a9host_debug.bin",="" rename="" "boot"="">d 2 -o 0x0

    3.将应用程序加载到地址0x80000:
    dslite.bat --mode 处理器-c COM9 -f  "app"="">d 2 -o 0x80000

    4.将配置加载到地址???:

    这种方式是否有效、配置文件应放置哪个地址?

    此致、
    Ernie

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

    您好、Ernie、

    抱歉、但正如我之前提到的、TI 已停止支持 AM437x 的非 Linux 软件开发。 请查看 此公告 、您应该能够从 基于 AM335x/AM437x TI-RTOS 的软件开发资源中找到有关闪存的一些资源

    我只能快速向您指出 SDK 中已有的内容、但无法帮助您尝试新方法。

    此致、

    _________