Sourcery G++のprintf
Sourcery G++ Liteのシミュレータはprintf()関数に対応しています。つまり、
#include <stdio.h> int main() { printf("Hello World\n"); return 0; }
という、プログラム main.c を作り
$ arm-none-eabi-gcc main.c -mcpu=arm7tdmi -T generic-hosted.ld $ arm-none-eabi-run a.out
と、実行すれば次のような結果を得ます。
Hello World!
ここまではよし。知っているとおりです。ところが、
$ arm-none-eabi-gcc main.c -mcpu=cortex-m3 -mthumb -T generic-m-hosted.ld $ arm-none-eabi-run a.out
としても、何も出力されません。
うーむ。
Sourcery G++ Liteは2010q1-188。マニュアルによるとシミュレータはThumb命令には対応していますが、armv7mに対応しているとは書いていません。シミュレータのスタックサイズは1MB以上あり、問題になるとも思えません。
うーむ。