작성
·
1.1K
2
s319 강의에서 1분쯤에 실습프로그램을 컴파일 할때 오류가 발생했습니다. 어떻게 해결할 수 있을지 알려주세요. 오류 메세지를 봐서는 flash메모리에 문제가 생긴거 같습니다.
00_CORTEX_02_ASSEMBLY2_f429.elf section `.text' will not fit in region `FLASH'
region `FLASH' overflowed by 18808 bytes
콘솔창에 makefile 64줄에 error가 있다고 나와서 사진 첨부합니다.
답변 1
1
안녕하세요. 규철님!
플래시 메모리의 문제는 아니고요, <libs.s> 파일의 라인번호 49의 숫자(2100000)를 작은 값으로 바꾸어 보시기 바랍니다. 해당 숫자가 큰 값일 수록 프로그램의 크기는 커지게 되고, 따라서 그 값이 너무 커지면 플래시 메모리에 프로그램이 저장이 안되기 때문에 나오는 에러 메시지 입니다.
lbl03:
b _exit1
nop
.space 2100000 <------------- 이 값보다 작은 값으로 수정해보세요
코드가 컴파일 된 후 실행파일이 플래쉬메모리의 .text 섹션에 올라가야 되는데 .text 섹션의 다음 섹션을 침범해서 오류가 발생한 것으로 이해하는 것이 맞나요??
ANS) 아마도 'OVERFLOW' 라는 단어 때문에 침범이라고 느끼시는 것 같습니다. 그건 아니고 단순히 프로그램의 크기가 플래시메모리의 크기보다 커져서 들어갈 수 없는 것으로 이해하시면 됩니다:)
또한 이런 섹션들의 메모리 주소 영역은 startup 코드에서 직접 설정하는 것인지 궁금합니다!
ANS) 영상 s707_링커 스크립트 파일 분석(29:07) 편 에서 궁금한 점들이 해결되실 것 같습니다:)
빠른 답변 감사합니다!
코드가 컴파일 된 후 실행파일이 플래쉬메모리의 .text 섹션에 올라가야 되는데 .text 섹션의 다음 섹션을 침범해서 오류가 발생한 것으로 이해하는 것이 맞나요??
또한 이런 섹션들의 메모리 주소 영역은 startup 코드에서 직접 설정하는 것인지 궁금합니다!