いや、通りすがりの方の助言でビルドは通っているんですけどもね、
本業の方がめっさ忙しいんです~!!

家に帰ってまでCPUと格闘するかと思うと
仕様とかがごっちゃになって頭変になりそうでして。。。。。

通常、開発ではICEというものをCPUに繋げてプログラムコードをステップ実行しながら
論理に間違いが無いかテストしていくわけです。
このICEというものはVisualStudioのような画面で、CPU動作を任意の場所で停止させながら
実行したり、別の行へ現在実行位置を移したりほぼ自在です。

最近のCPUでは大抵JTAG端子があるので、JTAGICEというモノが使われることが多く、
CPUに繋げれば上記のステップ実行やメモリ・レジスタをモニタしながらデバッグが実施できます。

DIGIC4はARMコアCPUに周辺パーツを付けて1チップに焼きこんだモノなので
DIGIC4自体にもコアCPUから延びたJTAG端子は付けてあるはずで、これに結線できればICEが使える。
Canonでの開発時はJTAGコネクタを付けてそうしてるはず。
ところがJTAG端子、普通は製品では外すんですな。1円でも安くしたいから。
製品ではたぶんチップに足があるだけ。

で、ICEが使えないマジックランタンではどうしてデバッグしてるかというと、
LCDのモニタ上にprintf文でデバッグ用のメッセージ等を吐き出させ、
これをモニタしながらプログラムの分岐のどこを通過したが想定しながらデバッグしている。
いわゆるスクリーンデバッグという20年前位前ならたまにあったかないう
超非効率な手法をとっている。まぁそれしかないんですけども。
バグで吹っ飛ぶ時は画面上にダイイングメッセージを残して死ぬみたいな手法。

さらに、マジックランタンでは文字の表示もFONTのドットデザインデータそのものから実装してます。
なので1バイトで表現されるASCII文字の英語しかでませぬ。
日本語用のSJIS2バイト文字の表示には日本語の組み込みフリーフォントの
ドットデータを探してきて変換処理を組み込まないとダメ。

つーても普段はやってる事なのでできなかないけど、
うはー。今は無理なり。。。。