STM32F746G-DISCO 개발환경 구축

메인 개발도구는 윈도우, 맥, 리눅스 등을 지원하고 있지만, TouchGFX 관련한 툴은 아직까진 윈도우만 지원합니다. 그래서 어쩔수 없이 윈도우에서 개발을 진행해야 할 듯 합니다. (윈도우 싫어요~~)

ST에선 자사의 다양한 MCU 및 보드들의 개발을 위해 통합 개발 도구를 지원하고 있습니다. (꾸준히 업데이트 되고 있는 듯 합니다.) https://www.st.com/en/development-tools/stm32cubeide.html 에 가보시면 받으실 수 있고, 메일을 통한 인증을 하셔야 합니다. 다운로드한 en.st-stm32cubeide_1.3.0_5720_20200220_1053_x86_64.exe.zip 파일을 압축을 해제하고 설치를 진행합니다.

특별한 설정없이 다음, 다음 진행하면서 설치하면 끝납니다.

바탕화면의 아이콘이나 시작메뉴에서 설치한 프로그램을 실행하면 처음엔 프로젝트들이 위치할 곳을 선택하도록 나오는데, 적절한 곳을 입력해주시고요,

시작화면이 짜잔 나타납니다. 이클립스를 기반으로 만들어진 툴인듯한데… 불편하네요..ㅎㅎ

어쨌든 툴의 자동 업데이트도 지원해주고 있습니다.

프로젝트를 하나 만들어보겠습니다.

상단의 메뉴에서 File > New > STM32 Project를 누르시거나 시작화면에서 Start new STM32 Project를 누르셔서 프로젝트를 만들어봅니다.

그러면 요렇게 창이 하나 뜹니다. 저는 STM32F746G-DISCO 보드를 사용할 예정이므로, 상단의 탭에서 Board Selector를 선택하고 STM32F746G-DISCO 보드를 찾아 클릭하고 다음으로 진행.

프로젝트의 이름을 입력하고, 개발언어는 C++로 선택합니다. 이렇게 만들어진 프로젝트는 처음 실행시 설정하였던 workspace 디렉토리 아래에 추가됩니다.

모든 주변기기들의 설정을 기본모드로 할것인지를 물어보는데, 당연히 Yes.

현재 개발툴 (이클립스)의 뷰를 STM32CubeMx 모드로 보여줄건지를 물어봅니다. 요것도 당연히 Yes.

이것저것 준비를 하면서 프로젝트 생성 중.

이렇게 짠 하고 나타납니다. 개발자들은 이렇게 기본 밥상이 차려진 상태에서 필요한 부분만 추가하여 빌드하고 이를 보드에 다운로드해서 사용하면 됩니다. (음.. 일단은 좀 많이 편해진듯…)

보드가 동작되는지 확인용으로… LED를 한번 깜빡여줘보겠습니다…

기본적으론 FREERTOS가 돌아가고 있는 상태이므로 LED 깜빡이용 Task를 하나 생성해줍니다.

프로젝트 파일을 선택하고, Middleware > FREERTOS를 선택합니다. 그런 다음 Task and Queues를 선택하면, 현재는 하나의 Task만 생성되어 실행되고 있습니다. Add 버튼을 누르고, 다음과 같이 입력한 후, 메뉴 > Project > Generate Code (Alt+K)를 실행합니다.

프로젝트의 main.c 파일을 가보면,

StartTaskBlinky 함수가 만들어져 있는데, 이곳에 위와 같이 코드를 입력해줍니다.

  /* USER CODE BEGIN StartTaskBlinky */
  GPIO_InitTypeDef gpioInitStructure;
  gpioInitStructure.Pin = GPIO_PIN_1;
  gpioInitStructure.Mode = GPIO_MODE_OUTPUT_PP;
  gpioInitStructure.Pull = GPIO_PULLUP;
  gpioInitStructure.Speed = GPIO_SPEED_HIGH;
  HAL_GPIO_Init(GPIOI, &gpioInitStructure);

  /* Infinite loop */
  for(;;)
  {
    osDelay(200);
    HAL_GPIO_TogglePin(GPIOI, GPIO_PIN_1);
  }
  /* USER CODE END StartTaskBlinky */

대략, 200ms 마다 GPIOI의 1번 핀을 토글 시켜주라는 건데, 현재 보드에는 그 핀에 LED가 연결되어 있습니다.

이제 프로젝트를 빌드하고… Run > Run를 클릭하면 자동으로 보드에 빌드된 펌웨어를 다운으로 하고 보드를 리셋해줍니다. 보드가 리셋되고, FREERTOS가 가동되는데 살짝의 시간이 지나고나면, 보드 뒷면의 LED가 깜빡임을 볼 수 있습니다.

Device name : STM32F74x/STM32F75x
Flash size  : 1 MBytes
Device type : MCU
Device CPU  : Cortex-M7



Memory Programming ...
Opening and parsing file: ST-LINK_GDB_server_a10660.srec
  File          : ST-LINK_GDB_server_a10660.srec
  Size          : 76388 Bytes
  Address       : 0x08000000 


Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 2]
Download in Progress:


File download complete
Time elapsed during download operation: 00:00:01.944



Verifying ...




Download verified successfully 


Debugger connection lost.
Shutting down...

끝! 잘되네요..^^