출처 : http://blog.daum.net/devil1879/14303557
메모리 락 비트는 메모리 프로그래밍에 관련된 보호기능을 설정하는데 사용된다. 락 비트가 설정되면 설정되는 옵션에 따라서 디바이스 내부에 쓰여진 데이터를 읽어 올 수 없게 하거나 더 이상 프로그램을 할 수 없게 하여 프로그램에 대한 보안을 설정하는 기능을 한다. 표1 처럼 1바이트 중에서 6개의 비트만 사용되고 이 비트들은 모두 디폴트로 1(unprogrammed)로 되어 있으며, 프로그램하면 0(programmed)으로 설정된다. 즉 1로 되어 있으면 락이 설정되지 않는 것이고 0으로 되어 있으면 락이 설정되어 내부 메모리를 읽을 수 없게 된다.
메모리 락 비트는 칩지우기(chip erase)명령을 수행하면 이 비트들은 설정되지 않는 상태인 1로 된다.
비트번호 |
비트명 |
기능 |
디폴트 값 |
7 |
- |
- |
1 |
6 |
- |
- |
1 |
5 |
BLB12 |
Boot lock bit |
1(unprogrammed) |
4 |
BLB11 |
Boot lock bit |
1(unprogrammed) |
3 |
BLB02 |
Boot lock bit |
1(unprogrammed) |
2 |
BLB01 |
Boot lock bit |
1(unprogrammed) |
1 |
LB2 |
Lock bit |
1(unprogrammed) |
0 |
LB1 |
Lock bit |
1(unprogrammed) |
메모리 락 비트 |
메모리 보호 기능 | ||
LB 모드 |
LB2 |
LB1 |
외부에서 메모리에 있는 데이터를 읽어 올 수 없게 하여 프로그램에 대한 보안을 설정하는 기능 |
1 |
1 |
1 |
어떤 메모리도 락 기능이 설정되지 않는다. 메모리에서 쓰여진 데이터를 읽어 올 수 있다. |
2 |
1 |
0 |
플래시나 EEPROM을 병렬모드나 SPI/JTAG 직렬모드로 더 이상 프로그래밍하는 것을 금지시킨다. 퓨즈비트도 역시 프로그래밍하는 것이 금지된다. |
3 |
0 |
0 |
플래시나 EEPROM을 병렬모드나 SPI/JTAG 직렬모드로 더 이상 프로그래밍하거나 Verity 하는것을 금지시킨다. 퓨즈비트도 역시 프로그래밍하는 것이 금지된다. |
BLB0 모드 |
BLB02 |
BLB01 |
실행 프로그램으로 응용 프로그램 섹션을 엑세스하는데 대한 보호 설정 |
1 |
1 |
1 |
LPM/ELPM/SPM 명령을 사용하여 프로그램 메모리의 응용 프로그램 섹션을 액세스하는데 아무 제한이 설정도지 않는다. |
2 |
1 |
0 |
SPM 명령으로 프로그램 메모리의 응용 프로그램 섹션을 라이트하는 것이 금지된다. |
3 |
0 |
0 |
SPM 명령으로 프로그램 메모리의 응용프로그램 섹션을 라이트하는 것이 금지되고, 부트로더 섹션에서 실행되는 LPM/ELPM 명령으로 프로그램 메모리 인터럽트 벡터가 위치한다면 응용 프로그램 섹션이 실행되는 동안에 모든 인터럽트는 금지된다. |
4 |
0 |
1 |
부트로더 섹션에서 실행되는 LPM/ELPM 명령으로 프로그램 메모리의 응용 프로그램 섹션을 리드하는것이 금지된다. 만약 부트로더 섹션에 인터럽트 벡터가 위치한다면 응용 프로그램 섹션이 실행되는 동안에 모든 인터럽트는 금지된다. |
BLB1 모드 |
BLB12 |
BLB11 |
실행되는 프로그램으로 부트로더 섹션을 액세스하는데 대한 보충 설정 |
1 |
1 |
1 |
LPM/ELPM/SPM 명령을 사용하여 프로그램 메모리의 부트로더 섹션을 액세스하는데 아무 제한이 설정되지 않는다. |
2 |
1 |
0 |
SPM 명령으로 프로그램 메모리의 부트로더 섹션을 라이트하는 것이 금지된다. |
3 |
0 |
1 |
SPM 명령으로 프로그램 메모리의 부트로더 섹션을 라이트하는 것이 금지되고, 응용 프로그램 섹션에서 실행되는 LMP/EMPM 명령으로 프로그램 메모리의 부트로더 섹션을 리드하는 것이 금지된다. 만약 응용프로그램 섹션에 인터럽트 벡터가 위치한다면 부트로더 섹션이 실행되는 동안에 모든 인터럽트는 금지된다. |
4 |
0 |
0 |
응용 프로그램 섹션에서 실행되는 LPM/ELPM 명령으로 프로그램 메모리의 부트로더 섹션을 리드하는것이 금지된다. 만약 응용프로그램 섹션에 인터럽트 벡터가 위치한다면 부트로더 섹션이 실행되는 동안에 모든 인터럽트는 금지된다. |
ToastProg2005 프로그램을 이용하여 락 비트 설정 부분을 확인해 보도록 하겠습니다. 그리고
ToastProg2005 프로그램 사용법을 모르시면 ToastProg2005 사용법 게시판을 참고하시기 바랍니다.
아래 그림은 ToastProg2005를 실행시키고 툴바에서 를 클릭하거나 메뉴에서
"Security and ..." 명령을 시킨 그림이다.
그림에서 V 표시로 체크를 하고 Write 버튼을 클릭하면 락이 설정되는 것이다.
V로 체크하면 0이 쓰여지는 것이고 체크되지 않으면 1로 설정된다.
'AVR(AT90CAN128)공부' 카테고리의 다른 글
ATMEGA128 락비트에 대한 설명 (0) | 2010.11.01 |
---|---|
AVR 퓨즈비트 설정에 관한 문서들 (0) | 2010.11.01 |
ATMEGA 퓨즈비트 설정 (0) | 2010.11.01 |
투싼IX 오토미션 기어단수 표시기3 (1) | 2010.10.30 |
AT90CAN128 에 Low CAN 을 사용하기.. (0) | 2010.10.27 |