H8(その10)

H8に書き込めない問題継続中。

 

windowsPowerShellのkz_h8writeからは書き込める。

Bash on Ubuntu on Windowsのminicomで通信は出来る。

上記の事から、Bash側のポート設定が間違っているか、kz_h8writeがおかしいか。

 

昨日の朝にやってみたら、書き込めた!

なぜ?

 

一応もう一度確認の為に書き込んでみようとしたら、

書き込めなかった!

なぜ?

 

そういえば公式ブログに、ラズパイとのつなぎ方が乗ってたのを思い出した。

H8も同じだろうということで、やってみた。

sudo chmod 666  /dev/stty3

stty -F /dev/ttyS3 sane 9600

stty -F /dev/ttyS3 raw 9600 -echo -echoe -echok -echoctl -echoke -iexten -onlcr cs8 crtscts

を試してみる。

駄目だった.....。

 

Bitrate sequence failed.(CODE=0x04)となる。

 

qiita.com

このサイトを見てcatコマンドを試してみた。

f:id:Aluminium:20170429094201j:plain

読める。やはり読むことは出来るようだ。

 

 

...ごく稀に書き込めるのがよくわからない。

諦めよう。

windowsから書き込むことにして、次に進もう。

H8(その9)

まあ、分からないところは、

そんなものだと理解してスキップ。

 

進めていったら、romに書き込めないことが判明した。

(アップグレード後に確認を怠った)

通信で、読むことはできる。

なぜだ?

 

windows 版のkz_h8writeからは書き込めるので、ポート設定関係?

H8(その8)

ステップ2を読み進めているけど、

p65のプログラム

#define H8_3069F_SCI0 ((volatile struct h8_3069f_sci *)0xffffb0

で、0xffffb0の前の型が書いてある理由がわからない。

 

それと、

static struct{

 volatile struct h8_3069f_sci *sci;

} regs[SERIAL_SCI_NUM]={.........}

 

構造体の配列を使っているけど、メンバが1個しかないのに、

なぜ構造体の配列にしているのかわからない。

 

追記

0xffffb0の下りは、以下のリンクの真ん中あたり、

http://www.eleki-jack.com/h8/2009/09/h8-21h8c.html

 したがって,ここでただ単に「0xffe9」と書いただけではこれは単なる整数値であって,コンパイラはこの数値がメモリのアドレスを意味しているとは 思ってくれません.それを教えてやるために整数「0xffe9」を「unsigned char 型へのポインタ」としてキャスト変換し,

(unsigned char *)0xffe9


と書きます.するとコンパイラは「この0xffe9 というのは,なにかunsigned char 型のデータが格納されたアドレスなんだな」と認識してくれるようになります.

 ポインタの基本中の基本だった。