인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

chltnckd7님의 프로필 이미지
chltnckd7

작성한 질문수

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

s707_링커 스크립트 파일 분석

s707 링커스크립트 질문드립니다.

작성

·

269

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  1. 영상 14분 55 ~ 15분 5초 질문 드립니다. - .c파일이 .o파일로 만들어질때 코드는 텍스트 세그먼트에 만들어 진다고 하셨는데 "코드"의 의미가 이해가 잘 되지 않는데요.

    다른 .data .bss 등 섹션에 만들어지는 것도 코드(변수??)인데, .text파일에 만들어지는 코드는 어떤 종류의 코드인가요? .map파일에 있는 것처럼 main함수나 기타 함수 주소 + 라이브러리 주소를 "코드"라고 설명한 것인가요??

  2. 영상 21분 33초

    • heap과 stack 섹션은 ALIGN(8)정렬 햇는데 이유가 궁금합니다.(다른 영역은 ALIGN(4))

감사합니다~

답변 1

0

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

안녕하세요. chltnckd7 님!

Q1. 영상 14분 55 ~ 15분 5초 질문 드립니다. - .c파일이 .o파일로 만들어질때 코드는 텍스트 세그먼트에 만들어 진다고 하셨는데 "코드"의 의미가 이해가 잘 되지 않는데요.

다른 .data .bss 등 섹션에 만들어지는 것도 코드(변수??)인데, .text파일에 만들어지는 코드는 어떤 종류의 코드인가요? .map파일에 있는 것처럼 main함수나 기타 함수 주소 + 라이브러리 주소를 "코드"라고 설명한 것인가요??

ANS .text 영역은 컴파일 이후 만들어지는 실 코드 블럭(기계어가 위치)을 말합니다.
나머지 섹션(.data / .bss / .heap / .stack) 들은 모두 변수 영역입니다.

Q2. 영상 21분 33초

heap과 stack 섹션은 ALIGN(8)정렬 햇는데 이유가 궁금합니다.(다른 영역은 ALIGN(4))

ANS 이것은 저도 모르는 부분이라서 구글 검색을 해보았습니다. 스택 메모리는 8바이트 정렬을 하는 것이 안전할 것 같네요. 자세한 것은 스택오버플로우 글을 참고하시면 좋겠습니다. 8/16/64 바이트 정렬 그 어떤 것도 무방합니다

chltnckd7님의 프로필 이미지
chltnckd7
질문자

아 그럼 명령어들의 실행순서대로 기계어 형태로 저장되어있다고 봐야하는건가요??

감사합니다.

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

넵, 맞습니다.
.text 공간은 그러한 목적으로 사용됩니다.

chltnckd7님의 프로필 이미지
chltnckd7

작성한 질문수

질문하기