작성한 프로그램 코드와 변수는 메모리상에 배치되지만, 그 특성 별로 배치되는 영역이 조금씩 달라진다. 그래서 특성에 따라 코드나 변수를 모아놓은 영역을 섹션이라고 부른다. 어플리케이션이나 웹쪽 개발자들에겐 더욱 생소한 단어일 수 있다. 왜냐하면, 내장제어 분야와는 다르게 OS가 알아서 해주기 때문에 개발자가 일일이 신경 안써도 된다. 하지만 내장제어 분야는 하나부터 열까지 지가 알아서 배치 해야 된다. 특히 특수한 목적에 따라서 배치를 바꿔야 할 경우엔 지맘대로 섹션을 만들어서 배치해 주어도 된다.
그럼 일반적으로 쓰이는 섹션에 어떤 것들이 있는지 살펴보자.
섹션의 종류
P : 프로그램 섹션
C : 정수 데이터 섹션(const로 설정된 변수)
D : 초기화된 데이터 섹션
B : 초기화 되지 않은 데이터 섹션
W : 스위치문을 위한 분기 테이블 섹션
L : 문자열 리터럴(string literal : 소스코드상이 직접 작성한 문자열 데이터) 섹션
SU : User Stack 섹션
SI : Interrupt Stack 섹션
R : ROM에서 RAM으로 카피하기 위한 섹션(D=R등)
섹션명은 컴파일러나 개발 환경에 따라서 달라질 수 있으나 위에 언급한 섹션명은 대부분의 개발환경에서 공통으로 사용되고 있다.
다음은 일본의 Renesas 가 개발한 e2studio계열에서 자주 쓰이는 섹션명이다.
FIXEDVECT : 예외처리 섹션
PResetPRG : 리셋직후 최초로 실행되는 프로그램 섹션
PIntPRG : 인터럽터함수 섹션
C$INIT : 글로벌 클래스 오브젝트에 대해서 호출되는 컨스트럭트및 디스트럭트의 어드레스를 보관하는 섹션
C$VTBL : 가변벡터 테이블 섹션
'C > 개발환경' 카테고리의 다른 글
Code::Blocks 인스톨 하기 (0) | 2024.08.12 |
---|---|
연산자 (0) | 2024.07.09 |
ASCII 코드 (0) | 2024.07.02 |
통합 개발 환경(IDE) (0) | 2024.06.17 |
포인터란? (1) | 2024.05.22 |