inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

s302_비교와 분기 명령어

libs.s 실행 관련 문의

495

김지훈

작성한 질문수 2

1

안녕하세요~

main.c의 max함수를 실행하면

별다른 include 선언 없이

어떻게 libs.s에 있는 max로직을 타는지 알 수 있을까요?

임베디드 arm-architecture cortex

답변 1

0

홍영기

안녕하세요. 김지훈님!

(1)전처리 > (2)컴파일 > (3)링크 와 같은 컴파일 단계에서의 마지막 단계인 링크(link) 과정에서 각 오브젝트 파일내의 심볼들이 교차 결합(cross reference) 되면서 함수나 변수들이 서로 인식됩니다.

어셈블리 언어로 작성된 소스코드도 일반적인 C 함수가 결합되는 과정과 별반 다를 것이 없습니다.

main.c 에서 libs.s 파일내의 함수(max)을 호출할 때 묵시적(implicitly)인 호출이 되지 않게 하기 위해선 아래 그림과 같이 함수 원형을 포함시켜주는 것이 좋습니다.

▼그림. max() 함수의 원형

image

함수 원형(function prototype)을 포함시키지 않아도 컴파일하고 실행하는 것은 문제가 없지만, 컴파일시 경고 메시지가 나올 수 있습니다.

stm32cubeide 관련 문의

0

46

2

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

0

95

1

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

1

100

2

no-stlink

1

80

2

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

1

100

2

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

1

95

2

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

0

159

2

push pop 질문

1

190

2

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

0

242

1

CORTEX_02_ASSEMBLY 빌드시 에러

1

270

1

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

0

339

1

파이프라인과 명령어

1

327

1

명령어 fetch

0

238

1

lr 레지스터 LSB 값

1

258

1

Disassembly 창 문제

0

349

1

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

1

325

1

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

1

271

1

s202 LED 점등 예제 실행시 에러

2

351

1

STM32F429I-DISC 보드의 펌웨어

2

394

1

제공되지 않은 강의교재

0

319

1

s524 테일체이닝 강의 질문

0

234

1

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

1

1525

1

메모리 맵 질문

0

280

1

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

1

862

2