H8(その10)
H8に書き込めない問題継続中。
・windowsのPowerShellの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)となる。
このサイトを見てcatコマンドを試してみた。
読める。やはり読むことは出来るようだ。
...ごく稀に書き込めるのがよくわからない。
諦めよう。
windowsから書き込むことにして、次に進もう。
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 型のデータが格納されたアドレスなんだな」と認識してくれるようになります.
ポインタの基本中の基本だった。