아래의 사이트를 보면 STM32_USB-FS-Device_Lib_V4.0.0 library를 활용한 STM32F10x Eval 보드와 와 STM32F303-Eval 보드 예제를 STM32F3- discovery 보드에 맞게 USB composite를 변경하는 방법이 설명되어 있다.
실제 STM32F3- discovery 보드는 Flash memory나 SD 카드가 없지만, USB Mass Storage Device(MSD)와 HID를 동시에 이용하는 USB Composite를 테스트할 수 있도록 하는 것이 예제에 나온다.
STM32F3xx는 fsmc를 지원하지 않기 때문에 Composite 예제에서 fsmc관련 파일은 제거를 하고 수행해야된다.
또한 USE_STM32F3_DISCOVERY 와 USE_STM32F3_DISCOVERY는 define에 반드시 포함 시켜야 된다.
웹사이트에 나온 방법 중 mass_mal.c는 여러개의 함수 중 하나의 예만 나와 있으므로 모든 함수를 다 바꾸어야 한다.
#ifndef USE_STM32F3_DISCOVERY
#else return MAL_OK; #endif //#ifndef USE_STM32F3_DISCOVERY
와 같이 해 줘서 모두 return MAL_OK; 가 리턴 되도록 한다.
실행이 잘 되면 USB Composite MSC + HID 가 인식이 되어 PC에 드라이버가 설치된다. 설치되는 도중에는 PC에 '이동식 디스크'가 잡힌다. 하지만 드라이버 설치가 완료되면 연결된 Flash 메모리 등이 없기 때문에, PC에서 연결되었던 '이동식 디스크'는 사라지게 된다.
위의 예제는 STM32F3- discovery 보드에서 USB Composite를 잡는 것을 테스트하는 예제로 실제로는 연결된 Flash 메모리 혹은 SD card가 있어야 되며, usb_des.c/h 등도 수정해 주어야 한다.
한참동안 고민했었는데, 링크된 Website의 설명되로 하니까, PC에서 인식되는 것은 실제 STM32F3- discovery 보드에서 확인했다.
'프로그래밍 > 임베디드' 카테고리의 다른 글
Cortex-M4에 관해서 설명해 놓은 자료 (0) | 2014.05.03 |
---|---|
STM32F3xx 에서 SPI 이용하기 (0) | 2013.11.09 |
STM32 DFU를 활용한 다운로드 (0) | 2013.11.08 |
gcc optimazation option (STM32F3, STM32F4) (0) | 2013.03.12 |
ARM Cortex-M의 효과적인 코딩 방법 소개 (0) | 2013.02.03 |