CQ_V850 (15)2007年05月08日 20時22分03秒

ROM Dump
メモリダンプとエディットを追加してみた。

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秒

Hello World
ユーザーズマニュアル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 !!がでた。

う~ん...ちょっとこれでは使えない。やり方まずかったかな
なれないことはやるもんじゃない。
やっぱりこういうことは本家にお任せするしかないか

何がいけないの

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);

と、まあこんなところ

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と同じ動きをすればそれで完成だ。

あくまで予定だが...