SMM(The Simple MicroBlaze Microcontroller)
The Simple MicroBlaze Microcontroller
EDKを使わないMicoroBlazeプロセッサ、The Simple MicroBlaze Microcontrollerについて調べてみた。
The Simple MicroBlaze Microcontroller 2 (概要)
前回の”The Simple MicroBlaze Microcontroller”の時はアプリケーションノートのバージョンが1.0だったが、今度見たときにはVer3.0になっていて、ISE12に対応していた。概要をまとめた。
The Simple MicroBlaze Microcontroller 3(リファレンスデザイン)
今回はXAPP1141 Ver.3.0の25ページのリファレンスデザインをやってみた。LCDに表示して、押しボタンスイッチを押すとLCDの表示が変わる。
The Simple MicroBlaze Microcontroller 4(リファレンスデザイン2)
リファレンスデザインのテストの続き
The Simple MicroBlaze Microcontroller 5(デバック機能)
デバック機能付きのSMMに変更して、デバック機能を確かめた。
The Simple MicroBlaze Microcontroller 6(シミュレーション)
SMMの問題点はシミュレーションが出来ないことだ。この記事では、簡単なSMMのバスモデルを作ってシミュレーションを行った。
The Simple MicroBlaze Microcontroller 7 (50MHzから25MHzへクロックを変更)
実際にCMOSカメラ回路で使用するために、SMMの動作クロックを50MHzから25MHzに変更した。
The Simple MicroBlaze Microcontroller 8 (ロータリーエンコーダの実装)
SMMにロータリーエンコーダー制御回路を付けて、テスト表示させた
The Simple MicroBlaze Microcontroller 9 (SCCB回路の変更、設定SCCBレジスタ)
ロータリーエンコーダー制御回路が動作したので、それで、CMOSカメラのSCCB設定レジスタを設定するための回路の仕様とVHDLファイルの決定
The Simple MicroBlaze Microcontroller 10 (Cソフトウェアを書いているところ)
前回、SCCBレジスタの設定回路(SCCBインターフェース回路)をSMMから制御できるようにハードウェアを変更と、LCDに表示して設定するSCCBレジスタを決定したので、今度はSDKのソフトウェアを変更中だ。
The Simple MicroBlaze Microcontroller 11(SDKでエラー発生)
SMMでCMOSカメラのパラメータを設定するために、LCDにパラメータを表示して設定するという計画(長い。。。)のCソースは、だいたい書き終えた。550行くらいあるので、ソースをブログに貼ることができない。長い。
SDKでビルドしようとしたらエラーになってしまった。
The Simple MicroBlaze Microcontroller 12 (XPSでSMMをカスタマイズ)
前
回、SMMのRAM容量が足りないなそう?ということがわかったので、XPSでSMMをカスタマイズし、RAMを8KBから16KBへ倍増させてみること
にした。(最初は12.3でやったのだがワーニングが出ていて良いかどうかわからなくなったので、12.1でやり直した)
The Simple MicroBlaze Microcontroller 13 (16KB RAMのSMMでもう一度)
”The
Simple MicroBlaze Microcontroller 12
(XPSでSMMをカスタマイズ)”でRAMを16KBに拡張したはずなので、生成したsmm.ngcとsmm.bmmをISE12.3のプロジェクトに
入れてインプリメントし、SDKでコンパイルしてみた。
The Simple MicroBlaze Microcontroller 15 (デバック)
”The Simple MicroBlaze Microcontroller 13 (16KB RAMのSMMでもう一度)”でソフトウェアをSDKでコンパイルできたので、今度はデバックを試みた。
The Simple MicroBlaze Microcontroller 16 (SDKのデバック)
前回、main()関数の”Could not find the frame base for "main".”を修正したが、他の関数でも同じエラーが出ている。SDKのデバックはやめて、本来のCソースのデバックをすることにした。
The Simple MicroBlaze Microcontroller 17 (ChipScope Proによるデバックの問題点)
SMMはno_Debugの物でも、BSCANが使用されていてChipScopeが使用できなかった。
The Simple MicroBlaze Microcontroller 18 (CMOSカメラ回路のシミュレーション)
SMMをCMOSカメラ回路に接続した状態で、シミュレーションのスティミュラスを作って、シミュレーションを行った。
The Simple MicroBlaze Microcontroller 19 (SCCB設定レジスタを設定できたが...)
シミュレーションも大丈夫のようなので、もう一度、実機で確かめてみた。やはり、SCCB設定レジスタに設定できない。もしかして?と思って、同じ設定レジスタにもう一度設定するようにしたら、設定できた。。。これで目的の動作は実行できたが、疑問は残る?
SMMのSDKデバックとChipscope Pro Inserter を同時に使用する
SMMのシミュレーション(NetGenとData2MEMを使用する)
SMMでsmm.ngcをNetGenでVerilogに変換し、Data2MEMでelfファイルをmemファイルに変換して、SMMにソフトウェアをロードして、シミュレーションを行うことができた。