2011/12/04

擬似乱数、rand()もどき

,
Cで乱数を発生させる場合、特に精度を求めなければ、普通はrand() (<stdlib.h>)を使うことになります。が、もっと簡単なのでいい、という場合もあります。探してたら見つかったのでメモです。 これ:PICを使い乱数を発生させてLEDをランダムに光らせたいのですがプログラムがよくわ... - Yahoo!知恵袋 ちなみに、Attiny13Aでstdlib.hのrand()だと780byte程だったのが、上で紹介されてたrand()にしたら400byte弱になりましたとさ。ただまあ、まだ試してはい...
Read more →

[電子工作]AVRの逆アセンブラ、avr-objdump.exeを使う

,
 AVRの逆アセンブラ、avr-objdumpの話です。  WinAVRでプログラムを書いていて、「どうしてこんなメモリを喰うんだろう?」と思う時がありました。Cのコードを少し変えただけなのに、です。こんな時は、コンパイル結果である機械語のコードが全く違っていたりするので、確認のためにアセンブリのソースも見ないといけません。となると、逆アセンブラの出番になります。  …前置きが長いですが、AVRの逆アセンブラ、「avr-objdump.exe」についてのメモです。  この実行ファイルのオプションを知るには、avr-objdump.exeのmanを見て頂くのが早いです。一応、コマンドラインでただavr-objdumpと入力しても、オプション一覧が出ると思います。下にオプション一覧の画面を貼ってきます。 avr-objdump.exeのオプション一覧  逆アセンブラを吐き出すためには、一旦C/C++で作成したプロジェクトをMake Allし、できたファイルのうちのオブジェクトファイル(拡張子は.o、大抵main.oとか)が必要です。コマンドラインで、avr-objdump -S main.o とすれば、逆アセンブラのリストがずらーっと並びます。テキストファイルなどにしたい場合は、avr-objdump...
Read more →