임베디드/[ Embedded ] 28

[ Embedded ] 27. 콜드부트와 웜부트

콜드부팅, 웜부팅 부팅 이란 컴퓨터를 처음 켰을 때, 사용자가 작업을 할 수 있는 상태로 만드는 것입니다. 부팅종류에 따라서 BIOS에서 POST(Post On Self Test) 자기진단시험 검사단계를 거친 후, BIO는 MBR(Master Boot Record)를 읽어서 메모리에 상주시킨 뒤 MBR 코드를 수행시킵니다. 이후, MBR에 포함된 부트로더에서 부팅이 가능한 파티션을 찾은 후 OS를 수행시키는 것입니다. 그럼 이제 콜드 부팅(Cold Boot) 과 웜 부팅(Warm Boot)을 알아보겠습니다. 콜드 부팅 주요 부분에 전기가 통하지 않고, 전원이 모두 꺼져 있던 상태에서 전원 스위치를 눌러 컴퓨터를 다시 키는 것 POST 검사 단계를 거친다. 컴퓨터에 무리를 줄 수 있으므로 가급적이면 피하는..

[ Embedded ] 26. SMP 란?

SMP Symmetric Multiprocessing - 대칭형 다중 처리 "SMP ( Symmetric Multiprocessing ) 는 둘 이상의 동일한 프로세서가 단일 공유 주 메모리 에 연결되고 모든 I / O 장치에 대한 전체 액세스 권한을 가지며 처리하는 단일 운영 체제 인스턴스에 의해 제어되는 다중 프로세서 컴퓨터 하드웨어 및 소프트웨어 아키텍처 를 포함합니다 모든 프로세서는 동등하게 특별한 목적을 위해 아무 것도 예약하지 않습니다. 오늘날 대부분의 멀티 프로세서 시스템은 SMP 아키텍처를 사용합니다. 의 경우 멀티 코어 프로세서 의 SMP 아키텍처는 별도의 프로세서로 처리, 코어에 적용됩니다." 라고 정의되어 있다. 위 그림과 같아 프로세서들은 System Bus와 Memory, I/O를..

[ Embedded ] 25. Quota

Quota 쿼터란 파일시스템마다 사용자나 그룹이 생성할 수 있는 파일의 용량과 개수를 제한하는 것. 리눅스는 여러명의 사용자가 동시에 접속해서 사용할 수 있는데 만약 A라는 사욪아가 시스템을 사용할 때, 루트(/) 파일 시스템에 큰 파일을 계속 생성해서 하드디스크가 꽉차면 시스템 전체가 가동되지 않게 된다. 이런 상황을 대비하기 위해 각 사용자별로 사용할 수 있는 용량을 제한해야하는데 이것이 바로 쿼터이다. ex) 사용자 두명을 생성하고, 그 사용자들에게 각각 사용할 수 있는 공간을 할당해서 제안하기 하드디스크를 하나 장착하고 파티션을 나눈 후, 파일시스템을 ext3로 포맷하고, 마운트까지 하기. 먼저 파티션을 나누어야 한다. 그다음 ext3으로 포맷을 한다. 마운트를 시킨다. 부팅이되면 그때마다 자동으..

[ Embedded ] 24. Segment(세그먼트)

Segment(세그먼트) C언어로 작성된 프로그램은 주기억장치를 효율적으로 운영하리 위해서 일정한 크기, 대개는 64kb크기로 논리적 단위로 나누어서 할당과 할당 해제로 관리하게 된다. 그 논리적 단위를 세그먼트(Segment)라 하고 서로 관련이 있는 데이터와 명령어를 하나의 세그먼트로 관리하는 것이 아니라 데이터를 저장하는 데이터 세그먼트(Data Segment)영역와 명령어를 저장하는 코드 세그먼트 (Code Segment)영역로 구분해서 사용한다. 또한 데이터 세그먼트영역은 기억 장소의 할당 방법에 따라 동적 할당 (Dynamic Allocation)에 의하여 관리되는 스택(Stack) 세그먼트, 힙(Heap) 세그먼트와 정적 할당(Static Allocation)에 의해서 관리되어지는 데이터(D..

[ Embedded ] 23. HAL(하드웨어 추상화 계층)

HAL Hadrware Abstraction Layer (하드웨어 추상화 계층) 하드웨어 추상화 계층이란 컴퓨터 본체와 같은 물리적 하드웨어와 OS 같은 컴퓨터에서 실행되는 소프트웨어 사이의 추상화 계층이다. 이게 무슨말인가? 과거에는 운영체제의 커널이 하드웨어를 조작하기 위한 추상적 인터페이스를 제공하였다. System Call이라는 인터페이스가 있어서 하드웨어 I/O를 디바이스 노드에 실행하였다. 하드웨어 종류가 많지 않던 과거에는 이 방법이 나쁘지 않았다. 하지만 하드웨어 종류는 시간이 갈수록 늘어만 갔고 커널은 새로운 장치들을 인식하거나 변화된 상태를 인식하는데 많은 어려움이 따랐다. 그래서 하드웨어 차이에 상관이 없는 하드웨어 인식 방법을 개발하고자 하는 취지로 HAL은 연구되었다. 개발된 HA..

[ Embedded ] 22. 임베디드 리눅스 구성요소(BSP)

6. 임베디드 리눅스 구성요소(BSP) - BSP란? BSP(Board Support Package)란 말은 본래 RTOS에서 나온 용어로, "보드를 떠받치는(지원하는)" 소프트웨어 패키지란 뜻으로, "보드(하드웨어)를 동작 시키기 위해 필요한 (임베디드) 소프트웨어 묶음" 이다. 위 그림은 Firmware와 RTOS로 구동되는 시스템과 Non-RTOS로 구동되는 시스템의 차이를 보여주고 있다. WindRiver 사의 VxWorks와 같은 일부 상용 RTOS를 제외하고 대부분의 RTOS와 자체 Firmware에는 Non-RTOS와 같은 파일 시스템(File System)이 없다. 즉 소스들이 아무리 많다 하더라도 결국 컴파일이 끝나면 최종적으로 (CPU에 종속적인) 바이널 실행 코드 하나만 생성된다. 따..

[ Embedded ] 21. 임베디드 개발환경(Toolchain, Compile...)

5. 임베디드 개발환경 Tool - Chain ? 리눅스에는 “gcc” 라는 C 컴파일러가 있다. 리눅스에서 gcc 컴파일러로 컴파일할 때 별도의 출력 파일 이름을 지정하지 않으면 a.out이라는 이름으로 생성된다. 생성된 파일은 “실행 가능한 ELF 파일” 타입으로 되어 있다. 즉, UNIX나 Linux에서 gcc로 컴파일하면 무조건 ELF 파일이 생성된다. 컴파일 과정(Compile) 텍스트로 되어 있는 소스 코드 파일을 이진 바이너리(Binary) 코드로 변환하는 과정. 가장 먼저 실제 컴파일을 진행하기 전에 소스 코드 상에 "#"(전처리기, Preprocessor)으로 처리되어 있는 부분들을 먼저 처리한다. 이후에 처리가 끝나면 C 문법 검사를 하게 된다. 오류가 없다면 이진 바이너리 코드로 변환..

[ Embedded ] 20. 임베디드 시스템의 개요와 이해

4. 임베디드 시스템의 이해 - 임베디드 시스템 개요 1. 임베디드 시스템의 의미 임베디드 시스템은 특정 목적을 지닌 시스템이다. PC는 특정 목적이 아닌 범용 목적을 갖는 시스템이다. 예를 들어 PC는 프로그램 개발뿐 아니라 그래픽 작업도 할 수 있고, 게임, 멀티미디어 기능 등 범용의 기능을 제공한다. 하지만 임베디드 시스템인 핸드폰은 통신기능에 특화하여 개발되었고, 게임기도 게임기능에 특화하여 개발된 시스템이다. 임베디드 시스템의 구성은 정해진 기능에 필요한 하드웨어와 소프트웨어로 이루어진다. 2. 임베디드 시스템의 예 가전제품, 유비쿼터스 시스템, 휴대용 정보기기, 의료기기, 공장 자동화 시스템, 비행기, 우주선, 자동차내 정보기기 3. 임베디드 시스템의 특징 기능이 제한적이다 특정 기능에 특화된..

[ Embedded ] 19. 임베디드 OS(운영체제)

3. 운영체제 Non-RTOS 같은 자원에 여러 개의 태스크가 동시에 접근해야 할 경우 사용자 응용 프로그램은 자원에 직접 접근할 수 없다. 사용자 응용 프로그램이 OS를 통해 자원에 접근하는 과정 디바이스 드라이버(Device Driver) 등록: 실제 (하드웨어) 자원을 제어할 디바이스 드라이버가 미리 OS에 등록되어 있어야 한다. 사용자 응용 프로그램 자원 요청: 사용자 응용 프로그램은 OS에게 자원에 대한 접근 권한 요청 해당 디바이스 드라이버 검색: 요청을 받은 OS는 해당 자원을 실제로 제어할 디바이스 드라이버가 자신(OS)에게 등록되어 있는지 검색. 없으면 오류 메세지, 있으면 실행 디바이스 드라이버 자원 제어: 실제 하드웨어 지원을 제어하고 결과를 전달. RTOS 이든 Non-RTOS이든 ..

[ Embedded ] 18. 마이크로 프로세서란?

임베디드 처음 접할 때 MCU가 뭔지 MPU가 뭔지 참 헷갈리는 분들이 많을 겁니다. 이번 챕터에서 확실히 익혀두고 넘어갑시다. 2. 마이크로 프로세서 2.1 MPU vs MCU 마이크로프로세서(CPU) CPU = CPU Core(CPU Architecture) + CPU Peripherals(Controllers) ARM9 프로세서 = ARM9 Core + USB,Ethernet MAC, UART, ADC, … CPU Core CPU Core는 8, 16, 32비트 프로세서로 구분, ARM9 Core는 32비트 리눅스(Linux)구동 가능 CPU Core가 하는 일은 소프트웨어를 실행시킨다. 연산 처리 담당 CPU Peripheral 처리된 연산 결과를 CPU 주변 하드웨어를 제어하는 일 CPU Cor..

[ Embedded ] 17. 임베디드 플랫폼이란?

임베디드 기초 개념을 지금 올리긴 좀 늦은감이 있지만,, 중요한 개념이고 꼭 확실히 짚고 넘어가야 하는 부분 같아서 처음 부터 다시 올리겠습니다 ^^ 1. 임베디드 플랫폼이란? 1.1 임베디드 시스템의 특징 임베디드 시스템의 정의 특정 목적을 수행하기 위해 최적화된 시스템 특정한 제품이나 솔루션에서 주어진 작업을 수행할 수 있도록 추가로 탑재되는 솔루션이나 시스템 핵심 키워드: 특정 목적, 최적화(Optimization), 시스템 확장(Upgrade) 불가능 임베디드 시스템의 반대말이 범용 시스템(General Purpose System) 최적화에 대한 기준은 비용(Cost) 1.2 임베디드 플랫폼 임베디드 플랫폼: 비용 중심의 최적화된 하드웨어와 소프트웨어의 결합 임베디드 개발의 첫 단추는 마이크로 프..

[ Embedded ] 16. Loopback(루프백)

Loopback 루프백(Loopback, loop-back)이란 전기신호의 라우팅, 디지털 미디어 스트림, 또는 품목의 흐름이 의도적인 가공이나 수정 없이 원래의 장치나 장비로 돌아가는 것 주로 전송이나 수송 기반 시설을 테스트하는 수단으로 사용 하나의 종단점(endpoint)만 가지는 커뮤니케잉션 채널, 이러한 채널에서 전송된 메시지는 어떤 것이라도 같은 채널로부터만 즉시 수신됨. Serving switching center로부터 온 액세스 라인의 전송 테스트 수행시 served terminal에서 인력을 필요로 하지 않음 두 라인이 사용되는 스테이션(반드시 인접할 필요는 없음)의 연결 테스트. 한 스테이션에서 그리고 멀리 떨어진 스테이션에서 상호 연결된 두 라인에서 이루어지는 테스트를 동반함. 일반적..

[ Embedded ] 15. 세마포어(Semaphore)

Semaphore 프로세스 간 메시지를 전송하거나, 공유메모리를 통해 특정 데이터를 공유하게 되는 경우 문제가 발생할 수 있다. 즉, 공유된 자원에 여러 개의 프로세스가 동시에 접근하면서 문제가 발생하는 것으로써 공유된 자원 속 하나의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한해 두어야 하는데 이를 위하여 고안된 것이 바로 Semaphore(세마포어)이다. Critical Section이란? OS에서 Critical Section은 아주 중요한 부분이다. 다중 프로그래밍 운영체제에서 여러 프로세스가 데이터를 공유하면서 수행될 때 각 프로세스에서 공유 데이터를 액세스하는 프로그램 코드 부분을 가리키는 말이다. 공유 데이터를 여러 프로세스가 동시에 액세스하면 시간적인 차이 때문에 잘못된 결과..

[ Embedded ] 14. 멀티플렉서(MultiPlexer)

멀티플렉서 Multiplexer (MUX) Demultiplexer(DeMUX) 복수 개의 입력신호로부터 특정 조건에 의해 입력 신호 한 개만 선택할 때 사용하는 것이 멀티플렉서 또는 MUX(먹스)라고 불리운다. 그리고 그 반대의 목적에 사용되는 것이 디멀티플렉서 또는 DeMUX(디먹스) 멀티플렉서(MUX)는 n개의 선택선의 조합에 의해 선택된 2n개의 입력선 중에서 하나를 선택하여 출력선에 연결시켜 주는 회로이며 여러 개의 회로가 단일 회선을 공동으로 이용하여 신호를 전송하는데 사용한다. 아래는 멀티플렉서의 진리표이다. ( 4 x 1 ) S1, S0은 Y 출력을 결정하게 할 결정자 또는 선택자가 된다. 진리표를 보면 S1, S0가 각각 00일 때는 I0이 출력되고, 01일 때는 I1, 10일 때는 I2..

[ Embedded ] 13. 분해능(Resolution)

분해능 Resolving Power, Resolution Power, 분해능, 해상도 아주 작은 차이를 분별해내는 기기의 능력 렌즈와 같은 광학계의 결상 능력에서 해상도, 분해능, 해상력 의미 차이 해상도 : 동영상/이미지 등이 얼마나 자세하게 표현될 수 있는가의 척도 분해능 : 기기가 갖는 최대 능력 (가장 좋은 조건하에서의 해상력) 흔히, 분해능은 파장에 따라 달라짐 아주 짧은 파장을 쓰면 분해능을 높일 수 있다. ex) 전자현미경 해상력 : 주변여건에 따른 기기의 한계 분해능 :black_nib: 분해능 척도 판별 가능 최소 눈금 변화량 = (동작범위) / (눈금 수) 단위 눈금 당 신호 변화량 백분율 분해능(% 분해능) = [ (최소눈금단위 동작범위) / (전체 동작범위)] x 100% !일반적으..