Saturday, January 14, 2012

crossBuild ARM target binaries on ARM host

... building STM32F10x (ARM Cortex-M3) sources on WM8505 (ARM9) host.

The Debian installation on my WM8505-based tablet already includes "build-essential" package (gcc, binutils, make, etc.) but, unfortunately, no "multilib" package available yet for debian armel =( . So I have to built my own bare-metal toolchain using croostool-ng. Using this config file, I was able to built this toolchain arm-none-eabi-4.6-armv5.tar.gz (just extract this archive to install). It took almost 20 hrs to finish on WM8505 ( at 300MHz with 128MB RAM ).

For testing the toolchain, I have chosen this STM32F103RB FreeRTOS demo (4 tasks example) sources since it requires "newlib" functions to build completely.

# export CROSS_COMPILE=/path/to/arm-none-eabi/bin/arm-none-eabi-
# make -s clean all
# make program

Also, STM32Loader also works properly on my host machine since it already has python-serial installed. Using "/dev/ttyWMT0" serial port* to transfer the binary using STM32's uart bootloader:

   * USB-to-Serial adapters (e.g. FT232 and PL2303 based) will also work.

For serial-port monitor, I'm using "minicom" already installed on my Debian. Below is the expected result of the STM32 FreeRTOS demo:

No comments:

Post a Comment