人気ブログランキング | 話題のタグを見る

雑多な趣味の記録帳

tom01h.exblog.jp

V-scale でも kozos を動かしたい 続き

kozos では、データ領域(初期値のある静的変数)を起動時に ROM から SRAM にコピーするのですが、そのサイズをリンカスクリプトで定義しているシンボルから拾っています。この数字がまた、今までとちょっと変わったみたい。
リンカスクリプトには↓のように書いているのだけど、edata≠bbs_start なんです。プログラムの方は同じ値を期待しているようで、コピーサイズが ”(long)&edata - (long)&data_start” なので、最後の1個がコピーされないのが原因でした。
なんでこういう微妙な違いがあるのかなぁ?
で、データ領域初期化はできたけど、XMODEM は動かない… 前にループが足りなかった時と同じ動きだ。今回は時間延ばしただけじゃ動かなかったけど…

.data : {
data_start = . ;
*(.data)
edata = . ;
} > data AT> rom
.bss : {
bss_start = . ;
*(.bss)
*(COMMON)
ebss = . ;
} > data AT> rom
. = ALIGN(4);
_end = . ;

by tom01h | 2016-12-11 21:27