U-boot для Beaglebone Black не собирается - целевой процессор не поддерживает инструкции THUMB - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь собрать u-boot для beagle bone black, следуя инструкциям Криса Симмондса «Освоение встраиваемого Linux-программирования». Я создал кросс-цепочку инструментов и сейчас пытаюсь собрать Das U-boot с этой цепочкой инструментов, и сборка завершается неудачно из-за того, что инструкции THUMB не поддерживаются (компилятором? BeagleBone?). Я использую последний релиз из репозитория git от Denx v2018.05. Сборка на Ubuntu 18.04.

Ниже вывод консоли:

johann@mars:~/uboot-work/u-boot$ make CROSS_COMPILE=arm-cortex_a8-linux-gnueabihf- am335x_evm_defconfig
#
# configuration written to .config
#
johann@mars:~/uboot-work/u-boot$ make CROSS_COMPILE=arm-cortex_a8-linux-gnueabihf- 
scripts/kconfig/conf  --silentoldconfig Kconfig
CHK     include/config.h
UPD     include/config.h
CFG     u-boot.cfg
GEN     include/autoconf.mk
GEN     include/autoconf.mk.dep
CFG     spl/u-boot.cfg
GEN     spl/include/autoconf.mk
CHK     include/config/uboot.release
CHK     include/generated/version_autogenerated.h
CHK     include/generated/timestamp_autogenerated.h
UPD     include/generated/timestamp_autogenerated.h
CC      lib/asm-offsets.s
cc1: warning: target CPU does not support THUMB instructions
CHK     include/generated/generic-asm-offsets.h
CC      arch/arm/lib/asm-offsets.s
cc1: warning: target CPU does not support THUMB instructions
CHK     include/generated/asm-offsets.h
HOSTCC  scripts/dtc/dtc.o
HOSTCC  scripts/dtc/flattree.o
HOSTCC  scripts/dtc/fstree.o
HOSTCC  scripts/dtc/data.o
HOSTCC  scripts/dtc/livetree.o
HOSTCC  scripts/dtc/treesource.o
HOSTCC  scripts/dtc/srcpos.o
HOSTCC  scripts/dtc/checks.o
HOSTCC  scripts/dtc/util.o
SHIPPED scripts/dtc/dtc-lexer.lex.c
SHIPPED scripts/dtc/dtc-parser.tab.h
HOSTCC  scripts/dtc/dtc-lexer.lex.o
SHIPPED scripts/dtc/dtc-parser.tab.c
HOSTCC  scripts/dtc/dtc-parser.tab.o
HOSTLD  scripts/dtc/dtc
HOSTCC  tools/mkenvimage.o
HOSTCC  tools/lib/crc32.o
HOSTLD  tools/mkenvimage
HOSTCC  tools/common/bootm.o
HOSTCC  tools/lib/fdtdec.o
HOSTCC  tools/fit_image.o
HOSTCC  tools/image-host.o
HOSTCC  tools/dumpimage.o
HOSTLD  tools/dumpimage
HOSTCC  tools/mkimage.o
HOSTLD  tools/mkimage
CC      arch/arm/cpu/armv7/cache_v7.o
cc1: warning: target CPU does not support THUMB instructions
{standard input}: Assembler messages:
{standard input}:42: Error: selected processor does not support `dsb sy' in ARM mode

make[1]: *** [arch/arm/cpu/armv7/cache_v7.o] Error 1
Makefile:1363: recipe for target 'arch/arm/cpu/armv7' failed

make: *** [arch/arm/cpu/armv7] Error 2

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Я тоже читаю книгу и получил ту же ошибку.Я решил проблему с помощью основной ветви U-Boot (Дата: 2019-03-19, ОС: Ubuntu: 18.04).

Однако главная ветвь U-Boot не имеет am335x_boneblack_defconfig.Вместо этого я использовал am335x_evm_defconfig.

Несмотря на эти проблемы с компиляцией, книга превосходна.

РЕДАКТИРОВАТЬ:

После дальнейших исследований я обнаружил, что основная причина былаfpu-type нужно было установить на 'neon-vfpv3', используя ./ct-ng menuconfig.

Поскольку в инструкции указано установить float-abi на hard, тип fpu должен бытьустановите также neon-vfpv3.В противном случае ядро ​​Linux и Barebox / U-boot не будут скомпилированы.

0 голосов
/ 11 мая 2018

Может быть, вы используете не тот кросс-компилятор?

В Debian Buster с использованием пакета gcc-7-arm-linux-gnueabihf

make am335x_evm_defconfig
export CROSS_COMPILE=arm-linux-gnueabihf-
make -j6

бежит как очарование.

Пакет, который я использовал, также доступен в Ubuntu 18.04: https://launchpad.net/ubuntu/bionic/+package/gcc-7-arm-linux-gnueabihf

...