Study/임베디드OS (RTOS) (2) 썸네일형 리스트형 Makefile - multiple definition of 'main' 오류 원인 [임베디드 OS 개발 프로젝트 (이만우)] 책을 따라 어셈블리 코드 -> C 언어 코드 부팅 예제를 따라하고 있었다. 분명 책에 있는 그대로 Makefile 을 작성했다고 하는데 multiple definition of 'main' 이라는 오류가 발생했다. 현재 공부중인 예제는 어셈블리 코드로 작성된 Entry.S 파일에서 BL main 이라는 명령어를 통해 main 함수로 분기를 이동한다. 이 main 파일은 Main.c 파일에 정의되어 있는 함수이고, 기본적으로 c언어에서 정의된 함수 이름은 전역으로 선언되기 때문에 Entry.S 파일에서도 main 함수의 위치가 어디인지 알 수 있다. Makefile에서는 Main.c 파일을 컴파일해서 Main.o 파일을 만들고, Entry.S 파일을 컴파일하여 E.. 어셈블리어 명령어 정리 1. LDR (Load Register): 메모리에서 데이터를 레지스터로 로드하는 명령어입니다. 예를 들어, LDR R0, [R1]은 R1 레지스터에 저장된 주소에서 데이터를 읽어서 R0 레지스터에 저장합니다. 2. B (Branch): 프로그램의 실행 흐름을 변경하는 명령어입니다. 주로 조건부 또는 무조건적인 점프를 수행하기 위해 사용됩니다. 예를 들어, B label은 주어진 레이블 위치로 실행 흐름을 점프시킵니다. >> [ B . ] 명령어는 현재 위치로 실행 흐름을 변경하는 코드로 무한루프를 발생시키고자 할 때 사용한다. 3. MRS (Move Register to System register): 시스템 레지스터(예: CPSR)의 값을 일반 레지스터로 이동시키는 명령어입니다. 이를 통해 프로그램은.. 이전 1 다음