タグ

ブックマーク / www.ertl.jp/~takayuki (2)

  • 「infoを読め」と言われたら...

    このページは、「組込み向けプログラム開発では絶対必要なスキルなんだけど、誰に聞いても「info読めば」としか答えてくれないものを、多少まじめに答えてみる」という趣旨のものです。基的には組込み応用だけでなく、プログラマとして重要な項目なども含めていくつもりです。 注意 : いきなりこのページを読むと、調べる力が身につかなくなります。なぜ相手が「infoを読め」と言ったのかを考えてから読むようにするとよいでしょう。 アライメントとか、ワード境界とか 構造体のサイズが妙に大きいとか、変数の読み出しが妙に遅いとか、アクセスエラー例外が起こるとか セクションとか.textとか ROMから動かないとか、変数の初期値が消えるとか、プログラムローダが止まるとか 初期化してない変数とか.bssセクションとか 「初期化してない変数が利用されました」警告とか、Cランタイムとか スクラッチレジスタとか呼出規約と

  • 初期化してない変数と.bssセクション

    キーワード C言語, 初期化されていない変数, 静的確保, ゼロ初期化, スタートアップ これだけは覚えよう すべての初期化していない静的に確保される変数は.bssセクションに入っていて、0で初期化される。 すべての初期化していない静的に確保される変数が0で初期化されると思っていると、上司に怒られる。 .bssって何? .bssセクションはセクションのひとつです(セクションとは何かが知りたければ、infoを読みましょう)。名前は「Block Started by Symbol(シンボル名で示された番地から始まるメモリブロック)」の頭文字からきています。 このセクションは、ELF(Executable and Linkable Format)では次のように定義されています。 .bss This section holds uninitialized data that contribute

  • 1