인프런 커뮤니티 질문&답변

대곤님의 프로필 이미지
대곤

작성한 질문수

ARM Cortex-M 프로세서 프로그래밍

s102_실습환경구축 STM32CubeIDE 시작하기(교재/실습예제 다운로드)

CORTEX_02_ASSEMBLY 빌드시 에러

작성

·

98

1

CORTEX_02_ASSEMBLY 빌드시 에러가 발생하여

찾아보고 있는데 도무지 모르겠네요...ㅠㅠ

도와주셔요....

 

콘솔 에러 표시

c:\st\stm32cubeide_1.9.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe: ./Core/Src/sysmem.o: in function `_sbrk':

C:/Users/gons/Desktop/CubeIDE_Workspace/00_CORTEX_02_ASSEMBLY_f429/Debug/../Core/Src/sysmem.c:54: multiple definition of `_sbrk'; ./Core/Src/syscalls.o:C:/Users/gons/Desktop/CubeIDE_Workspace/00_CORTEX_02_ASSEMBLY_f429/Debug/../Core/Src/syscalls.c:118: first defined here

c:\st\stm32cubeide_1.9.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe: ./startup/startup_stm32f429xx.o:(.isr_vector+0x0): multiple definition of `g_pfnVectors'; ./Core/Startup/startup_stm32f429zitx.o:(.isr_vector+0x0): first defined here

c:\st\stm32cubeide_1.9.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe: ./startup/startup_stm32f429xx.o: in function `Default_Handler':

C:/Users/gons/Desktop/CubeIDE_Workspace/00_CORTEX_02_ASSEMBLY_f429/Debug/../startup/startup_stm32f429xx.s:114: multiple definition of `Default_Handler'; ./Core/Startup/startup_stm32f429zitx.o:C:/Users/gons/Desktop/CubeIDE_Workspace/00_CORTEX_02_ASSEMBLY_f429/Debug/../Core/Startup/startup_stm32f429zitx.s:114: first defined here

 

K-001.pngK-002.pngK-003.png

 

답변 1

0

홍영기님의 프로필 이미지
홍영기
지식공유자

안녕하세요, 대곤님!

컴파일러 최신판에서 발생하는 호환성 문제로 짐작됩니다. 빠르게 해결되기를 원하신다면, 현재 설치되어 있는 1.9 버젼 컴파일러는 언인스톨하시고 1.2xx 구 버젼의 cubeide 을 설치해서 사용해보세요. 저는 근본적인 해결방법을 찾아보겠습니다. 알려드린 방법으로 해결이 안되거든 다시 글 남겨주세요.

홍영기님의 프로필 이미지
홍영기
지식공유자

지금 사용하고 계신 STM32CUBEIDE 를 최신판으로 제가 착각했네요. v.1.9 버젼은 2021년도 구형 버젼이네요. v1.12.x 버젼이나 혹은 최신 버젼 v1.16.0 을 설치한 후 해보세요.

ps. STM32CUBEIDE v.1.13.0 버젼 이후부터는 컴파일러 사용시 로그인을 해야 사용할 수 있습니다. 참고해주세요

이 문제로 추정됨
https://stackoverflow.com/questions/71409313/stm-cubeide-1-9-0-has-linker-issues

대곤님의 프로필 이미지
대곤
질문자

1.12.x 버전이나 1.16.0 버전을 사용해도 같은 증상입니다..

캡처.PNG캡처1.PNG캡처2.PNG캡처3.PNG캡처4.PNG캡처5.PNG

 

00_CORTEX_02_ASSEMBLY_f429 폴더의

ioc 오픈시 이런 창이 뜨고 안열리는데

이게 원인일까요??..

캡처8.PNG캡처6.PNG

 

00_CORTEX_02_ASSEMBLY_f429폴더 제외하고 나머지는 빌드 잘 됩니다.. ㅜㅜ

홍영기님의 프로필 이미지
홍영기
지식공유자

스크린샷을 보면 디렉토리 구성이 아래 오리지널 프로젝트 구성하고 좀 다른 것 같습니다.

Pasted Graphic.tiff


어쨋든 빌드가 되는 위 소스를 전달해볼게요. 이걸로 한번 해보세요.

압축 푸시고 프로젝트 오픈하시면 됩니다. 그리고, 문제의 프로젝트 파일은 아래 이메일주소로 전달해주시면 확인해보겠습니다. guileschool@gmail.com

대곤님의 프로필 이미지
대곤
질문자

보내주신 파일 빌드시 문제 없네요..

문제의 파일은 메일로 보내드렸어요~~

 

혹시 원인 찾으시면 저도 공유 부탁드려요 ㅠㅠ

 

감사합니다!!

홍영기님의 프로필 이미지
홍영기
지식공유자

두 가지 문제가 발견되었습니다.

아래 사진을 참조하세요.

  1. startupXXXX.s 파일이 중복 사용 되었습니다.

  2. 최종 프로그램 실행 이미지 생성하면서 arm-atollic-eabi-objcopy 가 사용된 것으로 미루어 STM32CubeIDE 의 구형버젼을 사용하셨거나, 과거 atollic 컴파일러를 사용하셨던 것으로 짐작됩니다.

image.pngimage.png

 

수정 후에 프로젝트는 성공적으로 빌드되었습니다. 내려받기

 

대곤님의 프로필 이미지
대곤

작성한 질문수

질문하기