초보의 아웅다웅 설계하기/NXP(FREESCALE)

NXP社의 MK22FXXX(합병 전 FREESCALE社 MCU) 시리즈의 IAR에서 Read/Write Protection 방법

로망와니 2019. 9. 8. 22:11

NXP社의 MK22FXXX 시리즈의 IAR에서 Read/Write Protection 방법

 

/* startup_MKxxxxxx.s 에서 Protection 과 관련된 설정 변경 필요부분 */

__FlashConfig
       DCD 0xFFFFFFFF
       DCD 0xFFFFFFFF
       DCD 0xFFFFFFFF
       DCD 0xFFFFFFFE <= FSEC의 설정이 필요합니다.(올려 놓은 부분은 기본 설정 부분)
__FlashConfig_End

 

 

 

 

MK22F 시리즈에서 Read/Write Protection 값은 0x400 ~ 0x40f까지의 설정에 의해서 결정되게 되는데

Backdoor Key(0x400 ~ 0x407)와 FSEC(0x40C), FOPT(0x40D), FEPROT(0x40E), FDPROT(0x40F), FPROT0-3(0x408 ~ 0x40B) 키 값을 가르키고 실제 가장 중요한 설정인 FSEC은 0x40C의 값에 의해서 결정되게 됩니다.

 

FSEC(하단 PDF URL 참조)

7, 6 => KEYEN 

5, 4 => MEEN

3, 2 => FSLACC

1, 0 => SEC(10을 제외한 모든 설정이 SECURE 설정)

 

--enable_config_wirte 하는 이유는 유저가 실수로 0x400 ~ 0x40f까지 실수로 설정한 후 라이팅하여 더이상 사용하지 못하는 경우를 없애기 위해 만들어 놓은 듯 싶습니다.(하단 URL 참조)

 

icf 파일에서 Flash Config 관련 부분

 

define symbol FlashConfig_start__      = 0x00000400;
define symbol FlashConfig_end__        = 0x0000040f;

 

define region FlashConfig_region = mem:[from FlashConfig_start__ to FlashConfig_end__];

 

place in FlashConfig_region                 { section FlashConfig };

 

 

https://community.nxp.com/thread/311660

 

Using IAR EWARM to program flash configuration ... | NXP Community

There are non-volatile registers in the Kinetis family flash that store the default protection and security settings of the MCU.  These include the registers FSEC, FOPT, FEPROT, and FDPROT at addresses 0x40C - 0x40F.  IAR, like many toolchains, has added p

community.nxp.com

 

https://www.nxp.com/docs/en/application-note/AN4507.pdf

불러오는 중입니다...