소형소자 C 컴파일러
1. 개요
소형소자 C 컴파일러(SDCC)는 다양한 마이크로프로세서를 지원하는 C 컴파일러이다. 인텔 8051, PIC16, Z80을 비롯하여, 바이너리 호환 파생 제품들을 지원하며, 68HC08, S08, STM8, 6502 등 다양한 프로세서 계열을 지원한다. 현재 PIC16 및 PIC18, Padauk PDK13의 지원을 개발 중에 있으며, 과거에는 AVR 마이크로컨트롤러를 지원했으나 구식이 되었다. SDCC는 리눅스, macOS, 윈도우 운영체제에서 사용할 수 있다.
| 이름 | 소형 장치 C 컴파일러 |
|---|---|
| 개발자 | Sandeep Dutta 및 기타 |
| 최신 버전 | 4.4.0 |
| 최신 버전 출시일 | 2024년 1월 29일 |
| 운영체제 | 마이크로소프트 윈도우 macOS GNU/리눅스 |
| 종류 | C 컴파일러 |
| 라이선스 | GPL |
| 웹사이트 | sdcc.sourceforge.net |
-
크로스 컴파일러 -
MinGW
MinGW는 윈도우에서 GNU 툴체인을 사용할 수 있게 해주는 프로젝트이며, MSYS를 통해 유닉스 셸 환경을 제공하고, C, C++, Objective-C 등 다양한 언어를 지원하며 윈도우 API를 직접 호출하여 호환성 계층 DLL을 요구하지 않는다. -
C 컴파일러 -
GNU 컴파일러 모음
GNU 컴파일러 모음(GCC)은 리처드 스톨먼이 1987년 처음 출시한 자유 소프트웨어 컴파일러 시스템으로, C, C++, Fortran, Ada, Go 등 다양한 프로그래밍 언어를 지원하며 여러 명령어 집합 아키텍처와 플랫폼에서 널리 사용된다. -
C 컴파일러 -
MinGW
MinGW는 윈도우에서 GNU 툴체인을 사용할 수 있게 해주는 프로젝트이며, MSYS를 통해 유닉스 셸 환경을 제공하고, C, C++, Objective-C 등 다양한 언어를 지원하며 윈도우 API를 직접 호출하여 호환성 계층 DLL을 요구하지 않는다. -
자유 컴파일러와 인터프리터 -
Tcl
Tcl은 존 오스터하우트가 개발한 명령어 기반의 프로그래밍 언어로, Tk 툴킷과 결합하여 GUI 스크립팅 환경으로 발전했으며, 다양한 운영체제에서 사용 가능하고 C, C++, Java 등 다른 언어와의 인터페이스를 지원한다. -
자유 컴파일러와 인터프리터 -
PHP
PHP는 라스무스 러도프가 개발한 범용 스크립팅 언어로, 웹 개발에 널리 사용되며 LAMP 아키텍처의 핵심 요소이다.
2. 지원 대상
SDCC가 지원하는 주요 프로세서는 다음과 같다.
* 인텔 8051
* PIC16
* Z80
다음은 바이너리 호환 파생 제품을 포함한다.
* 인텔 8031, 8032, 8051, 8052; 맥심/댈러스 DS80C390; C8051
* 모토로라/프리스케일/NXP 68HC08 및 S08
* Padauk PDK14 및 PDK15
* 샤프 SM83, 닌텐도 게임보이 LR35902 SoC에서 발견되는 CPU
* ST마이크로일렉트로닉스 STM8
* 자일로그 Z80, Z180, eZ80(Z80 모드); 래빗 반도체 2000, 2000A, 3000, 3000A, 4000; 도시바 TLCS-90; Z80N (ZX 스펙트럼 넥스트 프로세서), R800.
* MOS Technology 6502, WDC 65C02.
개발 중:
* 마이크로칩 PIC16 및 PIC18.
* Padauk PDK13.
구식:
* AVR 마이크로컨트롤러는 한때 지원 대상이었지만 2010년 avr-gcc(SDCC 3.0.0)에 의해 구식이 되었다.
2.1. 프로세서
SDCC가 지원하는 주요 프로세서는 다음과 같다.
* 인텔 8051
* PIC16
* Z80
다음은 바이너리 호환 파생 제품을 포함한다.
* 인텔 8031, 8032, 8051, 8052; 맥심/댈러스 DS80C390; C8051
* 모토로라/프리스케일/NXP 68HC08 및 S08
* Padauk PDK14 및 PDK15
* 샤프 SM83, 닌텐도 게임보이 LR35902 SoC에서 발견되는 CPU
* ST마이크로일렉트로닉스 STM8
* 자일로그 Z80, Z180, eZ80(Z80 모드); 래빗 반도체 2000, 2000A, 3000, 3000A, 4000; 도시바 TLCS-90; Z80N (ZX 스펙트럼 넥스트 프로세서), R800.
* MOS Technology 6502, WDC 65C02.
2.1.1. 인텔 계열
인텔 8051 및 그 파생 제품 ( 맥심/댈러스 DS80C390, C8051 등)을 지원한다.
2.1.4. ST마이크로일렉트로닉스 계열
ST마이크로일렉트로닉스 STM8
2.1.5. 자일로그 계열
자일로그 Z80, Z180, eZ80(Z80 모드); 래빗 반도체 2000, 2000A, 3000, 3000A, 4000; 도시바 TLCS-90; Z80N (ZX 스펙트럼 넥스트 프로세서), R800.
2.1.6. MOS/WDC 계열
MOS Technology 6502, WDC 65C02
2.1.7. 기타
인텔 8031, 8032, 8051, 8052; 맥심(Maxim)/댈러스 DS80C390; C8051
모토로라/프리스케일/NXP 68HC08 및 S08
Padauk PDK14 및 PDK15
샤프(Sharp) SM83, 닌텐도 게임보이 LR35902 SoC에서 발견되는 CPU
ST마이크로일렉트로닉스 STM8
자일로그 Z80, Z180, eZ80(Z80 모드); 래빗 반도체(Rabbit Semiconductor) 2000, 2000A, 3000, 3000A, 4000; 도시바 TLCS-90; Z80N (ZX 스펙트럼 넥스트 프로세서), R800.
MOS Technology 6502, WDC 65C02.
2.2. 개발 중
2.2.1. 마이크로칩 계열
마이크로칩의 PIC16 및 PIC18을 지원하기 위해 개발 중이다. Padauk PDK13도 지원한다.
2.3. 구식
3. 지원 환경
SDCC 소스 코드, 문서 및 바이너리는 리눅스(32비트 및 64비트), macOS(PPC 및 64비트), 윈도우(32비트 및 64비트)에서 사용할 수 있다.