몰디브를 꿈꾸며...
STM32F429I-DISCO + STMCubeIDE + TouchGFX 본문
STM32F429I_DISCO 디스커버리 보드에 STMCubeIDE를 이용해서 GUI를 포팅하는것이 목적이다.
STMCubeIDE는 https://www.st.com/en/development-tools/stm32cubeide.html 에서 다운 받을수 있다.
GUI 플랫폼은 ST사에서 무료로 제공하는 TouchGFX를 이용한다.
https://www.touchgfx.com/ 에서 다운 받을수 있다.
TouchGFX에서는 디스커버리 보드별로 템플릿을 제공한다. 이 템플릿을 이용해서 기본적인 GUI 구성 및 구현이 가능하다. 그러나 인터페이스가 수정되거나 보드 변경을 하려면 STMCubeIDE에서 수정 진행하는것이 필요하므로 STMCubeIDE에서 TouchGFX를 이용해 GUI 변경및 UART등을 추가하기 위해 작업이 필요하다.
우선, STMCubeIDE에서 프로젝트를 생성한다.
32F429 디스커버리 보드를 이용할 예정이므로 타겟을 429 디스커버리 보드를 선택한다.
보드 선택후 Next를 클릭한다.
"Myproject"라는 이름으로 프로젝트를 아래 그림에서 처럼 설정하고 "Finish" 버튼을 클릭한다.
프로젝트가 생성되고 나면 STM32CubeIDE 프로젝트 탐색창에 만든 프로젝트가 표시된다.
이제는 나중에 STM32CubeIDE에서 갖다 쓸 TouchGFX 템플릿을 만들어야 한다. 템플릿 프로젝트명은 그냥 "Template"이라고 명명하도록 한다. TouchGFX Designer를 실행하고 프로젝트를 생성한다.
APPLICATION TEMPLATE을 위 그림처럼 429I 디스커버리 보드로 변경후 프로젝트 생성한다. 프로젝트 생성후 빈 UI가 나타나고 우측 상단에 "Generate Code" 버튼에 파란색 점이 나타난다.
버튼을 클릭해서 코드 생성한다. 우측하단에 로그를 볼수 있는 버튼이 있다.
해당 폴더에 보면 아래와 같이 폴더와 파일들이 생성되어 있다.
이제 템플렛에 있는 파일들을 STM32CubeIDE로 가져와서 합치거나 수정한다.
먼저, "STM32F429I-DISCO.ioc" 복사본을 하나 만들고 파일 이름을 "Myproject.ioc"로 변경한다. STMCubeIDE에서 사용하는 프로젝트 명이다. Myproject.ioc를 편집기로 열어 아래 항목을 수정한다.
파일을 저장후 복사하여 STM32CubeIDE의 Myproject로 복사한다.
CubeIDE에서 코드 생성을 실행한다.
코드 생성을 하고 나면 프로젝트 탐색기에 아래 그림과 같이 TouchGFX 폴더가 생성된다. 여기서 붉은 박스내 화일을 더블 클릭하여 TouchGFX 디자이너를 실행하고 처음 디자이너 실행시에는 빈 ui이었는데 이번에는 시험용 UI를 하나 만들오 "Generate Code"를 실행한다.
이후 TouchGFX 폴더는 아래 그림에서 처럼 여러 폴더가 생성된다.
이제 "Template" 프로젝트 내 필요한 파일들을 STM32CubeIDE 프로젝트 "Myproject" 폴더내 적당한 위치로 복사한다. 동일한 이름을 가진 화일을 찾아 덮어쓰기 하면 된다.
이제 BSP 화일들을 복사하고 경로를 추가해주어야 한다. 아래 그림에 나타나는 "BSP" 폴더를 복사하여 STM32CubeIDE에 붙여 넣기 한다.
이제 프로젝트 속성에서 BSP 폴더 경로를 추가 해주어야 한다.
위와 같이 추가해서 아래 그림에서 처럼 4개의 경로를 추가한다.
여기까지 한후 프로젝트 빌드를 해보자. 오류가 없는것을 확인하자. 오류가 생기면 clean을 한번 실행후 빌드해보자
이제 보드에 펌웨어를 올려야 하는데 디버깅 모드 들어가서 매번 run 버튼 누르고 stop으로 빠져 나오는것이 번거로우므로 라이팅후 빠져 나오는 디버깅을 하나 만들자.
이 버튼을 누른후 디버깅을 한번 실행하자. 디버깅 종료후 아래 그림 순서대로 해서 라이팅후 바로 run할수 있게 만들자
붉은 박스 안의 버튼을 눌러 설정을 복사한다. 새로운 설정 이름은 RUN을 덧붙인다.
네모박스안의 체크를 없애주자. 스크롤을 내려서 Run Commands 박스 안에 아래 처럼 처리하고 Debug 버튼을 누르면 라이팅후 바로 run한다.
[참고 사이트]
www.youtube.com/watch?v=o42r4xXOnbo
www.youtube.com/watch?v=12KXreXaLp0
neocode.jp/2020/04/28/runtouchgfxwithstm32cubeide/ 일어로 된 사이트이나 번역해서 돌려 보면 이해할 수 있다.
https://support.touchgfx.com/docs/introduction/welcome/ TouchGFX에 대한 설명이나 간단한 튜토리얼 등에 대해 다루어 있어 한번 읽어 보면 유익하다.
'STM32F' 카테고리의 다른 글
stm32cubeide 작업창 구성이 이상해졌을때 복구 (0) | 2023.01.31 |
---|---|
STM32 부트로더 (2) | 2018.10.04 |