CQ_V850 (15) ― 2007年05月08日 20時22分03秒
メモリダンプとエディットを追加してみた。
ROM(0x3e0)をダンプしてみる。
ふむふむ、プログラムが入っている。
RAM(0x3ffe000)をエディットしてダンプしてみる。
メモリが書き換わっている。当然か...
こんなことしなくてもデバッガを使えば?
そのとおり。でもデバッガをインストールしていないのでこんなものを作ってみた。
今の環境はCA850、PM+、sp850es、Applilet for V850ESJX2 だけ。
Applilet for V850ESJX2 も削除する予定なのだが、なかなか削除するようにならない。時々使っているから。そしてPM+も...
hew にCA850を組み込もうとしたがツールチェインの登録が難 しそうなのであきらめた。
上記サンプルを置いた。
不用意に禁止領域にアクセスしないこと。ちなみにまだバグも残っている。
scanf がうまく動かない。
次は、標準関数 printf を使ってみたいな...
題して、「V850 printfが動くまで」 テクニカルライター後田 敏の部屋そのまま...
ROM(0x3e0)をダンプしてみる。
ふむふむ、プログラムが入っている。
RAM(0x3ffe000)をエディットしてダンプしてみる。
メモリが書き換わっている。当然か...
こんなことしなくてもデバッガを使えば?
そのとおり。でもデバッガをインストールしていないのでこんなものを作ってみた。
今の環境はCA850、PM+、sp850es、Applilet for V850ESJX2 だけ。
Applilet for V850ESJX2 も削除する予定なのだが、なかなか削除するようにならない。時々使っているから。そしてPM+も...
hew にCA850を組み込もうとしたがツールチェインの登録が難 しそうなのであきらめた。
上記サンプルを置いた。
不用意に禁止領域にアクセスしないこと。ちなみにまだバグも残っている。
scanf がうまく動かない。
次は、標準関数 printf を使ってみたいな...
題して、「V850 printfが動くまで」 テクニカルライター後田 敏の部屋そのまま...
CQ_V850 (16) 「V850 Printfが動くまで」 ― 2007年05月09日 20時36分24秒
ユーザーズマニュアルCA850 C言語編(U17291JJ2V0UM00.pdf) 225ページに printf の説明があった。
printf フォーマット指定したテキストを標準出力ストリームへ出力
※1.NEC エレクトロニクス製の統合ディバッガ“ID850”,システム・シミュレータ“SM850” では,サポートされていません。
※2.これらのストリームを使用するには,stdio.h ファイルで定義されている,ストリーム構造体の 初期値設定が必要です。
ということは
※1.から uart0を使っているということ。
※2.から 初期化関数がないということ?
がわかる。
続いて見てみると
入出力I/O アドレス設定例
__struct_stdout.handle = 0xfffff000;
__struct_stderr.handle = 0x00fff000;
__struct_stdin.handle = 0xfffff002;
extern FILE __struct_stdout;
extern FILE __struct_stderr;
#pragma section sdata end
#define stdin(&__struct_stdin)
#define stdout(&__struct_stdout)
#define stderr(&__struct_stderr)
あれ...#pragma section sdata begin がない
そして、次に
#include <stdio.h>
void func(int val)
{
fprintf(stdout, "%-10.5x \n", val);
}
と、いきなり書いてあるけど
これでほんとにいけるのかな...
やってみるか
H しか出てこない。
まさかとは思うが、送信バッファの空きを見ていないのか?
それでは、二文字ずつ送信しよう
Hellow Word !!がでた。
う~ん...ちょっとこれでは使えない。やり方まずかったかな
なれないことはやるもんじゃない。
やっぱりこういうことは本家にお任せするしかないか
何がいけないの
printf フォーマット指定したテキストを標準出力ストリームへ出力
※1.NEC エレクトロニクス製の統合ディバッガ“ID850”,システム・シミュレータ“SM850” では,サポートされていません。
※2.これらのストリームを使用するには,stdio.h ファイルで定義されている,ストリーム構造体の 初期値設定が必要です。
ということは
※1.から uart0を使っているということ。
※2.から 初期化関数がないということ?
がわかる。
続いて見てみると
入出力I/O アドレス設定例
__struct_stdout.handle = 0xfffff000;
__struct_stderr.handle = 0x00fff000;
__struct_stdin.handle = 0xfffff002;
extern FILE __struct_stdout;
extern FILE __struct_stderr;
#pragma section sdata end
#define stdin(&__struct_stdin)
#define stdout(&__struct_stdout)
#define stderr(&__struct_stderr)
あれ...#pragma section sdata begin がない
そして、次に
#include <stdio.h>
void func(int val)
{
fprintf(stdout, "%-10.5x \n", val);
}
と、いきなり書いてあるけど
これでほんとにいけるのかな...
やってみるか
H しか出てこない。
まさかとは思うが、送信バッファの空きを見ていないのか?
それでは、二文字ずつ送信しよう
Hellow Word !!がでた。
う~ん...ちょっとこれでは使えない。やり方まずかったかな
なれないことはやるもんじゃない。
やっぱりこういうことは本家にお任せするしかないか
何がいけないの
CQ_V850 (16’) 「V850 Printfは動くかな?」 ― 2007年05月14日 21時05分45秒
タイトル変更「V850でPrintfは動くかな?」
にする。”動くまで”だと動くまでやり続けなければならない。
ちなみに、もう降参である。
uart0_printf、uart1_printf、uart2_printf
が動いているので(uart2_printfは未確認)よしとしよう。
int uart0_printf(const char *, ...)
●機能
C言語のprintfとほぼ同等の機能。
浮動小数点は使えない。
表示桁数指定は9桁が最大。
●使用方法
uart0_printf("%s=%4d %04X\n", "TEST", 100, 200);
と、まあこんなところ。
にする。”動くまで”だと動くまでやり続けなければならない。
ちなみに、もう降参である。
uart0_printf、uart1_printf、uart2_printf
が動いているので(uart2_printfは未確認)よしとしよう。
int uart0_printf(const char *, ...)
●機能
C言語のprintfとほぼ同等の機能。
浮動小数点は使えない。
表示桁数指定は9桁が最大。
●使用方法
uart0_printf("%s=%4d %04X\n", "TEST", 100, 200);
と、まあこんなところ。
CQ_V850(17) ― 2007年05月15日 22時16分29秒
CQ_V850マイコンを使ったUSB-JTAG変換アダプタはほぼ出来上がったが、どうやって確認しようか?
まずはByteBlasterMVで接続し様子を見てみよう。(ここはこけるかもしれない。何しろUniversal Parallel Portだから。dellのノートパソコンでは動かないと書いてあった。)
次にR8C/Tinyマイコンを使ったRS232C-JTAG変換アダプタ で動作を見よう。
最後に、CQ_V850マイコンを使ったUSB-JTAG変換アダプタを接続しR8Cと同じ動きをすればそれで完成だ。
あくまで予定だが...
まずはByteBlasterMVで接続し様子を見てみよう。(ここはこけるかもしれない。何しろUniversal Parallel Portだから。dellのノートパソコンでは動かないと書いてあった。)
次にR8C/Tinyマイコンを使ったRS232C-JTAG変換アダプタ で動作を見よう。
最後に、CQ_V850マイコンを使ったUSB-JTAG変換アダプタを接続しR8Cと同じ動きをすればそれで完成だ。
あくまで予定だが...
最近のコメント