본문 바로가기
임베디드.일렉트로닉스

STM32CubeIDE . 임베디드 코드에서 C++ 클래스 활용

by i.got.it 2023. 7. 6.

 

 

STM32 펌웨어 C++ 로 개발하기 

 

STM32CubeIDE  에서 프로젝트에 적용할 컴파일러를 C 나 C++ 로 선택 가능하다.

C++ 컴파일러로 선택하면 C++, C 컴파일도 같이 이뤄지는 것이고 C 컴파일러로 선택되어있다면 C++ class 는 인지 하지도 못하는 순수 C 언어 컴파일만 가능하다. 

 

STM32CubeIDE 의 프로젝트에 적용할 C/C++ 컴파일러 선택 방법 

 

 STM32CubeIDE 에서 생성되어있는 프로젝트 마우스 우 클릭 메뉴에서  Convert to C++ (아래 그림 붉은 라인) 이 보이면 현재 프로젝트 C 컴파일러가 선택되어있는 상태고, Convert to C++ 클릭하면 즉시 C++ 컴파일러가 적용된다. 

반대로 현재 프로젝트의 컴파일러가 C++ 이 적용중이면 Convert to C 가 보인다. 

 

 

 소스파일 확장자를 cpp 로 해야 C++ 컴파일러 적용됨 

앞에서 프로젝트에 적용할 컴파일러를 C++ 로 했다고 C++ 컴파일 되지 않으며 소스파일 확장자가 .c  이것은 C 컴파일하며 .cpp 파일은 C++ 컴파일 적용된다. 

 

내 소스코드의 main.c 를 C++ 컴파일 하려면 파일명을 main.cpp 로 수정해야 한다. 

 

main.cpp 에서 C++ class 시험 해봄  

STM32CubeIDE 에서 자동생성된 main.c 파일을 main.cpp 로 수정하고 아래와 같이 C++ 클래스 구문들 작성하고 빌드해본 결과 정상 빌드확인함. 

 

아래 코드 살펴보면 라인 57 에서 클래스 선언했고, 클래스 멤버 함수 void f() 를 라인 64 에서 정의했다. 

main 진입하여 라인 79에서 클래스 인스턴스 동적 생성하고 , 라인 81 에서 멤버 함수 호출하고, 라인 83 에서 동적생성했던 클래스 인스턴스 제거. 

 

빌드 콘솔창보면 오류없이 빌드 성공. 

 

STM32CubeIDE 에서 C++ 클래스

 

 

연관 

 

 

C/C++. C 에서 C++ 함수 호출하기. extern "C" 선언. C++ 에서 C함수 호출.

C 에서 C++ 함수 호출 C와 C++ 이 혼재된 프로젝트에서 C++ 에서 정의된 함수를 C 에서 호출하는 방법. C++ 측에 C에 노출시킬 함수에 extern "C" 선언 추가된것은 C에서 호출가능함. /// C++ mycpp.cpp 측 코드

igotit.tistory.com

 

 

 

STM32CubeIDE.

STM32CubeIDE - 이클립스기반 STM32 C/C++ 개발 플랫폼. STM32 칩 제조사가 직접 관리, 배포 주체. - 무료. features Integration of services from STM32CubeMX: STM32 microcontroller, microprocessor, development platform and example projec

igotit.tistory.com

 

 

상위정리 

 

STM32. nRF52. ESP32. EFM8. EFM32. PSoC 활용 정리.

STM32. nRF52. ESP32. EFM8. EFM32. PSoC 총정리 제조사 칩 주요특징 실리콘랩 8bit MCU EFM8 시리즈 32bit EFM32 시리즈 EFM8 싸다. STM STM32 . 최고 항상 만족. Cypress pSoC pSoC6 은 기대해볼만. NORDIC nRF52 블투 무선솔루

igotit.tistory.com

 


첫 등록 : 2023.07.06

최종 수정 : 

단축 주소 : https://igotit.tistory.com/4683


 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5