[STM32 참고] uVision 프로젝트를 Eclipse에서 편집
uVision 프로젝트를 Eclipse에서 편집하려면
uVision은 STM32Cube가 생성하는 코드를 이용하기 때문에, 인클루드 패스의 설정이나 심볼 정의를 실시하고 있다. 그 설정을 Eclipse의 CDT 프로젝트에 반영하면 코드 해석을 사용할 수 있게 된다. 설정을 어떻게 해야 할지는, 아래와 같이 uVision의 프로젝트 설정을 열어 확인할 수 있다.
[C/C++] 탭의 빨간색 프레임 부분에는 포함 경로와 정의해야 할 기호가 쓰여 있습니다.
빨간색 프레임 부분을 텍스트 편집기 등으로 열면 다음과 같습니다. 인클루드 패스가 10(상대 4, 절대 6)으로, 심볼 정의가 2개인 것을 알 수 있다. 이것을 Eclipse CDT 프로젝트에 반영한다.
옵션 발췌--c99 --gnu -c --cpu Cortex-M0 -g -O0 --apcs=interwork --split_sections
[1]コード生成したファイルのインクルードパス
-I./RTE/CMSIS
-I./RTE/Device/STM32F042F6Px
-I./RTE/Device/STM32F042F6Px/STCubeGenerated/Inc
-I./RTE/_Target_1
[2]KeilPackに含まれるヘッダのインクルードパス
-I<KeilPackインストール場所>/ARM/CMSIS/5.5.1/CMSIS/Core/Include
-I<KeilPackインストール場所>/ARM/CMSIS/5.5.1/CMSIS/Driver/Include
-I<KeilPackインストール場所>/ARM/CMSIS/5.5.1/CMSIS/RTOS2/Include
-I<KeilPackインストール場所>/ARM/CMSIS/5.5.1/CMSIS/RTOS2/RTX/Include
-I<KeilPackインストール場所>/Keil/STM32F0xx_DFP/2.0.0/Drivers/CMSIS/Device/ST/STM32F0xx/Include
-I<KeilPackインストール場所>/Keil/STM32F0xx_DFP/2.0.0/Drivers/STM32F0xx_HAL_Driver/Inc
[3]シンボル定義
-D__UVISION_VERSION="527" -D_RTE_ -DSTM32F042x6
-o .\Objects\*.o --omf_browse .\Objects\*.crf --depend .\Objects\*.d```
Eclipse CDT 설정 만들기
상기의 값을 그대로 설정해도 좋지만, 좀 더 편리한 방법이 있다. Eclipse에서는 각종 설정에 환경 변수를 사용할 수 있게 되어 있다. 또한 설정을 저장할 수 있습니다. 이것들을 조합해, 환경 변수를 사용해 범용화한 설정을 보존해 두면, 프로젝트나 개발 환경에서 바뀌는 부분을 환경 변수로 주는 것만으로 끝나게 되므로, 설정의 수고를 생략할 수 있다.
설정 파일을 만들려면 먼저 다음과 같이 CDT 프로젝트에 대해 uVision 설정에 해당하는 포함 경로 기호 정의를 수행합니다. 여기서는 KEIL_PACK
와 STM32_MCU
라는 변수를 사용합니다.
그리고, 설정 화면 하에 있는 [Export Settings...]로부터, 인클루드 패스와 심볼 정의를 XML 파일에 출력한다. XML 파일은 이하와 같은 기술에 있다. 새로운 프로젝트를 만들고 싶다면 이 설정 파일을 유용하면 된다.
settings.xml<?xml version="1.0" encoding="UTF-8"?>
<cdtprojectproperties>
<section name="org.eclipse.cdt.internal.ui.wizards.settingswizards.IncludePaths">
<language name="C Source File">
<includepath>RTE/CMSIS</includepath>
<includepath>RTE/_Target_1</includepath>
<includepath>${KEIL_PACK}/ARM/CMSIS/5.5.1/CMSIS/Core/Include</includepath>
<includepath>${KEIL_PACK}/ARM/CMSIS/5.5.1/CMSIS/Driver/Include</includepath>
<includepath>${KEIL_PACK}/ARM/CMSIS/5.5.1/CMSIS/RTOS2/Include</includepath>
<includepath>${KEIL_PACK}/ARM/CMSIS/5.5.1/CMSIS/RTOS2/RTX/Include</includepath>
<includepath>${KEIL_PACK}/Keil/STM32F0xx_DFP/2.0.0/Drivers/CMSIS/Device/ST/STM32F0xx/Include</includepath>
<includepath>${KEIL_PACK}/Keil/STM32F0xx_DFP/2.0.0/Drivers/STM32F0xx_HAL_Driver/Inc</includepath>
<includepath>RTE/Device/${STM32_MCU}</includepath>
<includepath>RTE/Device/${STM32_MCU}/STCubeGenerated/Inc</includepath>
</language>
<language name="C++ Source File">
</language>
<language name="Object File">
</language>
<language name="Assembly Source File">
</language>
</section>
<section name="org.eclipse.cdt.internal.ui.wizards.settingswizards.Macros">
<language name="C Source File">
<macro>
<name>__UVISION_VERSION</name><value>527</value>
</macro>
<macro>
<name>_RTE_</name><value/>
</macro>
<macro>
<name>${STM32_MCU}</name><value/>
</macro>
</language>
<language name="C++ Source File">
</language>
<language name="Object File">
</language>
<language name="Assembly Source File">
</language>
</section>
</cdtprojectproperties>
Eclipse CDT 설정 사용
작성한 설정 파일을 프로젝트로 임포트하고, 2개의 환경 변수에 구체적인 값을 설정하면, 필요한 인클루드 패스와 심볼 정의가 유효하게 된다. KEIL_PACK
에 Keil MDK 패키지를 설치한 경로와 STM32_MCU
에 마이크로 컴퓨터를 식별하기 위한 심볼을 설정한다. 이렇게하려면 CDT 프로젝트의 속성에서 C/C++ Build > Environment
에서 환경 변수를 추가해야합니다.
만약 Eclipse 전체에서 값을 설정하고 싶다면 Window > Preferences > C/C++ Build > Environment
에서 설정하면 된다.
요약
uVision 프로젝트를 만들고 Eclipse로 코딩하려면 uVision 프로젝트와 마찬가지로 include path 설정과 심볼 정의를 할 필요가 있다. Eclipse에서 환경 변수를 사용하여 범용화된 설정 파일을 만들고, 프로젝트별로 읽어들여, 환경 변수의 값을 설정하는 것으로, 적은 수고로 필요한 인클루드 패스의 설정과 심볼의 정의를 실시할 수 있어, 쾌적하게 코딩할 수 있게 된다.
덧붙여 Keil MDK의 디버거는 GDB와는 다른 것 같기 때문에, 현재의 Ver5에서는 Eclipse CDT상에서는 움직일 수 없는 모양.
Reference
이 문제에 관하여([STM32 참고] uVision 프로젝트를 Eclipse에서 편집), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/stm32p103/items/68c3413822a70dc61aa2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
--c99 --gnu -c --cpu Cortex-M0 -g -O0 --apcs=interwork --split_sections
[1]コード生成したファイルのインクルードパス
-I./RTE/CMSIS
-I./RTE/Device/STM32F042F6Px
-I./RTE/Device/STM32F042F6Px/STCubeGenerated/Inc
-I./RTE/_Target_1
[2]KeilPackに含まれるヘッダのインクルードパス
-I<KeilPackインストール場所>/ARM/CMSIS/5.5.1/CMSIS/Core/Include
-I<KeilPackインストール場所>/ARM/CMSIS/5.5.1/CMSIS/Driver/Include
-I<KeilPackインストール場所>/ARM/CMSIS/5.5.1/CMSIS/RTOS2/Include
-I<KeilPackインストール場所>/ARM/CMSIS/5.5.1/CMSIS/RTOS2/RTX/Include
-I<KeilPackインストール場所>/Keil/STM32F0xx_DFP/2.0.0/Drivers/CMSIS/Device/ST/STM32F0xx/Include
-I<KeilPackインストール場所>/Keil/STM32F0xx_DFP/2.0.0/Drivers/STM32F0xx_HAL_Driver/Inc
[3]シンボル定義
-D__UVISION_VERSION="527" -D_RTE_ -DSTM32F042x6
-o .\Objects\*.o --omf_browse .\Objects\*.crf --depend .\Objects\*.d```
상기의 값을 그대로 설정해도 좋지만, 좀 더 편리한 방법이 있다. Eclipse에서는 각종 설정에 환경 변수를 사용할 수 있게 되어 있다. 또한 설정을 저장할 수 있습니다. 이것들을 조합해, 환경 변수를 사용해 범용화한 설정을 보존해 두면, 프로젝트나 개발 환경에서 바뀌는 부분을 환경 변수로 주는 것만으로 끝나게 되므로, 설정의 수고를 생략할 수 있다.
설정 파일을 만들려면 먼저 다음과 같이 CDT 프로젝트에 대해 uVision 설정에 해당하는 포함 경로 기호 정의를 수행합니다. 여기서는
KEIL_PACK
와 STM32_MCU
라는 변수를 사용합니다.그리고, 설정 화면 하에 있는 [Export Settings...]로부터, 인클루드 패스와 심볼 정의를 XML 파일에 출력한다. XML 파일은 이하와 같은 기술에 있다. 새로운 프로젝트를 만들고 싶다면 이 설정 파일을 유용하면 된다.
settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<cdtprojectproperties>
<section name="org.eclipse.cdt.internal.ui.wizards.settingswizards.IncludePaths">
<language name="C Source File">
<includepath>RTE/CMSIS</includepath>
<includepath>RTE/_Target_1</includepath>
<includepath>${KEIL_PACK}/ARM/CMSIS/5.5.1/CMSIS/Core/Include</includepath>
<includepath>${KEIL_PACK}/ARM/CMSIS/5.5.1/CMSIS/Driver/Include</includepath>
<includepath>${KEIL_PACK}/ARM/CMSIS/5.5.1/CMSIS/RTOS2/Include</includepath>
<includepath>${KEIL_PACK}/ARM/CMSIS/5.5.1/CMSIS/RTOS2/RTX/Include</includepath>
<includepath>${KEIL_PACK}/Keil/STM32F0xx_DFP/2.0.0/Drivers/CMSIS/Device/ST/STM32F0xx/Include</includepath>
<includepath>${KEIL_PACK}/Keil/STM32F0xx_DFP/2.0.0/Drivers/STM32F0xx_HAL_Driver/Inc</includepath>
<includepath>RTE/Device/${STM32_MCU}</includepath>
<includepath>RTE/Device/${STM32_MCU}/STCubeGenerated/Inc</includepath>
</language>
<language name="C++ Source File">
</language>
<language name="Object File">
</language>
<language name="Assembly Source File">
</language>
</section>
<section name="org.eclipse.cdt.internal.ui.wizards.settingswizards.Macros">
<language name="C Source File">
<macro>
<name>__UVISION_VERSION</name><value>527</value>
</macro>
<macro>
<name>_RTE_</name><value/>
</macro>
<macro>
<name>${STM32_MCU}</name><value/>
</macro>
</language>
<language name="C++ Source File">
</language>
<language name="Object File">
</language>
<language name="Assembly Source File">
</language>
</section>
</cdtprojectproperties>
Eclipse CDT 설정 사용
작성한 설정 파일을 프로젝트로 임포트하고, 2개의 환경 변수에 구체적인 값을 설정하면, 필요한 인클루드 패스와 심볼 정의가 유효하게 된다. KEIL_PACK
에 Keil MDK 패키지를 설치한 경로와 STM32_MCU
에 마이크로 컴퓨터를 식별하기 위한 심볼을 설정한다. 이렇게하려면 CDT 프로젝트의 속성에서 C/C++ Build > Environment
에서 환경 변수를 추가해야합니다.
만약 Eclipse 전체에서 값을 설정하고 싶다면 Window > Preferences > C/C++ Build > Environment
에서 설정하면 된다.
요약
uVision 프로젝트를 만들고 Eclipse로 코딩하려면 uVision 프로젝트와 마찬가지로 include path 설정과 심볼 정의를 할 필요가 있다. Eclipse에서 환경 변수를 사용하여 범용화된 설정 파일을 만들고, 프로젝트별로 읽어들여, 환경 변수의 값을 설정하는 것으로, 적은 수고로 필요한 인클루드 패스의 설정과 심볼의 정의를 실시할 수 있어, 쾌적하게 코딩할 수 있게 된다.
덧붙여 Keil MDK의 디버거는 GDB와는 다른 것 같기 때문에, 현재의 Ver5에서는 Eclipse CDT상에서는 움직일 수 없는 모양.
Reference
이 문제에 관하여([STM32 참고] uVision 프로젝트를 Eclipse에서 편집), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/stm32p103/items/68c3413822a70dc61aa2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
uVision 프로젝트를 만들고 Eclipse로 코딩하려면 uVision 프로젝트와 마찬가지로 include path 설정과 심볼 정의를 할 필요가 있다. Eclipse에서 환경 변수를 사용하여 범용화된 설정 파일을 만들고, 프로젝트별로 읽어들여, 환경 변수의 값을 설정하는 것으로, 적은 수고로 필요한 인클루드 패스의 설정과 심볼의 정의를 실시할 수 있어, 쾌적하게 코딩할 수 있게 된다.
덧붙여 Keil MDK의 디버거는 GDB와는 다른 것 같기 때문에, 현재의 Ver5에서는 Eclipse CDT상에서는 움직일 수 없는 모양.
Reference
이 문제에 관하여([STM32 참고] uVision 프로젝트를 Eclipse에서 편집), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/stm32p103/items/68c3413822a70dc61aa2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)