임베디드 기사 33

1. 임베디드 프로그램 분석 및 설계하기

1.1 요구사항 분석 1. 요구공학 1) 요구공학 - 시스템 요구사항 문서를 생성하고 검증하고 관리하기 위하여 수행되는 구조화된 활동의 집합 - 요구공학은 크게 두 부분으로 나눌 수 있다. ㄴ 개발 단계 : 요구사항 추출, 분석, 정의, 검증. 누락 없는 요구사항 수집, 명확한 요구사항 도출 등 ㄴ 관리 단계 : 요구사항 변경 관리. 요구사항이 어떻게 설계되고 어느 프로그램에 구현되었는지 등 2) 요구공학 프로세스 단계 ① 요구사항 추출 : 문제를 이해하고 요구사항 추출 ② 요구사항 분석 : 추출된 요구사항을 분석하여 구조화하고 대안들을 결정 ③ 요구사항 정의 : 시스템이 무엇을 해야 할지를 기술. 요구사항 명세서(SRS) 작성 ④ 요구사항 검증 : 문제를 기술하고, 서로 다른 부분들과 일치하는지 여부 ..

2. 임베디드 커널 프로그래밍

2.1 시스템 콜 1. 시스템 콜 1) 시스템 콜 - 운영체제가 제공하는 서비스에 대한 프로그래밍 인터페이스 - 보통 C 또는 C++과 같은 고급 언어로 만들어지고, 직접 시스템 콜을 호출하기 보다는 고급 API를 통해 접근한다. 2) 시스템 콜의 절차 ① 유저 프로세스에서 라이브러리 (fork())를 호출한다. ② 라이브러리에서 mvl 2가 eax 레지스터에 저장되고, 0x80 인터럽트를 일으킨다. ③ Interrupt Vector Table에 0x80을 찾아가 시스템 콜 주소를 찾는다 ④ 시스템 콜에서 인덱스 값을 넣어 시스템 콜 테이블에 있는 sys_fork()를 실행 시킨다. 3) 시스템 콜 추가 절차 ① 시스템 호출 번호 할당 - (커널 소스 위치)/arch/(CPU Architecture)/i..

1. 임베디드 OS의 이해하기

1.1 커널의 구조 1. 커널 1) 커널 - 운영체제 중 항상 메모리에 올라가 있는 핵심 부분 - 운영체제의 여러 가지 기본적인 서비스를 제공 2) 커널의 디렉터리 구조 - kernel : 리눅스 커널의 제어 및 디버깅 관련 설정 - mm : 물리, 가상 메모리 관리 옵션 - FS : 가상 파일 시스템 및 각종 파일 시스템 설정 - NET : 네트워크 프로토콜 옵션 - IPC : System V IPC 지원 옵션 (공유 메모리, 세마포어, 메시지) - INIT : 부팅 시 호출되는 초기화 관련 옵션 - crypt : 암호 처리를 위한 공통 기능 - block : 블록디바이스 제어 - drivers : 디바이스 드라이버 제어 관련 옵션 - Sound : 사운드 카드 및 드라이버 관련 - arch : CPU..

3. 디바이스 드라이버 작성하기

3.1 데이터시트와 레지스터 향후 추가 3.2 디바이스 드라이버 표준 API 1. 디바이스 드라이버 작성 절차 1) 디바이스 드라이버 이름, 주번호 결정 2) 코어 함수 구현 3) 커널 연계 래퍼 작성 : 코어 함수를 커널에 등록하기 위해 리눅스 디바이스 드라이버가 참조하는 파일 오퍼레이션 구조체 (fops)에 대한 인터페이스 함수 구현 ㄴ open(), release(), read(), write(), ioctl() 인터페이스 함수 구현 ㄴ file_operations 구조체에 인터페이스 함수 등록 4) 커널에 등록 : 커널 내부 함수(register_XXXdev) 이용하여 개발한 디바이스 드라이버를 Insmod 명령을 이용하여 커널에 등록 5) 장치 파일 생성 : mknod 명령을 이용하여 디바이스 ..

2. 임베디드 이해 및 포팅하기

2.1 커널 포팅 1. 커널 포팅 1) 커널 포팅 : 커널을 특정 타겟 보드의 하드웨어 환경 및 특정 응용에 맞게 수정하는 과정 2) 커널 포팅 과정 ① 커널 소스 풀기 - 오리지널 커널을 사이트에서 다운로드 하여 압축 해제 ② 커널 패치 - 개발하는 시스템 CPU Architecture 에 맞는 core 패치 적용 - 개발 보드에 맞는 board 패치 적용 ③ 커널 Configuration - 타겟 보드에 포함된 구성요소와 기능 지원 옵션 선택 - make xconfig 또는 make menuconfig 명령어 사용 ④ 커널 컴파일 - make 툴 이용하여 커널 빌드 - make zimage 명령어 사용하여 zimage 생성 ⑤ tftp 전송 - tftp zImage kernel 명령 사용 - JTAG..

1. 펌웨어 설계, 구현 및 테스팅 하기

1.1 파일 포맷과 빌드 도구 1. ELF 포맷 1) ELF - Executable and Linkable Format의 약어로 실행파일, Object 파일 Shared 라이브러리 파일과 Core Dump 파일 구조를 정의하고 있는 표준 형식 2) ELF 포맷 구조 - ELF Header, Program Header Table, Section Header Table로 구분 할 수 있다. ① ELF Header : 전체 파일 구조 정보를 포함하는 Road Map 같은 역할 ② Program Header Table : 실행을 위해 메모리에 재배치되기 위한 정보. 세그먼트 단위로 정의됨 ③ Section Header Table : 섹션에 대한 정보를 포함. 섹션 정보를 Linking시 활용 ※ 세그먼트 : S..

3. 임베디드 시스템 주변장치 분석하기

3.1 임베디드 시스템 주변 장치 1. GPIO란 - IC Chip의 Pin을 입력과 출력 또는 특정한 기능의 수행이 모두 가능하도록 설계된 방식 - 개발자에 의해 해당 Pin 용도를 다양하게 변경하여 활용이 가능한 확장 기술을 말함 2. GPIO 제어 레지스터 종류 - GPDR (GPIO Direction Register) : 해당 핀 방향을 입 / 출력으로 설정하는 레지스터 - GPLR (GPIO Level Register) ㄴ 특정 GPIO의 입력 레벨 또는 출력 레벨을 검출 ㄴ 해당 핀의 전압 low인지 high 인지를 검출하는 Read Only 레지스터 - GPSR (GPIO Set Register) ㄴ GPIO를 출력으로 사용하는 경우 High(1)로 설정 ㄴ 0값이 설정된 비트는 이전 상태를..

2. 임베디드 시스템 성능 및 구조 분석

2.2 임베디드 시스템 최적화 1. 임베디드 시스템 프로그램 코드의 크기를 줄이는 기법 3가지는? - 압축 ㄴ H/W적 복원 : 공간 효율성을 높일 수 있으나, 복원 시간으로 인한 수행 속도는 저하됨 - 컴팩션 ㄴ Local Factoring : 입구, 출구가 동일한 기본 블록들에 존재하는 이동 가능한 동일 명령어를 기본 블록 입구, 출구로 이동시키는 방법이다. 아래 그림의 (a)에서 (b)로 변환된 부분이 Local Factoring을 수행한 후를 나타낸다. ㄴ Procedural Abstraction : 반복되는 명령어들을 하나의 함수로 구성하여 해당 함수에 대한 호출 명령어로 대치한다. 아래 그림의 (a)에서 (d)까지의 과정이 Procedural Abstraction 과정이다. # Referenc..

2019년 임베디드 하드웨어 필기 기출 오답 정리

5번 Memory mapped I/O 방식을 가장 잘 설명한 것은? 1) I2C, SPI 같은 버스를 사용하고 있다 2) 입출력 port를 어드레스 하는 인스트럭션이 따로 있다 3) 주메모리의 일부 영역을 I/O 장치의 레지스터와 매핑하는 방식이다. 4) 별도의 주소 공간을 이용하기 위해 CPU는 별도의 명령어 집합을 필요로 한다. 더보기 3번 - 개념 1) Memory Mapped I/O ① Memory mapped I/O - CPU가 입출력 장치를 접근할 때 입출력과 메모리의 주소 공간을 분리하지 않고 하나의 메모리 공간에 취급하여 배치하는 방식 ② Memory mapped I/O 특징 - 많은 프로세스가 하나의 파일을 메모리에서 공유하는 것이 가능 - RISC, 임베디드 시스템에서 주로 사용 - 별..

2018년 임베디드 소프트웨어 필기 기출 오답 정리

63번 소프트웨어의 단위 테스트 방법 중 화이트 박스 (White box) 테스팅에 대한 검증 기준으로 거리가 먼 것은? 1) 문장 검증기준 2) 경로 검증기준 3) 조건 검증기준 4) 기능 검증기준 더보기 4번 - 개념 1) 화이트 박스 테스트 기법 : 모듈의 원시 코드를 오픈시킨 상태에서 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법 2) 화이트 박스 테스트 검증 기준 - 문장 : 모든 문장이 한번씩 수행되도록 검증하는 기준 - 선택 : 경로에서 나타나는 모든 분기점을 파악. 두 개의 분기점에서 참과 거짓 모두 테스트 - 경로 : 수행 가능한 모든 경로를 검사 - 조건 : if 문장, While 문장 안에 있는 조건을 조사하는 기준