At this point you have created the toolchain and flashed a program into your board.
Now let's do a quick test to see that our gcc toolchain is working, and we are going to test it on the same blinky example as before.
mkdir -p ~/stm32-example cd ~/stm32-example wget http://olimex.com/dev/soft/arm/STR/STM32-BLINK-LED-GCC-ECLIPSE-projects.rar unrar x STM32-BLINK-LED-GCC-ECLIPSE-projects.rar cd projects/stm_h103/
And now let's recompile and see what we get.
make clean make
And hopefully you don't get any compile warnings at this point....
But let's check what we got.
ls --sort=time -1
Then the top of the list should be something like this:
main.bin main.list main.o main.out stm32f10x_gpio.o stm32f10x_rcc.o ....
So what are those files anyway? main.bin is a good file to know about since that is the file you are going to flash onto the board.
With the strange .out name, we find the elf-file. In there we have a lot of funny stuff to play with, and and since it is a elf this file is often called main.elf. But first let's check that we did produce code for the Cortex-M3, and for that we can use readelf from binutils.
arm-none-eabi-readelf -A main.out
then we something like this:
Attribute Section: aeabi File Attributes Tag_CPU_name: "CORTEX-M3" Tag_CPU_arch: v7 Tag_CPU_arch_profile: Microcontroller Tag_THUMB_ISA_use: Thumb-2 Tag_ABI_PCS_wchar_t: 4 Tag_ABI_FP_denormal: Needed Tag_ABI_FP_exceptions: Needed Tag_ABI_FP_number_model: IEEE 754 Tag_ABI_align8_needed: Yes Tag_ABI_align8_preserved: Yes, except leaf SP Tag_ABI_enum_size: small Tag_ABI_optimization_goals: Aggressive Debug
Another fun thing is to use objdump to look at the elf with the -S flag.
arm-none-eabi-objdump -S main.out
The makefile does this for us and the result is stored in main.list. Here you can find both assembler and c-code interleaved so you can check the compiler results. You can open it in a normal editor and have a quick look.
vi main.list
That's that, we compiled the blinky... now let's move forward to the next part and see if we can't actually get something on to the board.