[H8-ML(3522)] H8-GCCでstatic
From: "miyamae" <m_vega@xxxxxxxxxxxxx>
Date: 2003年07月05日(土)13時23分55秒
宮前です。
h8-gccでstaticを使用したところ思ったとうり動作しません。
gcc version 2.95.3 20010315  です、カスタマイズしたのを入手しました。

 static char  ppp[]="12345678";

 kkkを出力。
 ppp[4]='Z';
 kkkを出力。

 ルネサスのHEW(3ヶ月限定)は、モニタープログラム配下でもROM化
(H8/3664)しても、 変更の前後の内容が確認できました。
 GCCでは、モニター配下はOKですが,でROM化して実行すると変更
 前後のデータが同じ 内容で表示されます。

 GCC版をモニター配下で起動前後のメモリをダンプすると、kkkは下記の
.rodataに割り 当てられ、プログラムはここを変更していました。
 ROMエリアなので、ROM化して変更され ないのはこの為のようです。

 入手したサンプルのスタートアップでは、.dtorsから.data にコピーするように
 なっていましたが、リンクマップを見ると.dtorsのサイズはゼロ、.dataは、kkkの
 サイズのエリアが確保されていました。

 HEWの方は、ramにコピーされた内容が変更されていました。(モニターで確認)

 なにか、gccのコンパイラがまずいような気がしますが......。
 アドバイスいただけるとありがたいです。

リンクスクリプトの一部です。
.text 0xF8AC : {
 *(.text)
 *(.strings)
 *(.rodata)
     _etext = . ;
 } > rom
.tors : {
 ___ctors = . ;
 *(.ctors)
 ___ctors_end = . ;
 ___dtors = . ;
 *(.dtors)
 ___dtors_end = . ;
 }  > rom
.data : AT ( ADDR(.tors) + SIZEOF(.tors) ){
 ___data = . ;
 *(.data)
 *(.tiny)
  _edata = .;
 } > rom



スレッド概略
[表示中](起点)
 ├[3524(1)]
 └[3528(2)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]