(toppers-users 2045) Re: cxx_sample1でBus erroeが出てしまいます

=?iso-2022-jp?B?GyRCJU8lQyVUITw5KTZILWolXyU3JXM1Oz1RSXQbKEI=?= sew-gijyutsu @ happy-ind.co.jp
2005年 7月 5日 (火) 15:22:57 JST


 新井田です。
 高木様、もなか様、色々ありがとうございます。まだ動いてはいないのですが、


> 止まってしまうのはバナー出力の前でしょうか?後でしょうか?

ハイパーターミナルには何も出てきません。
main_task()の先頭にブレークポイントを入れてみましたが、そこまでも来ていない
ようです。

> .initセクションが0x0番地になっているようです。
> .textの前後になるようにリンカスクリプトを調整してください。

以下のようになりました。
Loading section .text, size 0xdc80 lma 0xc004000
Loading section .init, size 0x36 lma 0xc011c80

現在の状況は、次の通りです。
Program received signal SIGBUS, Bus error.
_malloc_r (reent_ptr=0x45aa5da8, bytes=59)

> STACKTOPの定義と、.bssおよび_endの定義が分かれば、ある程度見えてくるかもし
れません。

> (gdb) print _end
> などして、_endに割当てられたアドレスを
> 見てみるというのが第一歩かと思います。

No symbol "_end" in current context.と言われてしまいました。やはり何か違って
いるのかもしれません。
リンカスクリプトも実は内容がよくわからないまま
sh-hitachi-elf/lib/ldscripts/shelf.x の該当するセクションを持ってきただけの
ような感じです。

.bss、_endのあたりは下記のようになっています。

    __idata_end = __idata_start + SIZEOF(.data);
    _edata  =  . ;
    PROVIDE (edata = .);
    . = ALIGN(4);
    __bss_start = . ;
  .bss            :
  {
   *(.dynbss)
   *(.bss .bss.* .gnu.linkonce.b.*)
   *(COMMON)
   . = ALIGN(32 / 8);
  }
    _end = .  ;
    PROVIDE (end = .) ;
    .comment 0 : { *(.comment) }
    .debug          0 : { *(.debug) }
    .line           0 : { *(.line) }
    .debug_srcinfo  0 : { *(.debug_srcinfo) }
    .debug_sfnames  0 : { *(.debug_sfnames) }
    .debug_aranges  0 : { *(.debug_aranges) }
    .debug_pubnames 0 : { *(.debug_pubnames) }
}

STACKTOPは /config/sh3/hsb7727st/sys_defs.h で、下記のように定義されていま
す。これが使われているのでしょうか?

#define STACKTOP    0x0c200000

何もわからない状態でご迷惑おかけしますが、宜しくお願い致します。