第 2 章 CPU コア
2.2 メモリ空間
2.2.2 データ領域
データ領域には転送命令、演算命令などソース、ディスティネーションとしてアクセスされるデー タが格納されます。
データ領域には
SFR
、RAM
、BOOTROM
、フラッシュメモリが割り当てられます。0x0000
SFR1 (64バイト)
SFR1
(64バイト)
0x003F
0x0040
RAM (2048バイト)
RAM
(2048バイト)
0x083F
0xFFが読み出され
ます 0xFFが読み出され ます 0x0E40
SFR3 (192バイト)
SFR3
(192バイト)
0x0EFF
0x0F00 SFR2
(256バイト)
SFR2
(256バイト)
0x0FFF
0x1000 BOOTROM
(2048バイト)
0x17FF
0x1800
0xFFが読み出され
ます 0xFFが読み出され ます
0x7FFF
0x8000 フラッシュメモリ
(32768バイト) フラッシュメモリ
(32768バイト)
0xFFFF
リセット解除直後
BOOTROMをデー タ領域に割り当てた
場合
注) シリアル
PROM
モード以外ではBOOTROM
の前半2K
バイトのみメモリマップに割り当てられます。図 2-2 データ領域のメモリマップ
2.2.2.1 SFR
SFR
はリセット解除後、データ領域の0x0000 ~ 0x003F(SFR1)
、0x0F00 ~ 0x0FFF(SFR2)
、0x0E40
~ 0x0EFF(SFR3)に割り当てられます。
注)
Reserved
のSFR
にはアクセスしないでください。2.2.2.2 RAM
RAM
はリセット解除直後、データ領域の0x0040 ~ 0x083F
に割り当てられます。注)
RAM
の内容は電源投入時、リセット解除直後、不定になります。RAMでプログラムを実行する場合、初期化ルーチンで実行するプログラムの転送を行ってください。
(プログラム例) RAM初期化のプログラム例
LD HL, RAM_TOP_ADDRESS ;初期化するRAMの先頭アドレス
LD A, 0x00 ;初期化データ
LD BC, BYTE_OF_CLEAR_BYTES ;初期化するRAMのバイト数-1
CLR_RAM: LD (HL), A ;RAMの初期化
INC HL ;初期化アドレスインクリメント
DEC BC ;すべてのRAMを初期化したか?
J F, CLR_RAM
2.2.2.3 BOOTROM
BOOTROM
はリセット解除後、コード領域にもデータ領域にも割り当てられません。FLSCR1<BAREA>
を"1"
にセットし、FLSCR2
に0xD5
を書き込むことでコード領域の0x1000 ~
0x17FF、データ領域の 0x1000 ~ 0x17FF
に割り当てられ、BOOTROMに内蔵されているAPI
(Application Programming Interface)
を使用し、フラッシュメモリへの書き込みを容易に行うことができます。
注
1) BOOTROM
をデータ領域に割り当てない場合、0x1000 ~ 0x17FFは0xFF
が読み出されます。注
2)
シリアルPROM
モード以外ではBOOTROM
の前半2K
バイトのみメモリマップに割り当てられます。フラッシュメモリ制御レジスタ
1
FLSCR1 (0x0FD0)
7 6 5 4 3 2 1 0
Bit Symbol (FLSMD) BAREA (FAREA) (ROMSEL)
Read/Write R/W R/W R/W R/W
リセット後 0 1 0 0 0 0 0 0
BAREA BOOTROMのコード領域、データ領
域割り当て指定
0 : BOOTROMをコード領域の0x1000 ~ 0x17FF、データ領域の0x1000 ~ 0x17FFに割り当てない
1 : BOOTROMをコード領域の0x1000 ~ 0x17FF、データ領域の0x1000 ~ 0x17FFに割り当てる
注) フラッシュメモリ制御レジスタ
1
は、FLSCR1レジスタとシフトレジスタとのダブルバッファ構造とな っています。FLSCR1レジスタの設定は、FLSCR2レジスタに0xD5
を書き込むことによってシフトレ ジスタに反映され、有効となります。よってFLSCR2
レジスタに0xD5
を書き込むまでは、設定値は有 効となりません。フラッシュメモリ制御レジスタ
2
FLSCR2 7 6 5 4 3 2 1 0
(0x0FD1) Bit Symbol CR1EN
Read/Write W
リセット後 * * * * * * * *
CR1EN FLSCR1レジスタの
許可/禁止制御
0xD5 その他
FLSCR1の変更を有効にする
Reserved
2.2.2.4
フラッシュメモリフラッシュメモリはリセット解除後、データ領域の