2007年 03月 26日
V850 インターフェイス付録基盤で遊ぶ 2
今回は、ソフトの話。
とりあえず、付属のCDのサンプルから解析を始めよう・・・
VSWC= 1;//システム・ウエイト・コントロール・レジスタ
WDTM2= 0;//ウォッチドッグ・タイマ・モード・レジスタ2
__asm("mov0x00, r11");//r11をクリア
__asm("st.br11, PRCMD");//特殊レジスタを一回限り変更可能にする
__asm("st.br11, PCC");//PCCレジスタ
これがとりあえず、一番最初に実行すべき内容みたい・・・
ん~ 読めば読むほどプログラムがめんどくさくなっていく・・・
C言語じゃないな~ アセンブラに近いC言語って所か・・・
まぁ、慣れれば離れられないかもしれないけどw
コンパイラーの問題は、レジスタの名前どおり勝手にソフトが認識しているということ。
だから、予約語リストとかは無くて、ヘッダーもない・・・・
まぁ、サンプルプログラムの解析には、変数名をそのままデーターシートで検索すればスグだしw
while( LOCK );//クロックが安定するまで待つ。
これが、珍しい気がする。
PLLクロックを内部で使っているから、安定するまでプログラム上で待たなくてはならないらしい。
この、プログラム上で、って点が珍しいってか、不思議な感覚なんだよ。
FPGAとかなら、フラグが立つまで待ったりするんだけど・・・
マイコンでも、待つんだな~と思って・・・
ってか、ここら辺、記事にかかれてないから、結構曖昧な記事だな~と思ったw
SELPLL= 1;//PLLモードに指定
これで一応PLLモードに関するプログラムなんだけど・・・
どうも、”SELPLL”はPLLが安定してから指定しないと意味がないという、なんとも不思議なプログラムになるみたい・・・
なんか、CPUがモジュールの集合体みたいな感覚で扱えるな~
意外と仲良くなっていけるかもしれないw
ん~ 底から先は、どうも専用のプログラムになっているみたい。
ret= _rcopy( &_S_romp, -1 );
とか
__nop();
とか・・・
ん~、難しいもんだな~ プログラムってさ
それに、NECの開発環境って、バラバラで、しかもエディターは使いづらいし・・・
結局、いつも使い慣れているエディターで書いてるし・・・
特殊変数も検索できないし・・・
まぁ、頑張るかw
****追記****
ret= _rcopy( &_S_romp, -1 );
については判ったけど・・・
コイツはどうやら、固定ROMとフラッシュROMを切り替える見たいなんだけど・・・
固定ROMってなんだ?フラッシュROMは、フラッシュROMだよな・・・
コンパイラーのデーターシートをパラ読みしたんだけど・・・
以下推測。
多分、固定ROMって言うのは、同じフラッシュROMに焼くんだけど、一度も変更しない領域のことじゃないかな・・・
Bootup.s ってファイルに色々書き込んでいるみたい。
なんだけど、データーシートに書いてあるサンプルのプログラムが、Bootup.s に記述されてないのよ・・・
mainにジャンプする記述はあっても、フラッシュROMへのジャンプは書いてないのよ・・・
ためしに、
ret= _rcopy( &_S_romp, -1 );
をコメントアウトしてコンパイラしたんだけど、結局同じ結果でチカチカLEDが光っているのよ・・・
ん~、コレは・・・どういうことでしょう。
BootupはCDのサンプルをコピーしているから・・・
今のプログラムじゃ、いらね~んじゃないかな・・・
もう少し大きなプログラムをするときとかに必要とか・・・
ん~ 判らん。
あれ・・・ CPUの初期化のプログラム入れなくても実行される・・・
なんだ?あ~もうわけわからん!
ん~初期化だけは必要みたい。
動作クロックが遅くなるみたい。ってか変なチカチカ波形が出るから、動作不安定になるのかな・・・
でも、
ret= _rcopy( &_S_romp, -1 );
は、無くても問題ないかもしれない。
************
とりあえず、付属のCDのサンプルから解析を始めよう・・・
VSWC= 1;//システム・ウエイト・コントロール・レジスタ
WDTM2= 0;//ウォッチドッグ・タイマ・モード・レジスタ2
__asm("mov0x00, r11");//r11をクリア
__asm("st.br11, PRCMD");//特殊レジスタを一回限り変更可能にする
__asm("st.br11, PCC");//PCCレジスタ
これがとりあえず、一番最初に実行すべき内容みたい・・・
ん~ 読めば読むほどプログラムがめんどくさくなっていく・・・
C言語じゃないな~ アセンブラに近いC言語って所か・・・
まぁ、慣れれば離れられないかもしれないけどw
コンパイラーの問題は、レジスタの名前どおり勝手にソフトが認識しているということ。
だから、予約語リストとかは無くて、ヘッダーもない・・・・
まぁ、サンプルプログラムの解析には、変数名をそのままデーターシートで検索すればスグだしw
while( LOCK );//クロックが安定するまで待つ。
これが、珍しい気がする。
PLLクロックを内部で使っているから、安定するまでプログラム上で待たなくてはならないらしい。
この、プログラム上で、って点が珍しいってか、不思議な感覚なんだよ。
FPGAとかなら、フラグが立つまで待ったりするんだけど・・・
マイコンでも、待つんだな~と思って・・・
ってか、ここら辺、記事にかかれてないから、結構曖昧な記事だな~と思ったw
SELPLL= 1;//PLLモードに指定
これで一応PLLモードに関するプログラムなんだけど・・・
どうも、”SELPLL”はPLLが安定してから指定しないと意味がないという、なんとも不思議なプログラムになるみたい・・・
なんか、CPUがモジュールの集合体みたいな感覚で扱えるな~
意外と仲良くなっていけるかもしれないw
ん~ 底から先は、どうも専用のプログラムになっているみたい。
ret= _rcopy( &_S_romp, -1 );
とか
__nop();
とか・・・
ん~、難しいもんだな~ プログラムってさ
それに、NECの開発環境って、バラバラで、しかもエディターは使いづらいし・・・
結局、いつも使い慣れているエディターで書いてるし・・・
特殊変数も検索できないし・・・
まぁ、頑張るかw
****追記****
ret= _rcopy( &_S_romp, -1 );
については判ったけど・・・
コイツはどうやら、固定ROMとフラッシュROMを切り替える見たいなんだけど・・・
固定ROMってなんだ?フラッシュROMは、フラッシュROMだよな・・・
コンパイラーのデーターシートをパラ読みしたんだけど・・・
以下推測。
多分、固定ROMって言うのは、同じフラッシュROMに焼くんだけど、一度も変更しない領域のことじゃないかな・・・
Bootup.s ってファイルに色々書き込んでいるみたい。
なんだけど、データーシートに書いてあるサンプルのプログラムが、Bootup.s に記述されてないのよ・・・
mainにジャンプする記述はあっても、フラッシュROMへのジャンプは書いてないのよ・・・
ためしに、
ret= _rcopy( &_S_romp, -1 );
をコメントアウトしてコンパイラしたんだけど、結局同じ結果でチカチカLEDが光っているのよ・・・
ん~、コレは・・・どういうことでしょう。
BootupはCDのサンプルをコピーしているから・・・
今のプログラムじゃ、いらね~んじゃないかな・・・
もう少し大きなプログラムをするときとかに必要とか・・・
ん~ 判らん。
なんだ?あ~もうわけわからん!
ん~初期化だけは必要みたい。
動作クロックが遅くなるみたい。ってか変なチカチカ波形が出るから、動作不安定になるのかな・・・
でも、
ret= _rcopy( &_S_romp, -1 );
は、無くても問題ないかもしれない。
************
by Noise_Blog | 2007-03-26 20:20 | E lectron