禺画像]
結局年を越してしまった。
mb9bfxxx_usb_device_virtual_com_port-v11.zip がうまく動かなかったのは、新たに追加した UsbClassCdc_Receive が原因だった。
UsbClassCdc_ReceiveByte の直前に UsbClassCdc_ReceivedLength() のチェックを入れると動きだした。
int UsbClassCdc_Receive(char *buf,int len, void *extobj)
{
while(len){
if(UsbClassCdc_ReceivedLength() > 0){
*buf=UsbClassCdc_ReceiveByte();
buf++;
len--;
}
}
return 0;
}
UsbClassCdc_ReceiveByte の中でも u32ReceivedData をチェックしているがそれではだめらしい。
腑に落ちないが深くは追求するまい。
(※追記:u32ReceivedData を volatile 宣言すれば修正の必要はなくなった。)
さて動き出した所で動作確認だ。
db 0[Enter] でダンプしてみる。
表示が非常に遅い。
Virtual COM Port で接続しているにもかかわらず UART 2400bps 程度のスピードしか出ていない感じだ。
UsbClassCdc.c を見ると Buffer の使い方がまずい。
わざと遅くなるように書いてあるような気がしないでもない。
いずれ修正してみよう。
次に Scroll で試してみる。
sb 0[Enter]
表示は遅いが問題なくコマンドラインに抜けてくる。
ハングアップするのは今の所 TRZ1104A (LPC1114/301) だけのようだ。
しかし、USB Direct Programmer といい Virtual COM Port といい、遅いのがとり得というのはさみしい。
というか Virtual COM Port は使い物にならないレベルなので何とかしたい所だ。おそらく Buffer の使い方以外にもおかしい所がたくさんあるのだろう。
frk-fm3_usb_nt-monitor_201301.zip[LINK] (動作確認しているのは ARM と G++ プロジェクト)
参照:
CuBeatSystems[LINK]
CQ出版社インターフェース2013年1月号 pp174-181「FM3マイコンで試す! メモリ・ダンプ・モニタの作成」
環境:FRK-FM3 (MB9BF618T)
+ mb9bfxxx_usb_device_virtual_com_port-v11.zip
+
Natural Tiny Shell (NT-Shell Version 0.2.0)[LINK]
+
Natural Tiny Monitor (NT-Monitor Version 0.2.0)[LINK]
+ TeraTerm Version 4.69
+ FUJITSU USB DIRECT Programmer V01L07
+ Keil MDK-ARM V4.53
+ GCC Sourcery CodeBench Lite 2012.09-63
+ KPIT Cummins GNU-Archive Editor v1.1
+ KPIT Cummins GNU-Map Viewer v1.0
セコメントをする