AVR Libc Home Page | ![]() |
AVR Libc Development Pages | ||
Main Page | FAQ | Library Reference | Additional Documentation | Example Projects |
#include <avr/io.h>
このヘッダファイルはコンパイラコマンドラインスイッチ-mmcu=オプションで指定されたデバイスに対応する適切なI/Oレジスタ定義を提供します。これは適切なファイル<avr/io
XXXX.h>
に自動的に置き換えられることで実現します。デバイス依存直接読み込むことはありません。全てのAVRデバイスで共通ないくつかのレジスタ名は直接
<avr/io.h>
で定義されていますが、大部分のデバイス依存レジスタは各自のインクルードファイルから読み込まれます。
#include <avr/sfr_defs.h>
↑このファイルは常にインクルードされなければなりません。(※avr/io.hから読み込まれるので、通常は指定は不要です)
詳細はSpecial function registers をご覧ください。
読み込まれるのは、Atmelのデータシートなどで指定されているIOレジスタセットと、それぞれのビット名とビット番号の定義です。Atmelは命名慣習にそれほどこだわりが無いため、そのために同じ関数が時に違うデバイスでは違うレジスタ名・ビット名を受けることもあります。
さらに、割り込み宣言に関係する名前の定義も読み込まれます。 こちらをご覧ください。
最後に、以下のようなマクロが定義されています。
- RAMEND
内蔵SRAMの最終アドレス
- XRAMEND
(外付けも含め)SRAMがとりうる最高位アドレス。外付けRAMが接続できないデバイスではRAMENDと同じです。
- E2END
EEPROMの最終セルのアドレス。
- FLASHEND
フラッシュROMの最終バイトアドレス
- SPM_PAGESIZE
ブートローダーサポートデバイスのみ。SPM命令で使用されるフラッシュページサイズ(バイト単位)