메모리 구조
DIO32 디바이스 메모리는 내부 데이터 메모리와 외장 프로그램 메모리로 되어 있습니다.
1.1 외장 프로그램 메모리 구조
DIO32 디바이스는 16비트 프로그램 카운터(PC)를 가지고 있습니다. 기본적으로 256×8비트부터 64K×8비트 외장 프로그램 메모리 공간을 어드레스 지정할 수 있습니다.
프로그램의 시작 어드레스(RESET)는 처음 위치인 0h 입니다.
DIO32 디바이스는 개발자가 프로그램 코드 작성시 함수를 중첩하여 4레벨까지 호출할 수 있습니다.
그림 1.1: 프로그램 메모리 맵과 스텍(STACK)
|
PC<15:0>
|
|
|
|
|
|
|
|
|
내장 스텍 1
|
|
|
내장 스텍 2
|
|
|
내장 스텍 3
|
|
|
내장 스텍 4
|
|
|
내장 임시변수
|
|
|
내장 임시변수
|
|
|
내장 임시변수
|
|
|
내장 임시변수
|
|
|
|
|
FFFFh
|
|
|
|
|
|
|
|
|
:
|
|
|
:
|
|
|
|
|
|
|
|
|
000h
|
리셋백터
|
|
|
|
|
|
DIO32 디바이스
|
|
테이블 1.2.2: DIO32 디바이스의 변수 파일 맵(RAM)
어드레스
|
이 름
|
비트7
|
비트6
|
비트5
|
비트 4
|
비트 3
|
비트 2
|
비트 1
|
비트 0
|
|
|
20h (32)
|
CntKIN0
|
KOn
|
KHold
|
KSetup(0~3)
|
X
|
X
|
X
|
X
|
|
|
PWM0
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
21h (33)
|
CntKIN1
|
KOn
|
KHold
|
KSetup(0~3)
|
X
|
X
|
X
|
X
|
|
|
PWM1
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
22h (34)
|
CntKIN2
|
KOn
|
KHold
|
KSetup(0~3))
|
X
|
X
|
X
|
X
|
|
|
PWM2
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
23h (35)
|
CntKIN3
|
KOn
|
KHold
|
KSetup(0~3)
|
X
|
X
|
X
|
X
|
|
|
PWM3
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
24h (36)
|
CntKIN4
|
KOn
|
KHold
|
KSetup(0~3)
|
X
|
X
|
X
|
X
|
|
|
PWM4
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
25h (37)
|
CntKIN5
|
KOn
|
KHold
|
KSetup(0~3)
|
X
|
X
|
X
|
X
|
|
|
PWM5
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
26h (38)
|
CntKIN6
|
KOn
|
KHold
|
KSetup(0~3)
|
X
|
X
|
X
|
X
|
|
|
PWM6
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
27h (39)
|
PWM7
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
28h (40)
|
CntKIN8
|
KOn
|
KHold
|
KSetup(0~3)
|
X
|
X
|
X
|
X
|
|
|
ComTX
|
TxDone
|
TxStart
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
29h (41)
|
CntKIN9
|
KOn
|
KHold
|
KSetup(0~3)
|
X
|
X
|
X
|
X
|
|
|
CntTone
|
X
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
2Ah (42)
|
CntKIN10
|
KOn
|
KHold
|
KSetup(0~3)
|
X
|
X
|
X
|
X
|
|
|
PWM10
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
2Bh (43)
|
CntKIN11
|
KOn
|
KHold
|
KSetup(0~3)
|
X
|
X
|
X
|
X
|
|
|
PWM11
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
2Ch (44)
|
IR
|
IrDone
|
IrStart
|
X
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
|
PWM12
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
2Dh (45)
|
CntKIN13
|
KOn
|
KHold
|
KSetup(0~3)
|
X
|
X
|
X
|
X
|
|
|
PWM13
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
2Eh (46)
|
ComRX
|
RxDone
|
RxStart
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
|
PWM14
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
2Fh (47)
|
PWM15
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
30h (48)
|
0 RxD
|
D7
|
D6
|
D5
|
Cnt0
|
D3
|
D2
|
D1
|
D0
|
|
31h (49)
|
1 RxD
|
D7
|
D6
|
D5
|
Cnt1
|
D3
|
D2
|
D1
|
D0
|
|
32h (50)
|
2 RxD
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
33h (51)
|
3 RxD
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
34h (52)
|
4 RxD
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
35h (53)
|
5 RxD
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
36h (54)
|
6 RxD
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
37h (55)
|
7 RxD
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
38h (56)
|
IrData0
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
39h (57)
|
IrData1
|
D15
|
D14
|
D13
|
D12
|
D11
|
D10
|
D9
|
D8
|
|
3Ah (58)
|
IrData2
|
D23
|
D22
|
D21
|
D20
|
D19
|
D18
|
D17
|
D16
|
|
3Bh (59)
|
IrData3
|
D31
|
D30
|
D29
|
D28
|
D27
|
D26
|
D25
|
D24
|
|
3Ch (60)
|
Cnt0
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
|
3Dh (61)
|
Cnt1
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
X
|
|
3Eh (62)
|
MotorScaleA
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
3Fh (63)
|
MotorScaleB
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
|
|
|
|
|
|
|
|
|
|
|
|
|