【问题标题】:Error: selected processor does not support requested special purpose register错误:所选处理器不支持请求的专用寄存器
【发布时间】: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'

注意事项:

  1. 我尝试添加“-mtune=cortex-m7”编译标志。结果是一样的。

  2. 我尝试添加“-mcpu=cortex-m7”和“-march=armv7e-m”。结果是一样的。

问题:

  1. 我是否缺少任何编译标志设置?

  2. 有解决办法吗?

我也会在 linaro 开发者技术支持上发布这个问题。

【问题讨论】:

  • 您已经完全确定了问题所在。您应该重新修改您的 u-boot 补丁,直到它被接受,并且正确的 proc-arm/system.h 将包含在构建过​​程中。我删除了我的错误答案,对于噪音感到抱歉。
  • 来自 Heinrich 的 patch 应该可以解决这个问题。

标签: u-boot


【解决方案1】:

尝试使用较旧的编译器版本。从粗略的谷歌搜索中,您认为这与没有以正确的方式指定架构有关,但您可能会使用较旧的编译器版本避开它。编辑:尝试导出您的 ARCH 和 CROSS_COMPILE 变量。我能够使用您在我的 16.04 ubuntu 机器上的 u-boot master 提示中指定的编译器来构建它。希望这可以帮助。编辑编辑:同时尝试 make clean && make proper 以清除任何可能的垃圾。

【讨论】:

    猜你喜欢
    • 2012-02-08
    • 2012-11-21
    • 1970-01-01
    • 2016-09-03
    • 2016-08-26
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多