Pregunta

Estoy tratando de empezar a trabajar con el STM32 (Cortex-M3) y mi plan es conseguir este trabajo de Ubuntu (9.04 / AMD64).

Para empezar me dieron el href="http://olimex.com/dev/stm32-h103.html" rel="noreferrer"> STM32-H103 tablero de cabecera Olimex ARM-USB-OCD JTAG, y en que de que voy a utilizar probablemente OpenOCD, gcc y Eclipse.

Pero en este momento estoy investigando qué versión de gcc para usar y cómo configurar que sea capaz de CROSSCOMPILE el código.

Parece que hay algunos proyectos brazo por ahí, pero no sé lo que para empezar, ¿alguien puede empujar en la dirección correcta?

Gracias Johan


Actualizar : Parece ser casi lo que quiero de CodeSourcery , pero parecen centrarse en IA32 y AMD64 no.

Sin embargo, en los dispositivos compatibles encuentro el Cortex-M3

  • ARM EABI, ARM M-perfil Simulador -mcpu = Cortex-m3 -mthumb

Actualizar : Existe la posibilidad de instalar IA32 en AMD64, así que tal vez la respuesta marcada es obsoleto ya.

Actualizar : Encontrado este enlace sobre CROSSCOMPILE para el Cortex-M3.

¿Fue útil?

Solución

Dado que esta respuesta se hizo un poco "ilegible", He creado una página con esta información.



Esta es una interpretación libre sobre la base de estas dos guías, pero tenía que cambiar versiones y aplicar algunos parches para conseguir que funcione.

Primera algunas cosas básicas

sudo apt-get install flex bison libgmp3-dev libmpfr-dev autoconf texinfo build-essential

A continuación, he creado un lugar para almacenar la cadena de herramientas (cj.users cambio a lo que es bueno para usted).

export TOOLPATH=/usr/local/cross-cortex-m3
sudo mkdir /usr/local/cross-cortex-m3
sudo chown cj.users /usr/local/cross-cortex-m3

Binutils

wget http://ftp.gnu.org/gnu/binutils/binutils-2.19.tar.bz2
tar -xvjf binutils-2.19.tar.bz2
cd binutils-2.19
mkdir build
cd build
../configure --target=arm-none-eabi --prefix=$TOOLPATH --enable-interwork --enable-multilib --with-gnu-as --with-gnu-ld --disable-nls

Aplique el parche tc-arm.c según esta información http://sourceware.org /bugzilla/show_bug.cgi?id=7026 / http: // sourceware.org/bugzilla/attachment.cgi?id=3058&action=view

vi ../gas/config/tc-arm.c


make 
make install
export PATH=${TOOLPATH}/bin:$PATH
cd ../..

gcc

wget ftp://ftp.sunet.se/pub/gnu/gcc/releases/gcc-4.3.4/gcc-4.3.4.tar.bz2
tar -xvjf gcc-4.3.4.tar.bz2
cd gcc-4.3.4
mkdir build
cd build
../configure --target=arm-none-eabi --prefix=$TOOLPATH --enable-interwork --enable-multilib --enable-languages="c,c++" --with-newlib --without-headers --disable-shared --with-gnu-as --with-gnu-ld
make all-gcc
make install-gcc
cd ../..

newlib

wget ftp://sources.redhat.com/pub/newlib/newlib-1.17.0.tar.gz
wget http://www.esden.net/content/embedded/newlib-1.14.0-missing-makeinfo.patch
tar -xvzf newlib-1.17.0.tar.gz
cd newlib-1.17.0

A continuación, me gustaría aplicar el parche con algo como esto (pero no funcionó)

patch -p1 -i ../newlib-1.14.0-missing-makeinfo.patch

Así lo hice de forma manual y la línea 6651 editan de acuerdo con el parche.

vi configure

mkdir build
cd build
../configure --target=arm-none-eabi --prefix=$TOOLPATH --enable-interwork --disable-newlib-supplied-syscalls --with-gnu-ld --with-gnu-as --disable-shared
make CFLAGS_FOR_TARGET="-ffunction-sections -fdata-sections -DPREFER_SIZE_OVER_SPEED -D__OPTIMIZE_SIZE__ -Os -fomit-frame-pointer -mcpu=cortex-m3 -mthumb -D__thumb2__ -D__BUFSIZ__=256" CCASFLAGS="-mcpu=cortex-m3 -mthumb -D__thumb2__"
make install
cd ../..

Más gcc

cd gcc-4.3.4/build
make CFLAGS="-mcpu=cortex-m3 -mthumb" CXXFLAGS="-mcpu=cortex-m3 -mthumb" LIBCXXFLAGS="-mcpu=cortex-m3 -mthumb" all
make install

Sumar

Ahora sólo añade algunas rutas a mi ~ / .bashrc

#STM32 gcc...
export TOOLPATH=/usr/local/cross-cortex-m3
export PATH=${TOOLPATH}/bin:$PATH

Y debería estar listo para el siguiente paso ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top