TOPPERS/JSP for BlackfinのC++に大域変数の初期化機能追加

長い間懸案でしたが、ようやく目鼻がついてきました。今のところ、次のような手順で動かすことができます。

$ jsp/configure -C blackfin -S kobanzame -l c++ -A cxx_sample1
$ make depend
$ make

色々いじったため、実行時の手順が少し変わっています。まず、gdbproxyは今までどおり

$ sudo /opt/uClinux/bfin-elf/bin/bfin-gdbproxy bfin --connect="cable oocdlink-s vid=0403 pid=baf8"

この例ではICEに刺身包丁を使っています。
次にbfin-elf-gdbですが、

(gdb) target remote localhost:2000
(gdb) load
(gdb) set _kernel_enable_boot_for_gdb = 1
(gdb) c

これが今までと少し違います。C++だけではなく、C言語を使う場合も上の手順を踏むことを推奨します。_kernel_enable_boot_for_gdbは、デバッグ用のフラグで、何もしないと0のままです。0の場合、特に何もしませんが、非0の場合にはソフトウェア・リセットをかけます。新しくgdbproxyがリリースされた後、比較的調子良く使っていたのですが、やっぱりきちんとリセットされていたわけではなく、微妙なところでデバッグに影響を及ぼしていましたので、こうするよう変更しました。

*1:ソースは自動生成される