InterfaceのSH-2A基板をさわってみました
InterfaceのSH-2A基板をさわってみました。目的はSH-2A用のJTAGデバッガを開発することなのですが、まずはどういうボードなのかを知らないといけないので、普通に使ってみようと思い、記事にしたがって操作してみました。
しかし、特集の記事や構成が非常にわかりづらかったです。このCPUが持つ機能や特徴などが本文中にばらばらな箇所に書かれていて、全体像が掴みにくいのです。
結局のところ、SH7262のハードウェアマニュアルを読まないと、このCPUのことはよくわかりません。
わかったことを忘れないように書いておきます。
・内蔵RAMには、1Mバイトの大容量RAMと、64kバイトの高速RAMがある
・内蔵大容量RAMのアドレスは1C000000~1C0FFFFF(キャッシュ無効なら3C000000~3C0FFFFF)。
・内蔵高速RAMのアドレスはFFF80000~FFF8FFFF。
・内蔵周辺モジュールはFFFC0000~FFFFFFFFにある。
・シリアルROM上のコードはリセット時に高速RAM上に展開されてジャンプするらしい。FFFF8000番地にジャンプするのだとは思われるが、起動後にはFFF80000番地の内容はゼロクリアされている。
・リセット時には00000000番地の内容がPCに、0000004番地の内容がSPに取り込まれる。しかし、この基板はSPI ROMからブートする(モード1、3)ので、そうならない。
・NMIジャンパをオープンにするとHEWモニタ、ショートするとユーザプログラムが起動する
・HEWモニタを使うには、①RenesasからHEWとデバイス定義をダウンロードしてインストール。②CQ ConnectからUSBのドライバをダウンロードしてインストール。③CQ Connectから「シリアル接続HEWモニタセットアップ説明ファイル」をダウンロードして展開。その中のmonitorフォルダをHEWのシステムフォルダにコピーする。
・HEWモニタ起動時には、VBRは1C000000番地を示している。
・134ページに、TeraTerm経由のいい感じのモニタデバッガの画面が載っているが、これを使うにはRS232Cを外付けしなければいけないらしい。残念。
・ブート時にはビッグエンディアン。外付けメモリの空間は、CSnBCRレジスタで変更できるが、内蔵RAMのエンディアンはよくわからない。どうやら、この石はビッグエンディアンが標準っぽい。
HEWとかSHCや提供されたライブラリを使わずに、GCCでゼロからプログラムを作るなら、1C000000番地から配置されるように作ればよさそうです。その中でスタックポインタとVBRを再設定して、自分で作ったスタートアップルーチンにジャンプしてやればよさそうだなということがわかってきました。
開発中のSH-2A用JTAGデバッガでは、任意のコードをRAMにダウンロードするところまではできたので、あとは任意の番地へジャンプするような機能を作れば、GCCと組み合わせて遊べそうです。
| 固定リンク
コメント