avr-gcc 위치
아두이노 설치한 위치에서
ARDUINO\arduino-1.8.15\hardware\tools\avr\bin
bin 파일 안에 make 가 없어서 make 넣어주고 makefile 을 실행한다. 폴더에 넣어둔 main.c 가 컴파일 되면서
컴파일 중간단계 파일이 모두 생성된다.
이는 makefile 의 --save-temps 속성을 추가하면 생성해 준다.
간단한 makefile 분석
# Debugging format.
# Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs.
# AVR Studio 4.10 requires dwarf-2.
# AVR [Extended] COFF format requires stabs, plus an avr-objcopy run.
DEBUG = dwarf-2
디버깅 포멧을 알려주는 옵션 , bin ,hex elf 처럼 여러가지 파일 포멧이 존재 하는데 그중에서 dwarf 형태의 포멧을 디폴트 값으로 하고 있다.
#---------------- Library Options ----------------
# Minimalistic printf version
PRINTF_LIB_MIN = -Wl,-u,vfprintf -lprintf_min
# Floating point printf version (requires MATH_LIB = -lm below)
# atmega의 경우 실수를 처리하는 전용회로가 없어서 전용 라이브러리를 추가해서 실수를 처리한다.
PRINTF_LIB_FLOAT = -Wl,-u,vfprintf -lprintf_flt
# If this is left blank, then it will use the Standard printf version.
PRINTF_LIB =
#PRINTF_LIB = $(PRINTF_LIB_MIN)
#PRINTF_LIB = $(PRINTF_LIB_FLOAT)
# Minimalistic scanf version
SCANF_LIB_MIN = -Wl,-u,vfscanf -lscanf_min
# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
SCANF_LIB_FLOAT = -Wl,-u,vfscanf -lscanf_flt
# If this is left blank, then it will use the Standard scanf version.
SCANF_LIB =
#SCANF_LIB = $(SCANF_LIB_MIN)
#SCANF_LIB = $(SCANF_LIB_FLOAT)
MATH_LIB = -lm #수학 라이브러리
링킹 단계에서 사용될 각종 라이브러리를 추가해주고 있다. 링커 실행 파일 이름은 ld 이다.
F_CPU = 16000000
# Place -D or -U options here
CDEFS = -DF_CPU=$(F_CPU)UL
-D 옵션은 c 코드에 #define 을 추가해준다. 위의 코드는 #define F_CPU = 16000000UL 전처리문을 추가해주는 부분이다. 이렇게 해주면 atmega c 언어 코딩할때 .h 파일안이나 코드 안에 define 하지 않더라도 make 할때 자동으로 추가 해줄 수 있다.
https://blog.zakkemble.net/avr-gcc-builds/
AVR-GCC 11.1.0 for Windows 32 and 64 bit – Zak's Electronics Blog ~*
AVR-GCC 11.1.0 for Windows 32 and 64 bit This is where I’ll be uploading builds of AVR-GCC for Windows 32 and 64 bit, which will also include Binutils, AVR-LibC, AVRDUDE, Make and GDB. I’ll be trying to keep the builds up to date with the latest tool r
blog.zakkemble.net
'공부,일 > atmega328P' 카테고리의 다른 글
timer1 , 1초 깜빡이 코드 (0) | 2021.10.05 |
---|---|
캐릭터 LCD 프로그래밍 (0) | 2021.09.22 |
my 초음파 센서 만들기 (0) | 2021.09.15 |
atmel studio 에서 printf, scanf 사용 (0) | 2021.08.11 |
atmega328P TWI(I2C) 통신 (3) 실습 (0) | 2021.08.07 |
댓글