081021

|



待ってました!すまぐるta-1さんの最終戦の写真です。いつもありがとうござい
ます。



なかなかオーソドックスに綺麗なフォームだ。そしてまた純白のカウルがグレー の路面によく映える。(自画自賛モード)

















こうして見ると滅茶苦茶楽しそうだよね。楽しいことは楽しいんだけど、この あたりは焦りまくりで。むしろ胃が痛いくらい。
RTミズシマさんの集計によるとランキング23位らしい。まぁそんなとこか〜。 23は懐かしい。90HSP選手権、NB125の時のゼッケンだ。縁起が悪いな。



H8の続きです。デバイスの初期化をするにはまずはdelayを作らないとならない。 きちんとサイクルをとるためにアセンブラで書くのだけれど、そうすると h8300-hms-gccのコーリングコンベンションを調べなければ。
ググってみるとH8/300 Application Binary Interface for GCC に説明がある。gcc-3.1/gcc/config/h8300/h8300.hあたりから読んでもわかるはずだけど、こっちの方がいい。
r0-r3がcaller saved
r4,r5,r6(fp),r7(sp)がcallee saved

引数は可変長引数でなければ、3つまでr0-r2でレジスタ渡し。その後はスタック。
8byteまでの返り値はr0,r1で。

MSB1st。スタックは降りてくる。
秋月のCコンパイラはr0,r1だけがcaller savedなのでそのオブジェクトをgccの とリンクすることはできない。
フレームポインタはいらないのでこれからは-fomit-frame-pointerでコンパイ ルすることにします。
	.globl _delay
_delay:	/* one loop 24cycle: 25Mhz-> .96us */
a:	sub.l	#1, er0  /* 6 */
	nop /* 2 */
	nop /* 2 */
	nop /* 2 */
	nop /* 2 */
	nop /* 2 */
	nop /* 2 */
	nop /* 2 */
	bne	a	 /* 4 */
	rts
を追加。微妙に割り切れないのだけど、マイクロ秒レベルならいいでしょう。 一秒タイマーにしてLEDを点滅させると結構ずれる。
SCIを見てみると、これはSH3のSCIとまったく同じだね。カカっとprintfデバッ グできるところまで(といっても%s,%x,%dだけ)実装しました。varargを使う時 はstdarg.h じゃないとだめ。varargs.hは整合性がとれていない。
AKI/H8-3052 M/Bのタクトスイッチ、DIPスイッチ、LCDも動くようにしました。 かなり外堀が埋まってきた。