본문 바로가기
프로그래밍/임베디드

STM32 DFU를 활용한 다운로드

by choies1 2013. 11. 8.

ST 마이크로 사의 Cortex-M3, Cortex-M4 기반의 칩들에서 USB로 DFU를 이용하여 바이너리 코드를 다운로드 하는 방법을 설명한다.

1. DFU 모드 진입 방법

아래 Table 2.를 보면 BOOT1, BOOT0 핀을 이용하여 Boot mode로 진입하게 된다. STM32F3xx의 경우는 BOOT0 핀만 존재한다. BOOT1은 ST의 전용 다운로드 프로그램의 Option byte를 이용하여 설정하게 된다. Default 값은 0이므로, STM32F3xx의 경우는 BOOT0 핀만 5V (High)에 연결한 상태에서 USB로 전원을 넣으면 System memory로 잡히면서 DFU가 가능한 USB 장치로 인식된다.

(STM32F3xx의 경우는 DFU F/W가 내장되어 출시된다. 따라서 별도의 DFU 프로그램을 만들어서 디버거를 이용해서 Download할 필요가 없어서 정말로 편리하다.)


2. DFU 파일 생성하기 및 download 프로그램

아래 참조: 

http://blog.naver.com/westdoor0526?Redirect=Log&logNo=30038984678

http://i12b.egloos.com/1142753

http://poohyhoh.blogspot.kr/2010/08/arm-cortex-m3-stm32-um0412-dfuse-usb-fw_9118.html


단, DFU File Manager로 DFU 파일 생성 시 STM32F3xx의 경우는 내장 메모리 이용 시 Address를 0x08000000 로 설정하면 된다.

STM32F1xx와 처럼 DFU 코드가 메모리에 내장되어 출시되지 않는 경우는 (DFU 코드는 0x0800000에 넣어야 됨),  DFU File Manager로 DFU 파일 생성 시 Address를 0x080003000 로 설정한다.

참고로 DFU File Manager에서 Target에 default로 (ST...)로 되어 있는 것을 적당히 바꾼 후에  (ex. STM32F303), Multi Bin 버튼을 눌러서 파일을 선택하면 나중에 Download 프로그램의 'Target in' 에서 STM32F303로 표시된다.