Latest Post
(ARM,Cortex-M3, STM32F207) Mango-M32F2, Project 구성 및 빌드 (최종) 및 소스

이제 링크에러를 해결합니다.




uart 관련한 소스 파일을 포함하고 빌드합니다.



Warning[Pe223]: function "assert_param" declared implicitly D:\Wk.Src\Mango-M32F2\Libraries\STM32F2xx_StdPeriph_Driver\src\stm32f2xx_usart.c 181


이것은 물론 에러는 아니지만 포함은 시키는 것이 맞을 것입니다.

stm32f2xx_conf.h (src)

/* Uncomment the line below to expanse the "assert_param" macro in the
  Standard Peripheral Library drivers code */
#define USE_FULL_ASSERT    1


USE_FULL_ASSERT 정의되도록 변경합니다.
하지만 이를 변경하고 후에도 여전히 warning 사라지지 않습니다.

stm32f2xx.h (Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx)

#ifdef USE_STDPERIPH_DRIVER
 #include "stm32f2xx_conf.h "
#endif /* USE_STDPERIPH_DRIVER */


위와 같이 정의가 되어 있습니다.
결국 USE_STDPERIPH_DRIVER 정의되어야만 stm32f2xx_conf.h 포함하게 됩니다.




USE_STDPERIPH_DRIVER 그림처럼 포함시키고
또한 stm32f2xx_conf.h 존재하는 폴더도 함께 포함시킵니다.



Error[Li005]: no definition for "RCC_AHB1PeriphClockCmd" [referenced from D:\Wk.Src\Mango-M32F2\project\EWARM\Debug\Obj\hw_config.o]
Error[Li005]: no definition for "GPIO_PinAFConfig" [referenced from D:\Wk.Src\Mango-M32F2\project\EWARM\Debug\Obj\hw_config.o]



이제 빌드는 완료하였습니다.
하지만 다운로드할 바이너리가 생성되지 않았습니다.




 

위와 같이 설정을 하여야 project.hex 파일이 생성됩니다.



SYSCLK_Frequency = 16000000
HCLK_Frequency = 16000000
PCLK1_Frequency = 16000000
PCLK2_Frequency = 16000000


상태에서 프로그램을 수행시켜 보면 위와 같이 클럭이 16MHz 됩니다.
STM32F207 경우 120MHz까지 수행이 되는데 16MHz 돌고 있는 것은
내부 클럭을 이용해서 수행이 되는 상태라고 있습니다.
이를 120MHz까지 수행되도록 변경할 필요가 있습니다.

그에 앞서서 icf 관련한 부분을 살펴보겠습니다.




 

현재 project\EWARM 폴더에 icf 파일이 3 있습니다.
각각에 대해서는 좀더 분석이 필요하지만
일단은 예전부터 사용하던 stm32f2xx_flash.icf 포함시켜야 하지만
IAR 프로젝트에 디폴트로 들어있는 icf 그대로 이용해도 무방합니다.
디폴트로 들어있는 것과 project\EWARM 폴더의 것이 조금 다르기는 하지만
동작 상에서는 아직까지는 특별히 차이가 나는 것은 없습니다.
만약 디폴트의 것을 바꿀 필요가 있으면 내용을 편집해야 것입니다.



/*!< At this stage the microcontroller clock setting is already configured,
      this is done through SystemInit() function which is called from startup
      file (startup_stm32f2xx.s) before to branch to application main.
      To reconfigure the default setting of SystemInit() function, refer to
      system_stm32f2xx.c file
    */


main.c에서 위의 주석을 발견할 있습니다.
자세히 읽어보면 startup_stm32f2xx.s에서 SystemInit() 호출되고
여기서 모든 클럭 설정이 이루어진다는 것입니다.
이후에 비로소 main 함수에 진입한다는 것입니다.
결국 startup_stm32f2xx.s 포함시켜야 하는 것을 있습니다.

Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx\startup 보면 4가지 종류가 있습니다.
지금 사용하는 툴이 IAR이니 iar 폴더의 것을 사용하면 것입니다.

SystemInit() 함수는 system_stm32f2xx.c 들어 있습니다.
그런데 파일이 src 폴더에 있습니다.
하지만 src system_stm32f2xx.c 파일과
Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F2xx 있는 system_stm32f2xx.c
완전히 동일한 것입니다.
src system_stm32f2xx.c 파일은 삭제합니다.
그리고 라이브러리의 system_stm32f2xx.c 파일을 추가합니다.



SYSCLK_Frequency = 120000000
HCLK_Frequency = 120000000
PCLK1_Frequency = 30000000
PCLK2_Frequency = 60000000


이제 원하는 120 MHz 얻게 되었습니다.
HCLK, PCLK1, PCLK2 그에 따라서 변화된 값을 있습니다.


Comments 0
:    :    :
이름 / 2014-11-20 / ★★★☆☆ [수정 / 삭제]

내용

Recent Comments
keun  |  ★★★★★
Mango-M32F4-R10 회로도+샘플소스 부탁 합니다. 20년 12월 경에 구입 하고 이제 공부 좀 할려고 합니다. kkp1201@naver.com 입니다.
홍길동  |  ★★★★☆
지난주 CR-U2S4 20set 구매한 사람입니다. 아래 문의 드렸듯이 Windows Driver 요청 드립니다. 금년도 500 set 구매 예정에 있습니다. 다만.. Windows Driver 부분이 해결이 되어야 합니다. 확인 부탁드립니다. hanacsb@daum.net 으로 회신 부탁드립니다.
홍길동  |  ★★★★☆
지난주 CR-U2S4 20set 구매한 사람입니다. 아래 문의 드렸듯이 Windows Driver 요청 드립니다. 금년도 500 set 구매 예정에 있습니다. 다만.. Windows Driver 부분이 해결이 되어야 합니다. 확인 부탁드립니다. hanacsb@daum.net 으로 회신 부탁드립니다.
홍길동  |  ★★★★☆
지난주 CR-U2S4 20set 구매한 사람입니다. 아래 문의 드렸듯이 Windows Driver 요청 드립니다. 금년도 500 set 구매 예정에 있습니다. 다만.. Windows Driver 부분이 해결이 되어야 합니다. 확인 부탁드립니다. hanacsb@daum.net 으로 회신 부탁드립니다.
홍길동  |  ★★★★☆
지난주 CR-U2S4 20set 구매한 사람입니다. 아래 문의 드렸듯이 Windows Driver 요청 드립니다. 금년도 500 set 구매 예정에 있습니다. 다만.. Windows Driver 부분이 해결이 되어야 합니다. 확인 부탁드립니다. hanacsb@daum.net 으로 회신 부탁드립니다.
홍길동  |  ★★★★☆
CR-U2S4 v1.2를 최근에 구매했습니다. inux에서는 바로 인식하여 사용하고 있는데 Windows 11 에서는 인식하지 못합니다. Windows 11 용 드라이버 부탁드립니다. hanacsb@daum.net 으로 부탁드립니다. 감사합니다