펌웨어 구현 준비물
1. CPU 보드
- 래퍼런스 보드, 평가보드 evaluation board, 개발보드 development board 라고도 부름
- AVR CPU, STK600 -> cpu 성능 평가, 재품 개발 기간 단축
써드 파티 <- 고가 보드를 본따 저가 보드 제조 판매
2. CPU 회로도
- 회로도 : 보드에 장차고딘 IC칩들간 연결을 그려놓은 설계도
- OrCAD나 PADS로 그림..
- CPU 판매사에서 제공. CPU 내부핀과 외부침 연결을 알수잇음
3. 데이터 시트
- IC칩 제조사가 만든 IC칩 사용 설명서
- 방대하고 어려운 문서. but 알아야 할부분은 제한적이므로 다 이해할필요는 없음
- 칩 부품번호, 번호 의미
- 일반적인 사항, 특징, 응용분야
- 온도/전압 범위
- 핀배치
- 전기/시간적 특성
CPU 데이터시트
- CPU 내부 레지스터 구조
- 메모리맵
-> CPU가 외부 디바이스나 내부모듈 제어를위해 필요한 레지스터들의 주소지도
-> 펌웨어 구현에 반드시 필요
4.. 교차 개발 환경
- CPU가 실행할수있는 실행 파일을 만들고 타겟 보드에 다운로드 하기 위한 환경
- 타겟 보드는 성능이 부족해 실행파일 만들기 힘듬
- 호스트 PC에 에서 만듬
- 시리얼 케이블, 이더넷 케이블, USB 케이블 등으로 타겟 보드에 다운로드
터미널 프로그램
- 시리얼 케이블을 통해 타겟 보드와 호스트 PC가 통신하는데 사용
5. 디버거 장비
- 디버깅 및 기타 용도로 사용
- CPU의 내부 레지스터나 메모리값 등 확인 가능
-> 소스 레벨 디버깅이 가능하도록 해줌. 소프트웨어를 멈추고 메모리 값을 확인할수있음
- 플래쉬 메모리에 펌웨어를 넣음
-> 롬라이터 없으 온보드되어있는 플래쉬 메모리에 원하는값 써줌
6. 계측장비
오실로 스코프
- 하드웨어 개발을 위해 필요하며, 개발한 펌웨어가 제대로 동작하는지 확인
- 전기 신호를 시간 변화에 따라 화면에 그래프를 보여주는 장비
-> 입력 신호 시간에 대한 전압 크기, 주기적인 신호 주파수, 성능에 따라 다양하게 측정 가능
* CPU나 메모리 동작상태나 신호 출력상태 확인에 필요
멀티 테스터기
- 개발한 펌웨어가 제대로 동작하는지 확인하는데 사용
- 저항값, 전압레벨, 전류값 등 확인 가능
1) 자료 확보
ATmega128, STM32F103 -> 데이터 시트, 회로도 등 홈페이지에서 다운로드 가능
스냅드래곤 시리즈 -> 일반에 공개하지 않음
2) 펌웨어 개발에 필요한 소프트웨어
1. 교차 개발환경
2. 래퍼런스 펌웨어 소스
개발자들이 자사의 CPU를 올바르게 사용할수있도록 제공
3. 부트로더
다운로더와 장비없이 펌웨어 업데이트가 가능, 실시간 운영체제를 올리는데 사용
4. 실시간 운영체제
네트워크 프로그램 같은 고차원 펌웨어 사용에 필요
5. 디버거 장비용 소프트웨어
1. 교차 개발환경
- Atmel사의 AVR Studio
- Hp InfoTech 사의 CodeVision
- IAR System 사의 IAR Embedded Workbench
2. 래퍼런스 펌웨어 소스
avr soure 검색 -> 재조사나 깃헙 등으로 획득 가능
3. 부트로더
ATmega128(8비트 CPU)
- 운영체제 없이 쓰거나 부트로더없이 운영체제를 올리는 구조
-> 보통 부트로더를 필요로 하지 않음
- 디버거 장비없이 시리얼 만으로 호스트의 펌웨어를 가져와 업데이트 할때 부트로더를 사용할수있음
- 무선통신 : 지그비, RF4CE로 펌웨어 업데이트 가능
- OTAU(Over The Air Upgrade) : OTA 부트로더
4. 실시간 운영체제
- 멀티 태스크 환경을 구현하여 복잡한 프로그래밍을 세분화하여 쉽게구현가능한 환경
- 8비트 MCU에는 거의 사용되지 않았었음
- 8비트 CPU 발전과 복잡한 로직 구현 필요로 많이 채용되고 있음
FreeRTOS
- 무료로 제공
- 핵심 모듈 기본 제공
- 파일시스템이나 TCP/IP 스택은 필요에 따라 추가 가능
5. 디버거 장비용 소프트웨어
ISP 다운로더 장비 : CPU 내부에 접속하여 내부 플래시 메모리, 퓨즈, EEPROM 등을 지우거나 프로그래밍 하는 장비
JTAG 장비 : AVR CPU용 디버거 장비. AVR Dragon, JTAG ICE, JTAGICE mkII 등 다양함
* ISP는 다운로드만, JTAG 은 다운로드와 디버거 지원
'컴퓨터과학 > 임베디드' 카테고리의 다른 글
펌웨어구현 환경구축 4 - 펌웨어 디버깅 도구 이해 (0) | 2020.05.06 |
---|---|
펌웨어구현 환경구축 3 - 하드웨어 장비 (0) | 2020.05.06 |
펌웨어구현 환경구축 1 - 펌웨어란 (0) | 2020.05.06 |
ARM을 활용한 임베디드 시스템 설계 25 - 디바이스 드라이버 제작 (1) | 2020.05.06 |
ARM을 활용한 임베디드 시스템 설계 24 - 모듈 프로그래밍 (0) | 2020.05.05 |