임베디드 시스템: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
편집 요약 없음
→‎운영 체제: 오타정리
53번째 줄:
많은 임베디드 시스템이 수백만 개 규모로 양산되기 때문에, 생산 비용을 줄이는 것이 주요 관심사 중 하나일 수밖에 없다. 몇몇 임베디드 시스템들은 대단한 처리 성능과 자원을 필요로 하지 않기 때문에, 그러한 시스템에는 (상대적으로) 느린 프로세서와 작은 크기의 메모리를 탑재하여 비용을 절감할 수 있다.
 
하드웨어 장치의 [[롬]]이나 [[플래시 메모리]]에 내장하는 [[소프트웨어]]를 일러 [[펌웨어]]라 한다. 임베디드 시스템 상의 프로그램은 대개 제한된 [[하드웨어]] 자원 위에서 [[실시간 컴퓨팅|실시간]](real-time) 제약 조건을 가지고 동작한다. 시스템 상에 디스크 드라이브나 운영 체제, 키보드나 화면이 없는 경우도 많다. 파일 시스템을 가지고 있지 않을 수도 있으며, HGDBHSD플래시플래시 드라이브를 저장 매체로 사용할 수도 있다. 사용자 인터페이스가 있다 하더라도 조그마한 키패드거나 LCD 정도일 수 있다.FDFDHRT
 
임베디드 시스템은 여러 해에 이르는 오랜 기간 동안 오류 없이 안정적으로 돌아가도록 설계된다. 따라서 펌웨어는 개인용 컴퓨터에서 쓰이는 소프트웨어보다 신중한 개발과 테스트 과정을 거친다. 대부분의 임베디드 시스템은 디스크 드라이브나 스위치, 버튼 등 기계적인 동작으로 손상을 입을 수 있는 부품의 사용을 피AFDSEA하고피하고 대신 [[플래시 메모리]] 같은 물리적 손상에서 비교적 자유로운 칩 자재를 사용한다.
 
또한 임베디드 시스템이 적용되는 분야는 석유 시추공, 우주공간 등 인간이 직접 즉각적인 제어를 하기 어려운 장소일 수 있다. 따라서 임베디드 시스템은 최악의 상황에서도 스스로 다시 기동할 수 있어야 한다. 이러한 응급 복구는 소프트웨어가 주기적으로 타이머를 건드리지 않으면 컴퓨터를 초기화시키는 [[왓치독 타이머]]라고 불리는 전자 부품을 통해 이루어진다.
67번째 줄:
 
== 운영 체제 ==
임베디드 시스템은 흔히 [[운영 체제|운영FDGDFGDFGDFDG 체제]]를 사용하지 않FGSDFGSDF는않는 경우도 많으며, 사용한다 하더라도 [[윈도우 CE]]나 [[리눅스]] 등 임베디드에 맞춰진 운영 체제나 [[실시간 운영 체제|RTOS]]:국방/항공용 실시간 운영체제(NEOS)를 사용하여 자신의 새로운 시FSDGDFG스템에시스템에 설정한다. 이는 대DFGDF개의대개의 임베디SDFGDSGG드임베디드 시스템의 경우 CPU나 메DSHGDSSDFGSD모리메모리 자원 등의 구성이 일반 PC 등의 표준적인 플랫폼과는 달리 한계가 있는 시스템으로 일반 개인 컴퓨터용 운영 체GDFSG제를체제를 사용할 수 없기 때문이다.
 
== 개발 도구 및 디버깅 ==
일반적인 컴퓨터 프로그래머가 DFGDFG그렇듯이그렇듯이, 임베디드 시스템 설계자들도 프로그래FDSGFDSGSDGS밍을프로그래밍을 위해 [[컴파일러]], [[어셈블러|어셈블SDFGDSFGDG]]G, [[디버거]]를 사용한다.
 
=== 리눅스 운영 체제 개발환경FSDGDFSGDFGFGDSGSD개발환경 ===
리눅스 커널 기반의 [[운영 체제]]를 사용할 경우, 개발 도구는DGDSFGDFGFDSG도구는 보통 [[GNU]]의 [[gcc]]을 사용한다.
 
gcc는 소스를 웹사이트에서 가져온 뒤, 목GFDSGF적목적 CPU에 맞추어 컴파일하면 gcc 관련 도구를 생성할 수 있다. 목적 CPU을 설정하고 make을 사용하면 해당 CPU의 크로스 컴파일러 gcc 관련 실행 파일을 얻을 수 있다.DSFGDFSGDF
 
gcc를 사용할 때, 프로그램 개발에서 다음 2가지 방식의 개발도구를 사용한다: