現在地

マイコン

マイコン

マイクロプロセッサ・マイクロコントローラ等です。

H8/532ボード(ソフトウェア編)

ボードが出来たら動作確認です。

まずはφに1/2のクロック(8MHz)が出てくるのを確認します。これで電源が正しく供給され、デバイスも生きているらしいことがわかります。

続いてバスにLED繋いだ状態で短い無限ループを実行してみます。最短2バイトでループできますが、アドレスバスのLEDを見ているとかなり先(4バイト?)までプリフェッチしているらしいのがわかります。

ここまで来たらいつものようにUniversal Monitorの移植に入ります。

最初はコンソールとしてEMILY Boardの仮想UARTで書き始めましたが、文字列表示までできたところで内蔵SCIにも対応しました。日立のSCIは共通なのでH8/300用をそのまま移植して動きました。

H8/300とH8/500は同じH8ファミリで似ていますが、大きく異なる点もあり同一ソースから条件アセンブルは無理と思います。

H8/532ボード(ハードウェア編)

テーマ:

カテゴリー:

PLLが途中ですが、並行して作っていたマイコンボードが動き始めましたのでそちらを取り上げようと思います。


H8シリーズの最初のH8/532のボード、もちろんEMILY Boardで動かします。

幸いノンマルチプレクスバスなので通常のユニバーサル基板を使用します。配線も一対一接続なので厄介なところはありません。

一応未使用ポートをピンヘッダに出して、SCIもTTL-232R-5Vを接続できるようにしてあります。

MC68EC020

テーマ:

カテゴリー:

MC68030, MC68040, MC68060にはMMUやFPUの有無によってMC68EC030などの廉価版が存在します。MC68020には外せるユニットがないので廉価版は無いと思っていましたが...


MC68EC020はありました。これは1999年製の16MHz版、日本製なんですね。

MC68020との機能的な違いはメモリ空間が16MBしかないことです。

機能以外ではパッケージがプラスチックPGAになっています。

TMPZ8003

テーマ:

カテゴリー:

前回無事にZ8001が動作したわけですが、あれは以前中国から買ったもので念のため製作と並行して国内でZ8003も調達していました。


東芝製のTMPZ8003P-6、Z8003のセカンドソース品です。

Z8003というのはZ8001を仮想記憶対応したもので、MC68000に対するMC68010のようなものです。同様にZ8002に対するZ8004というのもありますが、セグメント無しの仮想記憶という需要はあまりなかったためか見かけませんね。

アドレスエラー・バスエラー (その4)

カテゴリー:

アドレスエラー・バスエラーについて今度こそ終わりにするつもりです。

MC68040

MC68040からは大きな方向転換があったように感じます。

複雑度は増しているはずなのにスタックに積まれる情報は減っているのです。前にもMC68010の判別(補足)に書きましたが、命令の再開を諦めて頭からやり直す方針のようです。

まずはアドレスエラーの場合です。

アドレスエラー・バスエラー (その3)

3回目は残りですが書ききれるかなぁ。さらに1回増えてしまうかもしれません。

ここからは自分の手で動かしたことはないのでマニュアルを元にざっくり書いていきます。

MC68020 / MC68030

この両者はソフトウェアから見た例外処理はほぼ共通のようなのでまとめて書きます。

これらではエラー発生時の状況によってスタックに積まれる情報量に違いがあるようです。キリの悪いところで発生すると保存しないといけない項目が増えるということなのかな。

どちらが使われたかはSP+6の上位4ビットでわかります。

この4ビットでどのフォーマットかはわかりますが、それが何ワードなのかは書かれていません。
Universal MonitorではこれまでMC68010までの対応だったので0000なら4ワード、それ以外なら29ワードとしていました。それをMC68020以降で実行するとスタックがおかしなことになります。今回MC68010, MC68020, MC68030, MC68040, MC68060, SCC68070で使われているフォーマットとその長さをテーブルにして引くようにしました。

まずは少ない場合から。

HD1-6120ボード(モニタ移植編)

カテゴリー:

HD1-6120ボードを作ってから約2年、ASが使えるようになったのでUniversal Monitorの移植に着手しました。

ボード完成以来ソフトウェア編での無限ループ確認くらいしかしていなかったのですが、やっとまともなプログラムが動かせます。いくつかあった問題は、ASはIM6100対応を行ない、EMILY Boardも12ビット8進表示モードを作ったことでほぼ解決しています。

残るUniversal Monitorの仕様は... 常に8進表示でダンプ時のASCII表示は無しとすることにします。

そう決まればあとは黙々と実装するのみです。

現在 D(ump), G(o), S(et) の各コマンドができて L(oad) はインテルHEXのみ実装してデバッグ中といった状況です。

ある程度のプログラムを書いてこのIM6100の癖がわかってきたので書いてみたいと思います。

uPD78CG14ボード(その2)

テーマ:

カテゴリー:

前回、ピギーバックのROMと内蔵RAMで動作したので、今回は外部RAMを追加してみます。


ハードウェア的には未実装だった74HC04, 74HC573, 62256を載せるだけです。

ソフトウェアとしては、内蔵ROM(ピギーバック含む)有効モードで起動するとポートD,FはポートになっているのでMM(Memory Mapping)レジスタを設定してバスに切り替えないといけません。

ページ