H8(その14)

結構苦戦している。

ページが前後するので、解読が難しい。

 

131ページのreceiving++;の意味が分からない。

H8(その13)

4thステップ読み中。

ゴールデンウイークというわけで、サボってしまいました。

というか、別の事してましたので、

また再開します。

H8(その12)

3rdステップ終了。

 

気のせいも知れないけど、ld.scrのMEMORYコマンドで、

: o = 0x00000のスペースが必要みたいだ。

その部分で、make出来なくて苦戦した。

 

 

H8(その11)

2ndステップが終わった。

まだついていけている。

 

けど一つだけ、

putxvalの16進数に変換するやり方、

*(p--)="123456789abcdef"[value&0xf];

こんな書き方ありなの?

 

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 型のデータが格納されたアドレスなんだな」と認識してくれるようになります.

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