본문 바로가기

Cortex-M/EFM32

[EFM32G EVM] 프로그램 다운로드 - 부트모드에서 UART로 다운로드하기

[EFM32G EVM] 프로그램 다운로드 - 부트모드에서 UART로 다운로드하기

 

 

 EFM32는 출하시에 UART를 통해 펌웨어를 업데이트 할수 있는 부터로더가 Wirte 되있어 특별한 장비 없이 UART를 이용하여 프로그램을 다운로드 할수 있다.

 

주의사항으로 부트로더는 0번지에 저장되어 있으므로 JTAG를 이용하여 0번지에 다운로드 했다면 부트로더가 지워진다. 그리고  X-Modem을 사용하지 않으면 부트로더가 지워질 수 있다.

지워지면 컴파일된 부트로더를 0번지에 다시 다운로드 할 수 있다.

 

bootloader-gecko.bin

 

아쉬운점이 있다면 ST사처럼 다운로드 전용 프로그램이 있으면 좋을것 같다는 생각이 든다.

 


 

기본적으로 USER 모드로 부팅되고 PF0핀이 Low 상태에서 reset 하면 부트모드로 진입한다.

[EFM32G EVM] 보드에서는 SW10을 누르상태에서 리셋하면 된다.

 

 

부트모드 진입여부를 확인하려면 UART를 연결하고 하이퍼 터미널에서 'U'를 입력하면 Chip ID를 출력해 주는것을 확인할 수 있다.

 

 

사용자 프로그램은 0x800 번지에서 시작된다. 컴파일 할 때 0x800번지에 생성되도록 icf파일을 수정해 주어야 한다.

 

EFM32G280F128_BOOT.icf

define symbol __ICFEDIT_intvec_start__ = 0x00000800;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__   = 0x00000800;
define symbol __ICFEDIT_region_ROM_end__     = (0x00000800+0x00020000-1);
define symbol __ICFEDIT_region_RAM_start__   = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__     = (0x20000000+0x00004000-1);

 

 

 

프로그램 다운로드

'u' 를 입력하면 프로그램을 X-Modem 프로토콜으로 다운로드 할수 있다.

 

 

 

 

 

프로그램 다운로드 후 reset 스위치를 누르면 실행되는것을 확인할 수 있다.

 

 

 

 

 

반응형