STM32F746_TouchGFX_FreeRTOS_2_Project 생성 및 디버깅

2 분 소요

STM32F746_TouchGFX_FreeRTOS_2_Project 생성 및 디버깅

STM32F746 Discovery Kit의 H/W 분석에 이어

개발 환경(Project 생성 및 디버깅) 구성에 대한 내용을 정리하였습니다.

0. 최종 구성

0.1 Project Diagram

image

  • 일단, 위의 구성으로 진행하되 추가할 내용이 있으면 수정할 예정입니다.

0.2 각종 S/W tool (IDE) 정리

Project를 진행하면서 아래와 같은 S/W Tool을 사용할 예정입니다.

  1. TouchGFX Designer (4.16.1)
    • 구현할 GUI의 디자인 및 각종 동작을 만들고 Generate Code하여 개발을 빠르고 쉽게 해주는 Tool.
    • 실제로 Project 생성도 이 Tool로 수행할 것입니다.
      • 아이러니하게도 Designer Tool로 Project를 생성 후 하는 것이 더 쉽고 빠르게 할 수 있었습니다.
      • 추후 Discovery Kit이 아닌 다른 H/W로 하더라도 Discovery Kit으로 생성한 Project를 modify하는
        방법이 가장 효율적일 것 같습니다.
  2. STM32CubeIDE (1.6.0)
    • IDE(Integrated Development Environment)(통합 개발 환경)란 ?
      • 코딩, 디버그, 컴파일, 배포 등의 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서
        처리하는 환경을 제공하는 소프트웨어.
    • STM32CubeMX + TrueStudio
      • 기본 IDE인 TrueStudio와 Project Generator인 CubeMX를 합쳐서 사용합니다.
      • 기존에는 쓰던 keil을 안쓰는 이유는 TouchGFX Designer로 생성한 Project가 Keil IDE에선
        해줄 것도 많고 괜히 시간만 소비하는거 같아서입니다.
      • 먼저 TrueStudio로 Project 개발이 익숙해지면, 그때 Keil로 짬내서 해볼 생각입니다.
      • TrueStudio는 STM32 전용 IDE로써 Freeware입니다. STM32 Chipset으로 개발한다면, 당연히
        이 IDE로 쓰는게 맞을거 같다는 생각을 하였습니다.

1. STM32F746_TouchGFX_FreeRTOS Project 생성

따로 설치법 세부세팅법 등에 대한 내용은 생략하였습니다.

1.1 TouchGFX Designer를 이용한 Project 생성

  • 먼저 아래와 같이 설정 후 Project를 생성합니다.

image

  • 아래와 같이 한 후 GENERATE CODE를 누릅니다.

image

image
image
image

  • Project 실행은 /STM32CubeIDE/.project 파일을 실행해주면 됩니다.

image

  • 참고로 ‘Build Project’ 후 ‘Run Configurations’에서 아래와 같이 ‘External Loader’를 설정합니다.
    • GUI의 이미지 Data를 Discovery Kit에 있는 Quad SPI Flash memory에 넣기 위함입니다.
    • .ld(linkerScript 파일에 GUI의 이미지 Data Section은 QUADSPI(0x900000000)에 할당되도록 되어있습니다.
    • 그외 설정은 .ioc 설정 내용 참고
  • Run 하면 다운로드가 진행되고 완료 후 LCD창을 확인하면 잘 동작됨을 확인할 수 있습니다.

image

  • TouchGFX와 같은 Grapic Application을 사용하기 위한 low Level H/W 세팅의 자세한 내용은
    .ioc를 통해 확인할 수 있습니다.
    • TouchGFX를 다뤄가면서 추후 정리해야 될거 같습니다.

2. STM32F746_TouchGFX_FreeRTOS Project 디버깅 Setup

전체적인 내용은 전에 포스팅했던 디버깅 Setup 내용과 크게 다를바는 없습니다.

STM32F407_FreeRTOS Project 디버깅 Setup

단, H/W가 다르고 IDE가 Keil에서 TrueStudio로 변경된 점에 따른

새로운 내용은 따로 아래에 정리하였습니다.

2.1 Uart TTL to USB, printf()를 이용한 Log 입출력

  • 실제 보드 연결 사진

image

보드 연결에 대한 내용은 전 포스팅인 H/W 분석 내용을 참고하시면 됩니다.
  • 기존에 printf()를 이용하기 위해 구현했던 fputc()가 아닌
    다른 함수를 구현하였습니다.

image

  • 소스 작성 후, 컴파일 및 보드 다운로드 후 시리얼 터미널 창에서 동작됨을 확인하였습니다.

image

2.2 TrueStudio의 Serial Wire Viewer(Data Tracing) 하는법

  • IDE가 TrueStudio로 변경하였기 때문에 전용 Data Tracing 방법인
    Serial Wire Viewer(SWV)를 사용할 계획입니다.

  • 아래의 STM32CubeIDE User Manual을 참고하여 세팅하였습니다.

stm32cubeide-user-guide-stmicroelectronics.pdf

  • 먼저, 아래와 같이 PB3 pin의 Alternative Function을 ‘SYS_JTDO-SWO’로 바꾼 후,
    ‘Pinout & Configuration’의 ‘System Core’의 ‘SYS’에서 Debug를 ‘Trace Asynchronous Sw’로 설정합니다.

image

  • ‘Alt + k’ 를 눌러 Generate Code를 한 후 빌드, 다운로드합니다.
  • ‘Run’>’Debug Configurations…’ 를 눌러 아래의 내용 대로 세팅합니다.

image

  • F11을 눌러 Debug Mode를 실행합니다.
  • 아래의 사진을 참고하여 보고싶은 SWV trace log들을 선택하여 활성화합니다.

image

  • 활성화된 SWV trace log 창의 우측 상단의 ‘SWV Configure Trace toolbar button’을 클릭합니다.

image

  • 아래의 사진과 같이 세팅후 OK를 눌러 저장합니다.

image

데이터 트레이스 항목에 보고싶은 변수 이름을 넣습니다.    
그 외 항목은 사진과 같이 설정합니다.    
(User Manual을 참고하여 추가해야할 것들은 알아서!)
  • 모든 세팅이 끝났으면 우측 상단의 ‘SWV Start Stop Trace toolbar button’을 클릭합니다.

image

  • F8(Resume)를 눌러 Debug 모드를 시작합니다.

image

변수를 하나만 보고 있지만 최대 4개까지 볼 수 있음.
  • 단순한 Data Tracing외에 CPU 점유율 등의 부가 기능들도 있으니
    필요 시, User Manual을 참고하여 해볼 것.

3. 정리

STM32F746 Discovery Kit의 Project 및 디버깅 환경 구성에 대한 내용을 정리하였습니다.
이젠 본격적으로 TouchGFX의 User Manual을 참고하여 각 각의 기능들에 대해 정리할 예정입니다.

댓글남기기