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.

[参考译文] PROCESSOR-SDK-AM335X:arm-oE-linux-gnueabi-ld.bfd:u-boot-spl section `.rodata'不能放入区域` SRAM

Guru**** 2551110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1389944/processor-sdk-am335x-arm-oe-linux-gnueabi-ld-bfd-u-boot-spl-section-rodata-will-not-fit-in-region-sram

Thread 中讨论的其他器件:PROCESSOR-SDK-AM335X

ART 编号:PROCESSOR-SDK-AM335XTool/software

 /全部、

您已经知道、我们使用的是 SDK 9.1.0.1

我们在 spl.c 中添加了一个代码、添加该代码是为了在 u-boot.img 获得控制权之前检查 u-boot-spl 中的功能(例如:类似签名)。

执行此操作后、我们的误差低于误差、

include /1_2023.04+git999-r0/recipe-sysroot-native/usr/lib -wl、-rpath-link、/home/sem3user/28624/SEM3T_COM/build/arago-tmp-default-glibc/work/am335x_evm-oe-linux-gnueabi/u-boot-ti-staging/1_2023.04 /home/sem3user/28624/SEM3T_COM/build/arago-tmp-default-glibc/work/am335x_evm-oe-linux-gnueabi/u-boot-ti-staging/1_2023.04 .am335x-regor-rdk.dtb.d.pre.tmp +git999-r0/recip-sysroot-native/lib -wl、/home/sem3user/28624/SEM3T_COM/build/arago-tmp-default-glibc/work/am335x_evm-oe-linux-gnueabi/u-boot-ti-staging/1_2023.04 src /home/sem3user/28624/SEM3T_COM src src kconfig.h src src src .am335x-regor-rdk.dtb.dts.tmp .am335x-regor-rdk.dtb.pre.tmp /scripts/dtc/dtc /home/sem3user/28624/SEM3T_COM src@@.am335x-regor-rdk.dtb.d.dtc.tmp .am335x-regor-rdk.dtb.dts.tmp /home/sem3user/28624/SEM3T_COM/build/arago-tmp-default-glibc/work/am335x_evm-oe-linux-gnueabi/u-boot-ti-staging/1_2023.04 .am335x-regor-rdk.dtb.pre.tmp /home/sem3user/28624/SEM3T_COM src .am335x-regor-rdk.dtb.d.pre.tmp .am335x-regor-rdk.dtb.d.dtc.tmp
| test -e arch/arm/dts/am335x-evmsk.dtb ||(\
| echo >&2;\
| echo >&2 "未正确指定设备树源(arch/arm/dts/am335x-evmsk.dtb)。";\
| echo >&2"请定义"config_default_device_tree";\
| echo >&2"或使用'device_tree=生成 '参数";\
| echo >&2;\
|德州仪器/bin/false)
| arm-oe-linux-gnueabi-ld.bfd:u-boot-spl section `.rodata'将不适用于区域`"SRAM"
| cat arch/arm/dts/AM335x-evmsk.dtb > dts/dt.dtb.
| arm-oe-linux-gnueabi-ld.bfd:region `"SRAM"溢出9424字节
|.b /tools/mkimage -f auto -a arm -T firmware -C none -O u-boot -a 0x800000 -e 0x80800000 -p 0x0 -n "U-Boot 2023.04-g999 for sem3t board"-e -b arch/arm/dts/am335x u-boot-nodtb.bin /dev/null /dev/null
| cat u-boot-nodtb.bin dts/dt.dtb > u-boot-dtb.bin

请告知我、 上述错误是否需要对配置进行任何其他更改。

这有很多帮助

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

    尊敬的 Manu:

    [报价 userid="544759" url="~/support/processors-group/processors/f/processors-forum/1389944/processor-sdk-am335x-arm-oe-linux-gnueabi-ld-bfd-u-boot-spl-section-rodata-will-not-fit-in-region-sram "] | arm-oe-linux-gnueabi-ld.bfd:u-boot-spl section `.rodata'将不适用于区域`"SRAM"
    | cat arch/arm/dts/AM335x-evmsk.dtb > dts/dt.dtb.
    | arm-oe-linux-gnueabi-ld.bfd:region `"SRAM"溢出9424字节 [报价]

    由于运行此代码时可用的片上 SRAM 有限、因此需要仔细考虑我们大多数/所有器件上的 U-Boot SPL 大小。 大多数 TI U-Boot 配置几乎可以充分利用可用的存储器空间;因此、通常当您需要像添加一样添加功能时、需要同时删除/禁用对您的需求不重要的其他一些项目。 对于 SPL、 这通常意味着 通过关闭与之相关的不同驱动程序和支持选项来禁用对不适用于您的应用程序的引导模式的支持。 通常、最好以此为 `make ARCH=arm CROSS_COMPILE=<...> menuconfig`. 起点、在进行正确的构建之后、您也可以检查链接器"list"文件、以识别可能被删除的文件/驱动程序。

    此外、我还建议 先在 Yocto 之外执行此类启动工作/优化、因为这样做会更容易/更快、然后再集成最终解决方案(将生成的补丁应用到上面) TI-u-boot-2023.04 )。

    此致、Andreas