パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

64ビットコンピュータ使いこなしている?」記事へのコメント

  • AVRの8ピンで電子工作始めました。
    使いこなすとか以前に、gcc(AVR-GCC)使わないとプログラムできない自分に絶望した。

    --
    #壮大なストーリ。空転するアイディア。
    • by taka2 (14791) on 2011年04月25日 11時04分 (#1942100) ホームページ 日記

      AVRはアーキテクチャが素直だし、gccは最適化で結構良いコード吐くので、Cでも全然問題ないですよ。

      あとは、C言語でマイコンプログラミングする時に一番注意しないといけないのは、
      割り込みでのvolatile キーワード使いこなしとかじゃないかなぁ。

      ブログとかで「gccで最適化を有効にすると正しく動作しないので、仕方ないから最適化は切ってる。でもそうするとコードサイズがすごく大きくなる」なんていうgccの最適化がバグってると主張しているような記事を見かけたりすると、「gccは悪くない。ちゃんとvolatile使え」とツッコミを入れたくなる…

      volatile指定していない変数は、割り込みとかで値を書き変えても、
      (最適化でレジスタに割り当てられたりするなどによって)メインルーチン側では反映されません。

      かといってvolatileを付けだだけだと、変数参照で毎回メモリ読み出しが発生するので効率が悪い。
      効率を重視するなら、一旦ローカル変数にコピーしてから、最後にvolatile変数に書き戻すようなコードが一番いいです。

      そういった一手間をかければ、かなりコンパクトなコードをコンパイラに吐き出させることができます。
      ATtiny13Aとかだと、プログラム1KBよりも、メモリ(SRAM)64バイトの方が制限きつい…

      親コメント

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

処理中...