10.3 RVCT v3.0 と RVCT v3.1 の間でのリンカの変更点

RVCT v3.1 ではさまざまな変更が armlink に加えられました。

スキャッタファイルで、ルート ZI のロードアドレスの特例処理がなくなりました。例えば、以下のような場合です。

LR1 0x8000 {     ER_RO +0     {         *(+RO)     }     ER_RW +0     {         *(+RW)     }     ER_ZI +0     {         *(+ZI)     } } LR2 +0 {
    … }

RVCT v3.0 までのバージョンでは、リンカが LR2 のベースアドレスを計算するときに、ER_ZI のサイズを含めていました。イメージの初期化で ER_ZILR2 の先頭に上書きされるため、問題ないとされていました。

v3.1 以降では、次のように ImageLimit() 組み込み関数を使って、同等のスキャッタファイルを記述できるため、この特例がなくなりました。

LR1 0x8000 {     ER_RO +0     {          *(+RO)     }     ER_RW +0     {         *(+RW)     }     ER_ZI +0     {         *(+ZI)     } } LR2 ImageLimit(LR1) {
    … }
関連する参考文書
10.1 RVCT v3.0 と RVCT v3.1 の間での全般的な変更点
関連情報
スキャッタファイルで使用する実行アドレスの組み込み関数
非機密扱いPDF file icon PDF 版ARM DUI0530JJ
Copyright © 2010-2013 ARM.All rights reserved.