규칙으로 배우는 임베디드 시스템 장선웅 pdf 다운로드를 무료로 제공합니다 “이 책을 읽는 가장 좋은 방법은 소설책 읽듯이 반복하여 읽어 기초 이론과 시스템 개발 규칙 간의 연관관계에 대해 이해하는 것입니다.”
관련 교재 pdf 모음
책 소개
CPU(Central Processing Unit)는 목표하는 동작을 수행하기 위해 명령을 읽고 해석하여 처리하는 중앙 처리 장치로 정의된다. 수동 소자, 능동 소자와 반도체 IC. 특히 플립플롭 같은 메모리 소자들을 모두 이용한 회로를 하나의 패키지에 집적하여 만들어진 IC가 CPU이며, 집적회로의 최고봉이라 할 수 있다. CPU의 사용은 하드웨어만으로 설계된 시스템에 비하여 소프트웨어만 변경함으로써 시스템의 구현 및 수정을 쉽게 할 수 있다는 최대의 장점으로 대부분의 전기/전자 시스템에 사용되므로 구조 및 동작에 대해 알아 두어야 한다. 특정 CPU를 지정하여 자세히 알아보는 것도 충분히 의미가 있겠지만, 여기서는 CPU의 일반적인 구성 요소들과 동작에 대해서 살펴봄으로써, 사용하게 될 CPU의 종류가 바뀌더라도 쉽게 접근할 수 있는 능력 배양을 목표로 한다. C 언어, 어셈블리어 등의 프로그래밍 언어를 이용하여 원하는 동작을 구현(코딩, 프로그래밍)한 텍스트 파일(코드 파일)을 컴파일하여 얻어지는 CPU가 해독할 수 있는 이진 기계어 명령의 집합을 펌웨어(Firmware)라 한다. 이 펌웨어를 메모리에 저장하면 CPU는 메모리에서 기계어 명령을 읽어 해석하고 실행한다. 이런 일련의 과정을 이해하기 위하여 CPU가 전원이 들어온 후 펌웨어를 동작시키는 과정에 대해 살펴보도록 할 것이다.
규칙으로 배우는 임베디드 시스템
I. CPU 기초 이론
1. CPU 일반
1.1. CPU의 구조 및 동작
1.1.1. CPU의 구조 및 기능
1.1.2. CPU의 동작 단계
1.2. 명령어 구조와 실행 파일
1.2.1. 명령어 구조로 보는 RISC/CISC CPU 구조
1.2.2. CPU의 동작과 실행 바이너리 파일
1.3. CPU동작을 위한 주변 하드웨어
1.3.1 전원 (Power)을 위한 레귤레이터
1.3.2. 클럭 (Clock)
1.3.3. 메모리 (Memory)
1.3.4. CPU 버스 구조
1.3.5. 리셋(Reset)
1.4. 리셋 후 펌웨어 부팅 과정
1.4.1. 리셋 벡터
1.4.2. Reset_Handle
1.5. 인터럽트
1.5.1. 인터럽트의 동작
2. MCU(Micro Controller Unit)
2.1. GPIO
2.1.1. 부가 기능 (Alternate Function)
2.1.2. GPIO 내부 회로
2.2. 직렬 통신 이론 일반
2.2.1. 7 계층(Layer)
2.2.2. 프로토콜(Protocol)
2.2.3. 직렬 (Serial) 통신 방식의 구분
2.2.4. 통신 신호의 SNR(Signal to Noise Ratio) 강화
2.2.5. 통신 오류 검출 방법
2.3. 직렬 통신
2.3.1. UART (Universal Asynchronous Receiver & Transmitter)
2.3.2. I2C
2.3.3. SPI (Seri2.3.3. SPI (Serial Peripheral Interface)
2.4. ADC와 DAC&PWM
2.4.1. ADC(Analog To Digital Converter)
2.4.2. DAC (Digital to Analog Converter)
2.4.3. PWM(Pulse Width Modulation)
2.5. MCU 선택의 고려사항
II. 시스템 개발 프로세스
III. 펌웨어 개발 규칙
1. 펌웨어의 설계 및 구현 규칙
1.1. 펌웨어의 설계
1.1.1. HAL 구조 설계
1.1.2. 데이터 취득 및 제어 방식
1. 1.3. 펌웨어 설계 도구
1.2. 펌웨어의 구현 전략
1.2.1. 시스템에 맞는 컴파일 환경 설정
1.2.2.가독성을 위한 규칙
1.2.3. 하드웨어 접근 코딩
1.3. 펌웨어의 안전성
1.4. 펌웨어의 성능
1.4.1. 알고리즘 구현
1.4.2. 메모리 정렬 (Align)
1.4.3. 매크로와 Inline 함수의 사용
1.4.4. 실수 사용의 고려사항
1.4.5. 테스크의 병렬 처리
1.4.6. 기타 성능 규칙
1.5. 펌웨어의 양산 및 유지보수
2. Low Level 펌웨어
2.1. CPU의 동작과 바이너리 파일 생성 과정
2.1.1. 빌드 (Build) 과정
2.2. Low Level 프로그래밍 실습
2.2.1. 소스 파일 생성
2.2.2. 링커 스크립트 작성 .
2.2.3. Startup 코드 작성
2.2.4. Main() 함수 작성
2.2.5. Makefile 작성
2.2.6. 컴파일로 컴파일로 이진 바이너리 파일 생성
2.2.7. [ 참고 ] ELF 파일에서 정보 얻기
3. 펌웨어 설계 및 구현 실습
3.1. 모드버스(Modbus) RTU 프로토콜
3.1.1. 필드 버스 (Field Bus) 일반
3.1.2. 모드버스(Modbus) RTU
3.2. 펌웨어 설계
3.2.1. 블록 다이어그램
3.2.2. 플로우 차트
3.3. 펌웨어 구현 및 테스트
3.3.1. Modbus_io 모듈 소스 구현
3.3.2. Modbus COM 모듈
3.3.3. Main 함수
3.4. 펌웨어 취약점 보완
4. 기초 알고리즘
4.1. [일반] 채터링 방지 알고리즘
4.1.1. 일정 시간 반복 체크 법
4.1.2. 저주파 필터를 이용한 채터링 방지 방법
4.2. 자료 구조론
4.2.1. 데이터 정렬
4.2.2. 원형 큐(Circular Queue)
4.3. 수치 해석
4.3.1. 테일러 급수 (Taylor Series)
4.3.2. 연립 방정식의 해
4.3.3. 방정식의 근
4.3.4. 보간법 (Interpolation)
4.3.5. 수치 미분
4.3.6. 수치 적분
4.4. 디지털 신호 처리(DSP)
4.4.1. 샘플링 샘플링 주파수
4.4.2. 저주파 통과 필터
4.4.3. 고주파 통과 필터
IV. [참고] 디버깅
1. 디버깅 절차
2. 측정 장비 및 디버깅 예
2.1. 전기 신호 측정 장비
2.2. 디버깅/측정 항목