« 問題を構造化して考える技術 | トップページ | Never give up! »

2008年5月 6日 (火)

セクションの割り付けに問題あり

昨日に引き続き、SH7149上でHOS-V4を動かすための準備を進めています。まずはいただいたサンプルをSH7125上で動かそうとしていますが、ビルドしてできたMOTファイルをSH7125にダウンロードしてもなぜだか動きません。

で、その動かない理由を探ってます。まずJTAG-ICEでSH7125のメモリを読みだしてみたらH'00000000番地からず~~~とFFFFFFFFという値が入っていること。ん?と思ってMAPファイルを見てみたら、セクションは確保されているのに、その中にシンボルが何もない。あれ??? これで動いたらそりゃ暴走してるだけだわ。

なぜシンボルが割りつけられていないのか考えてみます。

(1) 割り付け方が間違っている場合。仕事でも何度かHEW(ルネサスの統合開発環境)を使ったことがあり、去年HEW + KPIT CGGを使った時も全く同じ割り付け方をしています。また、他社ツールでも大体似たような割り付け方をしているので、シンボルの割り付け方が間違っている可能性は(ゼロではないが)低いものと思います。

(2) 使用している開発ツールが評価版なため使用制限に引っ掛かっている場合。私が使用している開発ツールはルネサスの評価版なので、こちらに書いてあるとおり、60日を過ぎるとリンクサイズが256KB以内に制限されます。これに気付いた理由は、サンプルプログラムをビルドしたときに、HEWのBuildログに

Phase OptLinker starting
License has expired. Maximum link size limited to 256KB code+data.
Phase OptLinker finished

と表示されたからです。そこでサンプルプログラムとリンクしたい hos4v.lib(コンフィグレーション後に構築したもの)のサイズを見てみると 396KBありました。これのせいかなぁ?

私はこの評価版の使用制限を「リンクしてできるMOTファイルの上限サイズが256KBになる」と理解していたのですが、その理解が間違っているような気がしてきました。困ったなぁ。

« 問題を構造化して考える技術 | トップページ | Never give up! »

コメント

hamayanさん、アドバイスありがとうございます。細かい話は hamayanさんのblogにコメントさせていただきました。

ああ、問題が判りました。

そもそも参考として用意したプロジェクトですが、ターゲットには7145を使用し、それもRAM上で動かすセクションの設定をしています。
セクションがRAM上にオブジェクトを作成する設定なので、ROM領域はALL Fになっていたのでしょう。

7125云々の話は、pacint.srcがオリジナルのHOS-V4から拡張されているので、カーネルライブラリに関しては7125(7149)にもそのまま使えますという話なのです。

現在のワークスペースに新たにプロジェクトを追加して、7125や7149のサンプルを作成してみてください。

※vector.srcも7145用なので、こちらも修正が必要です。

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/167990/41111926

この記事へのトラックバック一覧です: セクションの割り付けに問題あり:

« 問題を構造化して考える技術 | トップページ | Never give up! »

最近の写真