このサイトのリンクには広告リンクが含まれます。

MSP430ビルドエラー

この記事は約3分で読めます。

デバイス:MSP430
開発環境:Code Composer Essentials(フリー)
エラー内容:error: placement fails for object “.text”

TI エンジニア・コミュニティ情報:
https://community.ti.com/jp/forums/t/139.aspx

プロダクト・インフォメーション・センター回答:
> 1 リンクマップの調べ方
>  ・buildでエラーが出たときは、リンクマップ出力して調べてください。
>  ・今回添付された.map では、
>    [memory configulation]
> FLASH  origin:fc00 length:3e0  used:3c
> [section allocation map]
> .text origine:0000 length 3f4 faild to allocation
>
>  ・上記のように
>   コード配置されるsection:.text が ”faild…”とエラーを示し、アドレス:0000 のままです。
>   正常ならば FLASH領域に配置されます。
>
>  *さらにlength:3f4 ですから FLASHのlength:3e0 を超過してます。
>    これに.cinit length:3c が加わります。(.cinitのみ配置された状態です)
>
>  *リンクマップをちょっと見ていただくと、どういう構造か解ると思います。
>    エラーが起きたときに、調べるとプログラムの状況を把握できます。
>
>  *今回は、数十バイトオーバしているだけですので、releaseモードで build すると、
>   デバグモジュールがリンクされないので、FLASHに収まってエラーも出ません。
>
> 2 回避策
>  ・回避策は、いくつかありますので、どれが良いかご判断お願いします。
>
>  ① デバッグプラットフォームは、メモリ容量の大きなデバイスを使用する方法
>   ・これが一般的な方法です。
>   ・デバッグモードでは、シンボリックデバッグルーチンなどが入るので、releaseより大きな
>    プログラムサイズになっていますので、メモリの大きなデバイスを使用します。
>   ・デバッグが終了したら、releaseモードにして、ターゲット用のリンクコマンドを選択して
>    リンクできるか、メモリ容量に収まるか調べます。
>
>  ② コンパイラの最適化(optimaization)を使い、プログラムサイズの縮小を計る方法
>   *最適化すると、動作しなくなる場合も出て、スタックや最適化度合いを調整できる、
>     熟練者向きです。 お客様の責任で検討をお願いします。
>   ・今回の場合、下記でサイズが削減できます。 スタックは多少増やしてください。
>     Project->Properties->Tool Setting->Optimization Level = 2(default)
>     その上の speed vs size …. も必要なら検討します。
>
> 3 関連資料
>  ・CCEのコンパイラの設定とリンクについては、下記をご参照ください。
>    MSP430 Optimizing C/C++ Compiler v 3.1 User’s Guide
>     http://focus.tij.co.jp/jp/lit/ug/slau132c/slau132c.pdf

コメント

  1. ro より:

    sugoi

タイトルとURLをコピーしました