Eu estava tentando seguir esta tutorial para uma introdução à programação bare-metal em C em um pi de framboesa. Uma das primeiras coisas que ele recomenda é instalar o gcc 4.7 toolchain em vez do que eu tinha atualmente instalado, a versão 4.8. Eu tenho, apesar de todo o meu googling, sido incapaz de fazer este trabalho.
Eu tentei usar o comando update-alternatives
, com o gcc-4.7 selecionado, sem sucesso. O comando gcc
é recebido com um erro bash: gcc: command not found
. Então, obviamente, não posso usar gcc -v
ou gcc --version
.
Sempre que eu executo os scripts de construção que geram um arquivo de imagem do kernel utilizável, o comando diz que usou a versão 4.8 do arm-none-eabi
. Estou totalmente inseguro de como usar a versão 4.7 em seu lugar.
Aqui está o conteúdo desse script em particular, seguido de sua saída quando eu o executo.
#!/bin/sh
arm-none-eabi-gcc -O0 -DRPIBPLUS -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -nostartfiles -g armc-03.c -o kernel.elf
arm-none-eabi-objcopy kernel.elf -O binary kernel.img
E a saída:
/usr/lib/gcc/arm-none-eabi/4.8/../../../arm-none-eabi/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000008000
O /4.8/
é o que espero que você retire do comando, embora eu suponha que ele esteja emitindo esse aviso porque estou usando um compilador "inesperado". (Curiosidade, quando eu testá-lo no meu Pi não funciona)
Sob essas condições, como posso fazer o gcc usar a versão 4.7 ao compilar o código C para uso com programação bare-metal em um pi de framboesa?
Gostaria de acrescentar que os comandos padrão ./configure
, make
e make install
também não estão funcionando. Quando eu cd
no diretório do tarball extraído, executando ./configure
me dá um erro no arquivo ou diretório.