おはよう、
私のプロジェクトの一つで、ソフトウェアから実際には参照されない定数文字列「ABCDEF」を追加する必要があります。
const int8_t ID[] __attribute__((used)) = {"ABCDEF"};私はこの文字列を「キー」または「マーカー」として使用し、リンク処理後に生成されたバイナリファイル内の特定のデータを分析および特定します。残念ながら、オプティマイザがこの文字列を削除してしまうため、最終的なバイナリには含まれません。
私はMCUXpresso IDE v25.6 [ビルド136] [2025-06-27]を使用しています。
同様の問題に遭遇した方はいらっしゃいますか?リンカーに参照されていないセクションや変数を保持させるように強制するには、どうすれば良いでしょうか?
ご協力いただき、誠にありがとうございました。
よろしくお願いします。
こんにちは@_Ferrari_
投稿ありがとうございます!
volatile ディレクティブを使用して、コンパイラにその変数を最適化しないように指示してください。
const volatile int8_t ID[] __attribute__((used)) = {"ABCDEF"};
この情報がお役に立てば幸いです。
こんにちは@_Ferrari_
使用している最適化レベルを教えていただけますか?
BR
残念ながら、それは適切な解決策ではありません。
もし私が使うなら
const volatile int8_t ID[] __attribute__((used)) = {"FEDCBA"};ID定数は最終出力ファイルから破棄されます。
よろしくお願いします。