inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

s334_LDR, STR 명령어

.libs_sector 에 대해서

240

규철

작성한 질문수 16

1

s334 강의에서 .libs_sector 가 링커스크립트에서 .data 섹션에 위치할 수 있도록 설정해 주어서 ram 영역에 존재한다고 말씀하셨는데, 그럼 링커스크립트에서 따로 설정해 주지 않는다면 libs_sector 레이블 부분은 flash메모리인 .text 섹션이나 .rodata 섹션에 존재한다고 이해하는 것이 맞나요?? 제 생각이 맞다면 정확히 어느 섹션에 위치하는지 알려주시면 감사하겠습니다!

arm-architecture cortex 임베디드

답변 1

1

홍영기

안녕하세요, 규철님!

libs.s 파일내 선언되어 있는 'libs_sector'는 코드는 아니고 상수 테이블이기 때문에, 링커스크립트 파일내에 특별히 명시되지 않는 경우, 이 영역은 별도의 세그먼트로 만들어집니다.

RAM 영역이 아닌 ROM(FLASH) 영역에 선언되며, 실제 만들어진 리포트파일(map파일)에 따르면 'libs_sector' 세그먼트는 .rodata 세그먼트 직후에 위치하고 있는 것이 확인됩니다.

 

00_CORTEX_02_ASSEMBLY2_f429.map 파일의 내용 일부

. . .

 

 .rodata.__sf_fake_stdout

                0x0000000008003d48       0x20 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.macos64_1.0.0.202111181127/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(lib_a-findfp.o)

                0x0000000008003d48                __sf_fake_stdout

 .rodata._vfprintf_r.str1.1

                0x0000000008003d68       0x11 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.macos64_1.0.0.202111181127/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(lib_a-nano-vfprintf.o)

 .rodata._printf_i.str1.1

                0x0000000008003d79       0x22 /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.macos64_1.0.0.202111181127/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m+fp/hard/libc_nano.a(lib_a-nano-vfprintf_i.o)

                0x0000000008003d9c                . = ALIGN (0x4)

 *fill*         0x0000000008003d9b        0x1 

 

.libs_sector    0x0000000008003d9c       0x2c

 .libs_sector   0x0000000008003d9c       0x2c ./Core/Src/libs.o

 

.ARM.extab      0x0000000008003dc8        0x0

                0x0000000008003dc8                . = ALIGN (0x4)

 *(.ARM.extab* .gnu.linkonce.armextab.*)

                0x0000000008003dc8                . = ALIGN (0x4)

 

. . . 

 

- 끝 -

stm32cubeide 관련 문의

0

86

2

DMA 관련한 강의도 제작해주실 수 있으신가요 ?

0

116

1

그림들도 해석 할 수 있어야 하나요?

1

114

2

no-stlink

1

101

2

4개의 CPU 사이클이 필요한 이유

1

110

2

MAC으로 진행 질문드려요..

1

100

2

학습 진행 시, 사용하는 Board에 대한 문의 드립니다!

0

167

2

push pop 질문

1

209

2

STM32Fx Cortex ARM 프로그래밍 저자:홍봉조, 출판사:지식과 감성

0

250

1

CORTEX_02_ASSEMBLY 빌드시 에러

1

276

1

외부 ST Link 연결 이용한 SWD 방법

0

359

1

파이프라인과 명령어

1

336

1

명령어 fetch

0

242

1

lr 레지스터 LSB 값

1

269

1

Disassembly 창 문제

0

357

1

s702 강좌에서 사용한 technical reference manual 문서

1

337

1

s702에 원자적 Access 를 위한 BSRR 코드작성 부분에 대해서

1

279

1

s202 LED 점등 예제 실행시 에러

2

357

1

STM32F429I-DISC 보드의 펌웨어

2

398

1

제공되지 않은 강의교재

0

319

1

s524 테일체이닝 강의 질문

0

242

1

부트코드와 부트로더의 차이점

1

1537

1

메모리 맵 질문

0

291

1

xPSR 레지스터 플래그 값 및 기타 질문 드립니다.

1

874

2