私も好奇心や注意するが、これを検討してください可能性があります。私は、例えば、いくつかのセクション char buff[128] __attribute__((my_section))
に配列を配置する場合
。 そしてリンカスクリプトを使用して、そのセクションを例えば0x10004000番地、 に置くことができますか?&buff[0]
は常に0x10004000でしょうか? (私は、ARM Inc.のARMCC(旧RealView)と基本的なGCCツールチェーンとGNU ARMオープンソースを検討しています。)buff
オフセットがあるか、最初から埋められているか、ランタイム、リンク、 buff
の前に0x10004000にありますか?
また、この状況でCとC++の間に違いはありますか? C++には「バックグラウンドでもっとやるべきこと」があるからです。 :) 私はあなたの知識だけでなく、これに関するあらゆる種類の文書を提供することができます。ELFセクションのパディング
1
A
答えて
0
はい、&の場合、buff [0]は常に0x10004000になります。 Keilヘルプファイルの "コンパイラユーザガイド"の第9.46節を参照してください。
文字配列は、c/C++のインラインオブジェクトです。したがって、コンパイラはc/C++で同じことを行います。
関連する問題
- 1. ELFセクションのパディングを減らす方法は?
- 2. ELFのセクションをスワップ
- 3. LKMのELFセクションを使用
- 4. Linux実行時のELFセクションの "反復"
- 5. elfファイルの `.rodata.str1.8`セクションの意味
- 6. ELF Androidシステムライブラリの.rel.dynセクションの目的
- 7. Elf-fileの ".group"セクションの任命は何ですか?
- 8. .textセクションをLinuxの4Kアラインメントアドレスに分割する方法ELF
- 9. 縦私は、このセクション(情報-BG-セクション)にパディングを追加したいのdiv
- 10. ELF .notesセクションは本当に必要ですか?
- 11. 特定のコンパイラ生成変数を特定のELFセクションに強制する
- 12. 最小限の動的リンクELFプログラムにはどのセクションが必要ですか?
- 13. プログラムは独自のelfセクションを読むことができますか?
- 14. ELFファイルのバージョン・セクションに関する記述はありますか?
- 15. ELFセクションがセグメントに期待どおりにマッピングされていない
- 16. ELFファイルのデバッグ
- 17. ELFのシンボル解決
- 18. Linux ELFファイルセクション名
- 19. Linux elf .text direction
- 20. Benign ELFデータセット
- 21. スクリプトは、ELFバイナリ
- 22. パディングCOMANDは、それが機能していないですが、私はセクション
- 23. 現在ロードされているすべての共有オブジェクトのすべてのELFセクションを列挙します。
- 24. elfの.rodataセクションのchar *の値を変更することはできますか?
- 25. RailsのMySQLのELFヘッダエラー
- 26. ARM ELF難読化
- 27. 奇妙なELFバイナリ
- 28. ELFの文字列テーブル
- 29. ELFファイルの配列長
- 30. ELFバイナリでのインポート名
これは完全に正しいわけではありません。このセクションに複数のオブジェクトがある場合は、それらがメモリー内に配置される順序が保証されないため、リンカー・スクリプトでアドレスを具体的に設定する必要があります。もちろん、このセクションを予約してこのバッファのみを保存すれば、あなたは良いことです。 –
@ChristopheAugierはい。同じセクションに多くのオブジェクトがある場合は、オブジェクトアドレスを明示的に専用にすることをお勧めします。 –
これは、サブセクションでは必ずしもそうとは限りません。 '.eeprom.my'セクションを作成し、そのセクションが' .eeprom'セクションの開始後100バイトであることをリンカースクリプトから指定すると、リンカは最初に '.eeprom.my'を配置することを決定するかもしれませんこれらの100バイトを使用しない場合は '.eeprom'を使用します。 –