主题中讨论的其他器件:AM2434、 AM2432、 Sysconfig
工具/软件:
HII、
我之前有关通过以太网进行固件升级 的主题(链接:LP-AM243:通过以太网进行 AM2434固件升级-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛)在得到响应之前已关闭。 有人可以帮助解决我的问题吗?
谢谢、
Kavaskar
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.
工具/软件:
HII、
我之前有关通过以太网进行固件升级 的主题(链接:LP-AM243:通过以太网进行 AM2434固件升级-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛)在得到响应之前已关闭。 有人可以帮助解决我的问题吗?
谢谢、
Kavaskar
您好、
如之前的主题中所述、如果现有的 AM263x 示例满足您的要求、您可以为 AM243x 移植现有的 AM263x 示例。
关于 AM263x 上的 QSPI、EDMA 和 HSM 客户端-您可以使用 AM243x 上提供的 OSPI 和 UDMA、并删除 HSM 客户端部分。
当移植到 AM243x 时、我建议从一个空示例开始、并在其中添加必要的组件和文件。
此致、
Nitika.
尊敬的 Nitika:
按照您的建议、我为 AM243x 创建了一个空工程、添加了必要的引导加载程序组件。 但是、我遇到了以下问题:
在 sbl_enet.c 文件中、存在与#include 相关的错误 。
由于 AM243x 使用 UDMA 而不是 EDMA、因此我应该用 UDMA 等效项替换这些调用、还是有替代方法?
如果需要更换、您能否确认要使用的 UDMA API?
请让我知道如何处理这些问题。
此致、
Kavaskar。
尊敬的 Kavaskar:
上次解决此用例的目的是在 AM243x/AM64x 上启用以太网引导 (勘误表 i2331使该方法不适用于生产系统)。
您也可以参考 sbl_enet.c 文件的更改。 请在此 E2E 中找到 zip 文件- am2431-support-of-Ethernet-boot
此致、
Nitika.
你好 Nitika ,
当我尝试在我的 SDK (C:\ti\mcu_plus_sdk_am243x_10_01_00_32
)中构建 ZIP 文件时,我遇到了以下错误:
[0]**** Build of configuration Debug for project bootloader_2 **** [1]"C:\\ti\\ccs2002\\ccs\\utils\\bin\\gmake" -k -j 12 all -O ... [9]makefile:153: recipe for target 'bootloader_2.out' failed [10]"syscfg/linker.cmd", line 74: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section, or the section contains padded functions. Run placement with alignment fails for section "GROUP_4" size 0x17ad06. Available memory ranges: [11] MSRAM size: 0x40000 unused: 0x38230 max hole: 0x38228 [12]"syscfg/linker.cmd", line 60: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section, or the section contains padded functions. Placement with alignment fails for section "GROUP_2" size 0x5c068. Available memory ranges: [13] MSRAM size: 0x40000 unused: 0x38230 max hole: 0x38228 [14]error #10010: errors encountered during linking; "bootloader_2.out" not built [15]tiarmclang: error: tiarmlnk command failed with exit code 1 (use -v to see invocation) [16]gmake[1]: *** [bootloader_2.out] Error 1 [17]makefile:149: recipe for target 'all' failed [18]gmake: *** [all] Error 2
但是、当我在 AM64x SDK (MCU_PLUS_SDK_am64x_10_00_00_20)中构建相同的代码时、它会成功编译。 我是否可以在 AM2434板上使用 AM64x SDK 生成的.tiimage?
此外、我还提到了以太网引导文档、其中提到了切换到以太网引导模式。 如何在 LP-AM2434上配置 DIP 开关设置以启用以太网引导模式?
此外、我们的定制板(AM2432)始终处于 OSPI 引导模式、我无法选择切换引导模式。 在这种情况下、如何更新固件?
此致、
Kavaskar
尊敬的 Kavaskar:
如果我的上述答复不清楚、则表示歉意。
我共享的 zip 文件包含 完全不同的实现方式- 以太网引导、不适用于生产系统。
您的用例是使用以太网进行刷写、因此您应该将 AM263x 实现作为 AM243x 的配套产品。 您可以使用 zip 文件来了解如何将 AM263x 实现中的 QSPI、EDMA 和 HSM 客户端替换为 AM243x 上的 OSPI 和 UDMA。
在 sbl_enet.c 文件中、存在与#include 相关的错误 .
退一步、您可以通过参考 zip 文件中的 sbl_enet.c 并相应地修改 AM263x 代码来修复这些错误。
此致、
Nitika.
尊敬的 Kavaskar:
如何在 LP-AM2434上配置 DIP 开关设置以启用它?
在 LP-AM243上、您无法切换到以太网引导模式(与 EVM 相比、LP 上不提供有限的 DIP 开关)。
如果您查看 AM263x 文档、其中提到需要以与刷写 SBL_null 相同的方式刷写 SBL_QSPI_enet、然后切换到 OSPI 引导模式。 电路板上电后、应用图像通过以太网发送到 EVM。
此外、我们的定制板(AM2432)始终设置为 OSPI 引导模式、我无法更改它。 在这种情况下、如何更新固件?
是否也无法切换到 UART 引导模式? 您目前如何刷写电路板?
此致、
Nitika.
尊敬的 Nitika:
我的定制电路板始终以 OSPI 模式引导。
目前、我首先通过 CCS 连接到目标、并使用 GEL 脚本从 OSPI 模式切换到 UART 模式。 然后、我通过 CMD 运行 Python 脚本以刷写电路板。 刷写完成后、重置电路板。
您已经拥有 SBL_QSPI_enet AM2434驱动程序? 如果是、请您与我分享一下吗?
谢谢、
Kavaskar
尊敬的 Nitika:
根据您的建议、我实施了该流程。 但是、该函数
EnetApp_initPhyStateHandlerTask(&gEnetSBL_LLDObj.appEvents);
AM243x 中缺失、但 AM64x/AM243x 中可用。 我已附加错误日志、请提供 AM243x 的相关函数。
谢谢、
Kavaskar
[0]**** Build of configuration Debug for project sbl_eboot **** [1]"C:\\ti\\ccs2002\\ccs\\utils\\bin\\gmake" -k -j 12 all -O [2]Building file: "../sbl_enet.c" [3]Invoking: Arm Compiler [4]"C:/ti/ccs2002/ccs/tools/compiler/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -I"C:/ti/ccs2002/ccs/tools/compiler/ti-cgt-armllvm_4.0.1.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/security" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/networking/enet" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/networking/enet/utils" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/networking/enet/utils/include" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/networking/enet/core" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/networking/enet/core/include" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/networking/enet/core/include/core" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/networking/enet/core/include/phy" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/networking/enet/hw_include" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/networking/enet/hw_include/mdio/V4" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/networking/enet/soc/k3/am64x_am243x" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/middleware" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/board/ethphy/port" -I"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/board/ethphy/enet/rtos_drivers/include" -DSOC_AM243X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"sbl_enet.d_raw" -MT"sbl_enet.o" -I"D:/vpg_project/sbl_eboot/Debug/syscfg" -o"sbl_enet.o" "../sbl_enet.c" [5]Finished building: "../sbl_enet.c" [6]Building target: "sbl_eboot.out" [7]Invoking: Arm Linker [8]"C:/ti/ccs2002/ccs/tools/compiler/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -DSOC_AM243X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -Wl,-m"empty.Debug.map" -Wl,-i"C:/ti/ccs2002/ccs/tools/compiler/ti-cgt-armllvm_4.0.1.LTS/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/drivers/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/board/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/sdl/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/security/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/networking/enet/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/kernel/freertos/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/middleware/lib" -Wl,--reread_libs -Wl,--diag_suppress=10063 -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--gen_xml_func_hash -Wl,--xml_link_info="sbl_eboot_linkInfo.xml" -Wl,--ram_model -o "sbl_eboot.out" "./empty.o" "./syscfg/ti_dpl_config.o" "./syscfg/ti_drivers_config.o" "./syscfg/ti_drivers_open_close.o" "./syscfg/ti_pinmux_config.o" "./syscfg/ti_power_clock_config.o" "./syscfg/ti_board_config.o" "./syscfg/ti_board_open_close.o" "./syscfg/ti_enet_config.o" "./syscfg/ti_enet_open_close.o" "./syscfg/ti_enet_soc.o" "./syscfg/ti_enet_lwipif.o" "./main.o" "./sbl_enet.o" -Wl,-l"syscfg/linker.cmd" -Wl,-lfreertos.am243x.r5f.ti-arm-clang.debug.lib -Wl,-ldrivers.am243x.r5f.ti-arm-clang.debug.lib -Wl,-lboard.am243x.r5f.ti-arm-clang.debug.lib -Wl,-lenet-cpsw.am243x.r5f.ti-arm-clang.debug.lib -Wl,-lmiddleware.am243x.r5f.ti-arm-clang.debug.lib -Wl,-llibc.a -Wl,-llibsysbm.a [9]makefile:153: recipe for target 'sbl_eboot.out' failed [10] undefined first referenced [11] symbol in file [12] --------- ---------------- [13] EnetApp_initPhyStateHandlerTask ./sbl_enet.o [14]error #10234-D: unresolved symbols remain [15]error #10010: errors encountered during linking; "sbl_eboot.out" not built [16]tiarmclang: error: tiarmlnk command failed with exit code 1 (use -v to see invocation) [17]gmake[1]: *** [sbl_eboot.out] Error 1 [18]makefile:149: recipe for target 'all' failed [19]gmake: *** [all] Error 2 [20]**** Build Finished
尊敬的 Kavaskar:
您能否确认您的 SysConfig Enet 设置与您参考的示例相匹配。
具体来说、您能否检查在 Enet (CPSW)> System Integration Config 中选择的 RTOS 型号、该变量应该设置为"No RTOS"-这会 在自动生成的文件 ti_enet_open_close.c 中添加函数 EnetApp_initPhyStateHandlerTask
此致、
Nitika.
################################################################################ # Automatically-generated file. Do not edit! ################################################################################ SHELL = cmd.exe CG_TOOL_ROOT := C:/ti/ccs2002/ccs/tools/compiler/ti-cgt-armllvm_4.0.1.LTS GEN_OPTS__FLAG := GEN_CMDS__FLAG := -Wl,-l"syscfg/linker.cmd" ORDERED_OBJS += \ "./empty.o" \ "./syscfg/ti_dpl_config.o" \ "./syscfg/ti_drivers_config.o" \ "./syscfg/ti_drivers_open_close.o" \ "./syscfg/ti_pinmux_config.o" \ "./syscfg/ti_power_clock_config.o" \ "./syscfg/ti_board_config.o" \ "./syscfg/ti_board_open_close.o" \ "./syscfg/ti_enet_config.o" \ "./syscfg/ti_enet_open_close.o" \ "./syscfg/ti_enet_soc.o" \ "./syscfg/ti_enet_lwipif.o" \ "./main.o" \ "./sbl_enet.o" \ $(GEN_CMDS__FLAG) \ -Wl,-lfreertos.am243x.r5f.ti-arm-clang.debug.lib \ -Wl,-ldrivers.am243x.r5f.ti-arm-clang.debug.lib \ -Wl,-lboard.am243x.r5f.ti-arm-clang.debug.lib \ -Wl,-lenet-cpsw.am243x.r5f.ti-arm-clang.debug.lib \ -Wl,-lmiddleware.am243x.r5f.ti-arm-clang.debug.lib \ -Wl,-llibc.a \ -Wl,-llibsysbm.a \ -include ../makefile.init RM := DEL /F RMDIR := RMDIR /S/Q # All of the sources participating in the build are defined here -include sources.mk -include subdir_vars.mk -include subdir_rules.mk -include objects.mk ifneq ($(MAKECMDGOALS),clean) ifneq ($(strip $(C55_DEPS)),) -include $(C55_DEPS) endif ifneq ($(strip $(C_UPPER_DEPS)),) -include $(C_UPPER_DEPS) endif ifneq ($(strip $(S67_DEPS)),) -include $(S67_DEPS) endif ifneq ($(strip $(S62_DEPS)),) -include $(S62_DEPS) endif ifneq ($(strip $(S_DEPS)),) -include $(S_DEPS) endif ifneq ($(strip $(OPT_DEPS)),) -include $(OPT_DEPS) endif ifneq ($(strip $(C??_DEPS)),) -include $(C??_DEPS) endif ifneq ($(strip $(ASM_UPPER_DEPS)),) -include $(ASM_UPPER_DEPS) endif ifneq ($(strip $(S??_DEPS)),) -include $(S??_DEPS) endif ifneq ($(strip $(C64_DEPS)),) -include $(C64_DEPS) endif ifneq ($(strip $(CXX_DEPS)),) -include $(CXX_DEPS) endif ifneq ($(strip $(S64_DEPS)),) -include $(S64_DEPS) endif ifneq ($(strip $(INO_DEPS)),) -include $(INO_DEPS) endif ifneq ($(strip $(CLA_DEPS)),) -include $(CLA_DEPS) endif ifneq ($(strip $(S55_DEPS)),) -include $(S55_DEPS) endif ifneq ($(strip $(SV7A_DEPS)),) -include $(SV7A_DEPS) endif ifneq ($(strip $(C62_DEPS)),) -include $(C62_DEPS) endif ifneq ($(strip $(C67_DEPS)),) -include $(C67_DEPS) endif ifneq ($(strip $(PDE_DEPS)),) -include $(PDE_DEPS) endif ifneq ($(strip $(K_DEPS)),) -include $(K_DEPS) endif ifneq ($(strip $(C_DEPS)),) -include $(C_DEPS) endif ifneq ($(strip $(CC_DEPS)),) -include $(CC_DEPS) endif ifneq ($(strip $(C++_DEPS)),) -include $(C++_DEPS) endif ifneq ($(strip $(C43_DEPS)),) -include $(C43_DEPS) endif ifneq ($(strip $(S43_DEPS)),) -include $(S43_DEPS) endif ifneq ($(strip $(ASM_DEPS)),) -include $(ASM_DEPS) endif ifneq ($(strip $(S_UPPER_DEPS)),) -include $(S_UPPER_DEPS) endif ifneq ($(strip $(CPP_DEPS)),) -include $(CPP_DEPS) endif ifneq ($(strip $(SA_DEPS)),) -include $(SA_DEPS) endif endif -include ../makefile.defs # Add inputs and outputs from these tool invocations to the build variables EXE_OUTPUTS += \ sbl_eboot.out EXE_OUTPUTS__QUOTED += \ "sbl_eboot.out" # All Target all: $(OBJS) $(GEN_CMDS) @$(MAKE) --no-print-directory -Onone "sbl_eboot.out" # Tool invocations sbl_eboot.out: $(OBJS) $(GEN_CMDS) @echo 'Building target: "$@"' @echo 'Invoking: Arm Linker' "C:/ti/ccs2002/ccs/tools/compiler/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -DSOC_AM243X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -Wl,-m"empty.Debug.map" -Wl,-i"C:/ti/ccs2002/ccs/tools/compiler/ti-cgt-armllvm_4.0.1.LTS/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/drivers/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/board/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/sdl/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/security/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/networking/enet/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/kernel/freertos/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am243x_10_01_00_32/source/middleware/lib" -Wl,--reread_libs -Wl,--diag_suppress=10063 -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--gen_xml_func_hash -Wl,--xml_link_info="sbl_eboot_linkInfo.xml" -Wl,--ram_model -o "sbl_eboot.out" $(ORDERED_OBJS) @echo 'Finished building target: "$@"' @echo ' ' @$(MAKE) --no-print-directory post-build # Other Targets clean: -$(RM) $(GEN_MISC_FILES__QUOTED)$(GEN_FILES__QUOTED)$(EXE_OUTPUTS__QUOTED) -$(RM) "empty.o" "syscfg\ti_dpl_config.o" "syscfg\ti_drivers_config.o" "syscfg\ti_drivers_open_close.o" "syscfg\ti_pinmux_config.o" "syscfg\ti_power_clock_config.o" "syscfg\ti_board_config.o" "syscfg\ti_board_open_close.o" "syscfg\ti_enet_config.o" "syscfg\ti_enet_open_close.o" "syscfg\ti_enet_soc.o" "syscfg\ti_enet_lwipif.o" "main.o" "sbl_enet.o" -$(RM) "empty.d" "syscfg\ti_dpl_config.d" "syscfg\ti_drivers_config.d" "syscfg\ti_drivers_open_close.d" "syscfg\ti_pinmux_config.d" "syscfg\ti_power_clock_config.d" "syscfg\ti_board_config.d" "syscfg\ti_board_open_close.d" "syscfg\ti_enet_config.d" "syscfg\ti_enet_open_close.d" "syscfg\ti_enet_soc.d" "syscfg\ti_enet_lwipif.d" "main.d" "sbl_enet.d" -$(RMDIR) $(GEN_MISC_DIRS__QUOTED) -@echo 'Finished clean' -@echo ' ' post-build: -$(MAKE) -C D:\vpg_project\sbl_eboot -f makefile_ccs_bootimage_gen OUTNAME=sbl_eboot PROFILE=Debug MCU_PLUS_SDK_PATH=C:/ti/mcu_plus_sdk_am243x_10_01_00_32 CG_TOOL_ROOT=C:/ti/ccs2002/ccs/tools/compiler/ti-cgt-armllvm_4.0.1.LTS CCS_INSTALL_DIR=C:\ti\ccs2002\ccs\ CCS_IDE_MODE=desktop DEVICE=am243x -@echo ' ' .PHONY: all clean dependents .SECONDARY: -include ../makefile.targets
尊敬的 Nitika:
我为 AM2434器件连接了 sbl_ospi_enet 驱动程序。 您能回顾一下吗?如果我错过了任何配置、或者有任何内容看起来不正确、可以告诉我。
如果有任何需要修改的地方、敬请告知。
谢谢。此致、
Kavaskar e2e.ti.com/.../sbl_5F00_eboot.zip
尊敬的 Kavaskar:
SBL 示例的 Makefile 包含用于生成更多文件的附加命令。 如需更多信息、请参阅现有的 SBL 示例。
您能否将 ti-arm-clang 文件夹中的 Makefile 替换为以下所附的 Makefile、如果可以正常使用、请告诉我。
此致、
Nitika.