임베디드 시스템-도구 및 주변 장치
컴파일러 및 어셈블러
컴파일러
컴파일러는 프로그래밍 언어 (소스 언어)로 작성된 소스 코드를 다른 컴퓨터 언어 (일반적으로 이진 형식)로 변환하는 컴퓨터 프로그램 (또는 프로그램 집합)입니다. 변환의 가장 일반적인 이유는 실행 가능한 프로그램을 만드는 것입니다. "컴파일러"라는 이름은 주로 소스 코드를 고수준 프로그래밍 언어에서 저수준 언어 (예 : 어셈블리 언어 또는 기계 코드)로 변환하는 프로그램에 사용됩니다.
크로스 컴파일러
컴파일 된 프로그램이 컴파일러가 프로그램을 컴파일 한 컴퓨터와 다른 CPU 또는 운영 체제를 가진 컴퓨터에서 실행될 수있는 경우 해당 컴파일러를 크로스 컴파일러라고합니다.
디 컴파일러
프로그램을 저수준 언어에서 고수준 언어로 번역 할 수있는 프로그램을 디 컴파일러라고합니다.
언어 변환기
다른 고급 언어로 작성된 프로그램을 번역하는 프로그램을 일반적으로 언어 번역기, 소스 대 소스 번역기 또는 언어 변환기라고합니다.
컴파일러는 다음 작업을 수행 할 가능성이 있습니다.
- Preprocessing
- Parsing
- 의미 분석 (구문 지시 번역)
- 코드 생성
- 코드 최적화
어셈블러
어셈블러는 기본 컴퓨터 명령어 (어셈블리 언어라고 함)를 컴퓨터의 프로세서가 기본 작업을 수행하는 데 사용할 수있는 비트 패턴으로 변환하는 프로그램입니다. 어셈블러는 어셈블리 명령어 니모닉을 opcode로 변환하고 기호 이름을 메모리 위치로 확인하여 객체 코드를 생성합니다. 어셈블리 언어는 니모닉을 사용하여 각 하위 수준 기계 작업 (opcode)을 나타냅니다.
임베디드 시스템의 디버깅 도구
디버깅은 컴퓨터 프로그램이나 전자 하드웨어에서 버그 수를 찾아서 줄여서 예상대로 작동하도록하는 체계적인 프로세스입니다. 한 하위 시스템의 작은 변경으로 다른 하위 시스템에 버그가 발생할 수 있기 때문에 하위 시스템이 밀접하게 결합되어 있으면 디버깅이 어렵습니다. 임베디드 시스템에서 사용되는 디버깅 도구는 개발 시간과 디버깅 기능이 크게 다릅니다. 여기서는 다음 디버깅 도구에 대해 설명합니다.
- Simulators
- 마이크로 컨트롤러 스타터 키트
- Emulator
시뮬레이터
코드 개발에 사용되는 호스트 컴퓨터에서 코드를 시뮬레이션하여 MCU / 시스템에 대해 코드를 테스트합니다. 시뮬레이터는 소프트웨어에서 전체 마이크로 컨트롤러의 동작을 모델링하려고합니다.
시뮬레이터의 기능
시뮬레이터는 다음 기능을 수행합니다.
대상 시스템에 대한 다양한 버전뿐만 아니라 프로세서 또는 처리 장치 제품군을 정의합니다.
각 단일 단계에 대해 실행이 진행됨에 따라 레이블 및 기호 인수를 사용하여 소스 코드 부분의 세부 정보를 모니터링합니다.
각 단일 단계 실행에 대해 RAM 상태 및 대상 시스템의 시뮬레이션 된 포트를 제공합니다.
시스템 응답을 모니터링하고 처리량을 결정합니다.
프로그램 카운터의 내용과 프로세서 레지스터의 출력 추적을 제공합니다.
현재 명령의 자세한 의미를 제공합니다.
키보드에서 입력하거나 메뉴에서 선택하면 시뮬레이터 명령에 대한 자세한 정보를 모니터링합니다.
조건 (최대 8 개 또는 16 개 또는 32 개 조건) 및 무조건 중단 점을 지원합니다.
중요한 테스트 및 디버깅 도구 인 중단 점과 추적을 제공합니다.
내부 주변 장치 및 지연 동기화를 용이하게합니다.
마이크로 컨트롤러 스타터 키트
마이크로 컨트롤러 스타터 키트는 다음으로 구성됩니다.
- 하드웨어 보드 (평가 보드)
- 시스템 내 프로그래머
- 컴파일러, 어셈블러, 링커 등과 같은 일부 소프트웨어 도구
- 때로는 IDE 및 코드 크기가 컴파일러의 평가 버전을 제한합니다.
시뮬레이터에 비해 이러한 키트의 큰 장점은 실시간으로 작동하므로 입력 / 출력 기능을 쉽게 확인할 수 있다는 것입니다. 그러나 시작 키트만으로도 충분하며 간단한 마이크로 컨트롤러 프로젝트를 개발하는 데 가장 저렴한 옵션입니다.
에뮬레이터
에뮬레이터는 하드웨어 키트 또는 소프트웨어 프로그램이거나 첫 번째 시스템과 다른 다른 컴퓨터 시스템 (호스트)에서 한 컴퓨터 시스템 (게스트)의 기능을 에뮬레이트하여 에뮬레이트 된 동작이 동작과 매우 유사하도록 둘 다일 수 있습니다. 실제 시스템 (게스트)의.
에뮬레이션은 전자 장치의 컴퓨터 프로그램이 다른 프로그램이나 장치를 에뮬레이션 (모방)하는 기능을 나타냅니다. 에뮬레이션은 원래 컴퓨터 환경을 재현하는 데 중점을 둡니다. 에뮬레이터는 디지털 개체의 진위성에 더 가깝게 연결을 유지할 수 있습니다. 에뮬레이터는 사용자가 소프트웨어가 원래 환경에서 실행되는 것과 유사한 방식으로 플랫폼에서 모든 종류의 애플리케이션 또는 운영 체제에서 작업 할 수 있도록 도와줍니다.
임베디드 시스템의 주변 장치
임베디드 시스템은 다음과 같은 주변 장치를 통해 외부 세계와 통신합니다.
- RS-232, RS-422, RS-485 등과 같은 SCI (직렬 통신 인터페이스)
- I2C, SPI, SSC 및 ESSI와 같은 동기 직렬 통신 인터페이스
- 범용 직렬 버스 (USB)
- 멀티 미디어 카드 (SD 카드, 컴팩트 플래시 등)
- 이더넷, LonWorks 등과 같은 네트워크
- CAN-Bus, LIN-Bus, PROFIBUS 등과 같은 필드 버스
- PLL (s), 캡처 / 비교 및 시간 처리 장치와 같은 imers.
- 개별 IO, 즉 GPIO (범용 입력 / 출력)
- 아날로그-디지털 / 디지털-아날로그 (ADC / DAC)
- JTAG, ISP, ICSP, BDM 포트, BITP 및 DP9 포트와 같은 디버깅
마이크로 컨트롤러 선택 기준
마이크로 컨트롤러를 선택할 때 당면한 작업을 충족하고 비용 효율적인지 확인하십시오. 8 비트, 16 비트 또는 32 비트 마이크로 컨트롤러가 작업의 컴퓨팅 요구를 가장 잘 처리 할 수 있는지 확인해야합니다. 또한 마이크로 컨트롤러를 선택할 때 다음 사항을 염두에 두어야합니다.
Speed − 마이크로 컨트롤러가 지원할 수있는 최고 속도는 얼마입니까?
Packaging− 40 핀 DIP (듀얼 인라인 패키지) 또는 QFP (쿼드 플랫 패키지)입니까? 이는 최종 제품의 공간, 조립 및 프로토 타이핑 측면에서 중요합니다.
Power Consumption − 이것은 배터리 구동 제품에 대한 중요한 기준입니다.
Amount of RAM and ROM 칩에.
Count of I/O pins and Timers 칩에.
Cost per Unit − 이는 마이크로 컨트롤러를 사용할 제품의 최종 비용 측면에서 중요합니다.
또한 마이크로 컨트롤러와 함께 사용할 수있는 컴파일러, 디버거 및 어셈블러와 같은 도구가 있는지 확인하십시오. 가장 중요한 것은 신뢰할 수있는 소스에서 마이크로 컨트롤러를 구입해야한다는 것입니다.