본문 바로가기

STM32

STM32H7 듀얼 코어 시작하기: 펌웨어 플래싱 방법

반응형

이 가이드는 듀얼 코어 STM32H747 MCU 시작을 위한 간결한 소개를 제공하며, 프로젝트 생성, 코어별 GPIO 구성 및 펌웨어 플래싱에 중점을 둡니다. 각 코어에 리소스를 올바르게 할당하고 두 코어를 안정적으로 프로그래밍하는 데 필요한 기본 단계를 설명합니다.

 

이 가이드에서는 다음 내용을 다룹니다.

 

  • STM32CubeMX 프로젝트 생성.
  • STM32CubeIDE 프로젝트를 STM32CubeIDE로 가져오는 중입니다.
  • 펌웨어 개발.
  • 프로젝트 구성.
  • 결과.

 

1. STM32CubeMX 프로젝트 생성:

STM32CubeMX를 열고 다음과 같이 새 프로젝트를 시작하세요.

 

 

 

사용하려는 STM32 MCU를 검색하고 선택한 다음 다음과 같이 "새 프로젝트 시작"을 클릭하십시오.

 

 

 

MPU 설정을 요청하는 메시지가 나타나면 다음과 같이 '예'를 클릭하십시오.

 

 

 

이 가이드에서는 Arduino Giga R1 WiFi의 STM32H747XI를 사용하므로, 각 코어가 내장된 LED를 제어하도록 하겠습니다.

 

회로도에서 다음과 같은 사실을 알 수 있습니다.

 

 

 

LED 색상  핀

빨간색       PI12

파란색       PE3

녹색           PJ13

 

이 가이드에서는 빨간색과 파란색 LED를 사용하겠습니다.

 

PE3를 출력으로 설정하고 Cortex M7용으로 구성될 LEDM7이라는 이름을 지정합니다.

 

PI12를 출력으로 설정하고 Cortex M4용으로 구성될 LEDM4라는 이름을 지정합니다.

 

다음으로 시스템 코어에서 GPIO를 선택하고 PI12(파란색 LED)를 다음과 같이 Cortex M4에 할당합니다.

 

 

 

이와 유사하게 PE3를 다음과 같이 Cortex M7에 할당합니다.

 

 

 

다음으로, 프로젝트 관리자에서 프로젝트 이름을 지정하고 툴체인/IDE를 STM32CubeIDE로 설정한 다음 다음과 같이 생성을 클릭합니다.

 

 

 

2. STM32CubeIDE로 프로젝트 가져오기:

STM32CubeIDE를 열고 작업 공간을 선택한 다음 실행을 클릭하십시오.

 

IDE에서 [파일]을 클릭하고 다음과 같이 [STM32 프로젝트 생성/가져오기]를 선택합니다.

 

 

 

다음으로, "STM32 프로젝트 가져오기"에서 "STM32CubeMX/STM32CubeIDE 프로젝트"를 선택하고 다음과 같이 "다음"을 클릭합니다.

 

 

 

다음으로, .ioc 파일이 포함된 폴더를 선택하고 다음과 같이 마침을 클릭합니다.

 

 

 

3. 펌웨어 개발:

프로젝트 가져오기가 완료되면 다음과 같이 CM4용 프로젝트와 CM7용 프로젝트, 이렇게 두 개의 프로젝트가 있는 것을 확인할 수 있습니다.

 

 

 

각 프로젝트가 분리되어 있으므로 디버거를 구성하여 CM4부터 CM7까지 플래싱할 수 있습니다.

 

프로젝트의 CM4 부분에 해당하는 main.c 파일을 열고, while 루프의 사용자 코드 시작 부분(begin 3)에서 다음과 같이 LED를 토글하세요.

 

HAL_GPIO_TogglePin ( LEDM4_GPIO_Port , LEDM4_Pin );

HAL_Delay ( 500 );

 

다음으로, CM7 부분의 main.c 파일을 열고, 사용자 코드 시작 부분 3에서 다음과 같이 토글하세요.

 

HAL_GPIO_TogglePin ( LEDM7_GPIO_Port , LEDM7_Pin );

HAL_Delay ( 200 );

 

이제 빌드 버튼을 클릭하여 프로젝트를 빌드하세요. CM4와 CM7은 별개의 프로젝트이므로 두 프로젝트 모두 빌드해야 합니다.

 

4. 프로젝트 구성:

컴파일 후 CM7을 마우스 오른쪽 버튼으로 클릭하고 디버그 모드를 선택한 다음 다음과 같이 디버그 구성을 선택합니다.

 

 

 

STM32 C/C++ 애플리케이션을 두 번 클릭하여 새 구성을 생성하고 다음과 같이 구성하십시오.

 

디버거에서:

 

  • 나중에 필요하니 포트 번호를 메모해 두세요.
  • 모든 코어의 작동 중지 여부를 확인하십시오.

 

 

 

참고: 같은 창 하단에서 공유 ST-Link가 활성화되어 있는지 확인하십시오(기본적으로 활성화되어 있음).

 

다음으로, 시작 탭에서 새 로드 이미지 및 기호를 추가합니다.

 

  • 프로젝트: CM 버전.
  • 빌드 구성: 디버그.
  • 확인을 클릭하세요

 

 

 

마지막으로 '적용'을 클릭한 다음 닫으세요.

 

다음으로 프로젝트의 CM4 부분을 구성하겠습니다.

 

프로젝트의 CM4 버전을 마우스 오른쪽 버튼으로 클릭하고, 디버그 방식을 선택한 다음, 디버그 구성을 선택하십시오.

 

 

 

디버거를 선택하여 새 디버그 구성을 생성하고 다음과 같이 구성하십시오.

 

  • 포트 번호는 CM7(이 경우 61238)에 사용된 번호보다 최소 3자리 이상 높게 설정하십시오.
  • CM7 코어에 의해 이미 중단되었으므로 동작을 '없음'으로 재설정합니다.

 

 

 

다음으로, 시작 시 현재 구성을 편집하고 다음과 같이 다운로드를 비활성화하십시오.

 

 

 

마지막으로 적용을 클릭한 다음 닫기를 클릭하세요.

 

이제 다음과 같이 실행을 클릭할 수 있습니다.

 

 

 

5. 결과:

 

보시는 바와 같이 두 LED가 모두 깜빡이는 것은 두 코어를 동시에 성공적으로 플래싱했다는 의미입니다.

 

2부에서는 디버깅을 시작하는 방법을 살펴보겠습니다.

 

계속 지켜봐 주세요.

 

튜토리얼의 출처는 이곳을 참고했습니다.

 

 

 

 

 

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩