H8,SH,マイコン,ぼやき川柳,ダウンロード

タイマーと内部トレース

SH-2Aのタイマーは好きになれない。なぜならCMTが16bitしかないから。贅沢かもしれないけど64bit欲しい。元々、非力なマイコンでそんなに頻繁に割込み掛けてどうするのだろう? RTCも持ってるけど、16ms程度の分解能しかない。関係ないけど水晶の精度も悪く時計としては使用できない
サンプルプログラムもLEDを点滅させるような使い方しか紹介されていない。だから、使ってなかった

何でタイマーを使う気になったかと言うと、内部トレースを出すため。内部トレースの出力はメインループの中で行っている。(本来は暇な時)
勿論、正常な場合は問題ない。ところが、偶にstageを進む時、PIPEのステータスがDONEになるのを無限ループで待つような場合がある。バグがあると永久にメインループには戻らず、内部トレースの最新部分が出力されない。つまり、一番大事な時に一番大事な部分のトレースが出力されない場合がある。
(やむを得ずRESETしてTinyMonのDLコマンドで内部トレース領域をダンプしていたが、これは結構面倒くさいし、見辛い)

そこで、タイマー割込みルーチンから溜まっている内部トレースを出力しようと考えた

CMTタイマーについては付属基板が付いていた6月号に解説がある。6月号を参考にソースを追加したが動かない・・

intprg.c
// 174 VDC3 VOLINE
void INT_VDC3_VOLINE(void)
{
	/* sleep() */
}


// 175 CMT CMT0 CMI0
// 175 CMT CHT CMI0
/*=== CMI0関数定義 ===*/
#pragma ifunc INT_CMT_CMI0,int_cmt_cmi0
void INT_CMT_CMI0(void){
	extern void int_cmt_cmi0(void);
	int_cmt_cmi0();
}


//void INT_CMT0_CMI0(void)
//{
	/* sleep() */
//}
// 176 CMT CMT1 CMI1
void INT_CMT1_CMI1(void)
{
	/* sleep() */
}
 
調べてみると、intprg.cに修正が必要ようだ
きっと、方言だと思うけど、INT_CMT0_CMI0[0あり]とINT_CMT_CMI0(0なし)があるのでますます混乱する。
 
 
 
  
 

FatFsに遊ばれる


なんとFatFsはSDカード対応のSH7262用のサンプルPJを提供しています
適当にソースをマージしてコンパイルエラーが出た行をコメントアウトしました。当然動きません
最初にツマイズイタのがシリアルのIO
FatFsは独自に書式付きIO関数群を持って居ます。エレガント過ぎて、理解出来ず・・・。しばらく遊ばれそうです


「この道はいつか来た道・・・」
そうそう、SDカードで昔、お世話になりました。あの頃はドライバまで提供されていた(作者はFATだけでなくSDカード、電子工作、アニメにも精通していらっしゃる。どういう人?)のですが、今回ドライバ部分は使えないので接続が大変(それ故楽しめそう)です

 
 
 

10


flコマンド(ディレクトリ表示)が使用出来るようになりました



 

11


シクシク・・、本当に遊ばれてしまいました。グスン
ソースをマージして、フラグが立ったところをコメントアウトしただけでは動かないのは分かっています。でも、それなりに見直して#DEFINEのオプションを色々変えてみたり、USBメモリをフォーマットしなおしたり、試行錯誤しました
USBメモリのデータの内容はDDコマンドでダンプ出来るので、当面の目標はFL(ディレクトリのメンバ表示)コマンドです
昨日あたりから、少し動き出したのですが、表示終了まで10分ぐらい掛かります。10分ぐらいダンマリ、待っていると突然一気に表示される。どこで時間食ってるのだろう・・、正直FatFsのソースは何をやっているのかサッパリ分かりません。洗練され過ぎていて(コメントも少ないのですが)訳が分からず、でもバカはバカ(ポチのことです)なりに時間を掛けて、それこそ全部のサブルーチン呼出しの前後にデバッグメッセージを入れました
そしたら、FatFsとのAPIルーチン(disk_status()とか)にわざわざ仕込んだprintf()が悪さをしていることが分かりました。printf()をSerial_Puts()に置き換えたらスイスイ動きますた。本当の原因はよく分かりません。ネストが深すぎるのでしょうか?

明日(2011.3.25)はRX62Nマイコン付属のInterface誌の発売の日です。SH-2Aに遊ばれ始めて、かれこれ1年経ちます

RX62NマイコンはDRAMとも接続できるみたいで、相当遊べそうです
私はやり残したことが色々あるので、もう暫くSH-2Aに遊ばれます
だって、最近やっとUSB関係の用語には慣れてきましたが、プロトコルは全く理解できていませんから、

USBが好きになった訳ではないです!

12


 


  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
****

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

管理人/副管理人のみ編集できます