ColdFire MCF52233 基板 (11)

8 月 20 日の記事で「gdb スタブで UART0 が使われていて MIDI 入力はうまく動かない」という意味のことを書きましたが、これは勘違いで、UART0 を MIDI 入力として使って問題ありませんでした。
UGB1 および UBG2 が、ボーレート・ジェネレータ・レジスタのそれぞれ上位バイト、下位バイトですが、この2つのレジスタが連続して並んでいるものと勘違いして、16 ビット・アクセスで一度に書き込もうとしたのが原因でした。
実際には UART 関係のレジスタは 1 バイト幅ですが、アドレス空間上では 4 バイト・バウンダリで配置されているので、16 ビット・アクセスをするとレジスタが配置されていない空っぽのアドレスをアクセスしてしまい、バスエラーになります。
その結果、プログラムの実行は中断され、ボーレート・レジスタは正しく設定されないので UART は正しく機能していなかったのです。
いつもの「暫定版」のレベルに達しましたので、インターフェース誌の次号が発売される 8 月 25 日までには Web 上で公開したいと思います。
「趣味」でやっていることなので、「納期」や「締め切り」とは縁がないのですが、ひとつの区切りとして次号発売までを目安に考えたいと思います。