【发布时间】:2020-07-20 16:43:17
【问题描述】:
我正在编译u-boot v2020.04-rc5
我的环境。
主机:18.04.1-Ubuntu SMP
制作版本:GNU Make 4.1
工具链:gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi
目标:STM32F769
复制问题的步骤:
第一步:git clone https://github.com/u-boot/u-boot.git
第二步:cd u-boot
第三步:git checkout v2020.04-rc5
第四步:制作 ARCH=arm CROSS_COMPILE=~/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi/arm-linux-gnueabi-stm32f769-disco_defconfig
Step5:通过 menuconfig 启用对 UBIFS (CONFIG_CMD_UBI=y) 的支持
第六步:制作ARCH=arm CROSS_COMPILE=~/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi/arm-linux-gnueabi-
期望的输出:构建成功。 实际输出:错误如下图。
$ /home/sicris/Downloads/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc -Wp,-MD,fs/ubifs/.super.od -nostdinc -isystem /home/sicris/Downloads/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/7.5.0/include -Iinclude - I../include -I../arch/arm/include -include ../include/linux/kconfig.h -I../fs/ubifs -Ifs/ubifs -D_KERNEL_ -D_UBOOT_ -Wall -Wstrict-prototypes - Wno-format-security -fno-builtin -ffreestanding -std=gnu11 -fshort-wchar -fno-strict-aliasing -fno-PIE -Os -fno-stack-protector -fno-delete-null-pointer-checks -g - fstack-usage -Wno-format-nonliteral -Werror=date-time -D_ARM_ -Wa,-mimplicit-it=always -mthumb -mthumb-interwork -mabi=aapcs-linux -mword-relocations -fno-pic -mno-unaligned -access -ffunction-sections -fdata-sections -fno-common -fixed-r9 -msoft-float -pipe -march=armv7-m -D_LINUX_ARM_ARCH_=7 -I../../arch/arm/mach-stm32/包括 -I../arch/arm/mach-stm32/include -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_ STR(super)" -D"KBUILD_MODNAME=KBUILD_STR(super)" -c -o fs/ubifs/super.o ../fs/ubifs/super.c
{标准输入}:汇编器消息:{标准输入} :755: 错误:选择的处理器不支持请求的特殊用途寄存器 – `mrs r1,cpsr'
{标准输入}:757: 错误:所选处理器不支持请求的专用寄存器 – msr cpsr_c,r3'{standard input}
:770: Error: selected processor does not support requested special purpose register –msr cpsr_c,r1'
{标准输入}:835:错误:所选处理器不支持请求的特殊用途寄存器 - mrs r4,cpsr'{standard input}
:837: Error: selected processor does not support requested special purpose register –msr cpsr_c,r2'
{标准输入} :850: 错误: 所选处理器不支持请求的特殊用途寄存器 – `msr cpsr_c,r4'
注意事项:
我尝试添加“-mtune=cortex-m7”编译标志。结果是一样的。
我尝试添加“-mcpu=cortex-m7”和“-march=armv7e-m”。结果是一样的。
问题:
我是否缺少任何编译标志设置?
有解决办法吗?
我也会在 linaro 开发者技术支持上发布这个问题。
【问题讨论】:
-
您已经完全确定了问题所在。您应该重新修改您的 u-boot 补丁,直到它被接受,并且正确的
proc-arm/system.h将包含在构建过程中。我删除了我的错误答案,对于噪音感到抱歉。 -
来自 Heinrich 的 patch 应该可以解决这个问题。
标签: u-boot