Lecture 01_Embedded System
< Embedded System >
: Combination of computer hardware and software design for a specific function
- Embedded systems may also function within a larger system.
- The system can be programmable or have a fixed functionality.
Ex) Industrial machines, consumer electronics, agricultural and processing industry devices,
automobiles, medical equipment, cameras, digital watches, household appliances, airplanes,
vending machines, toys, mobile devices
< 실습에서 사용하는 임베디드 시스템 >
< Microarchitecture >
- Processors
: A processor appears to be a simple implementation of its ISA,
but processors use far more complex mechanisms for speed up program execution.
: processor's ISA - describing the effect of each machine-code instruction (각각의 기계 코드 명령어의 효과)
↔ Microarchitecture - describing how the processor is actually implemented (실제 프로세서가 어떻게 실행되는지)
*ISA (Instruction Set Architecture)
< ARM vs. X86 >
- X86
: X86 refers to Intel processor's family starting from 8086,
and it later releases 80186, 80286, 80386, 80486, Pentium and Xeon etc.
: Number 86 in X86 denotes the last 2 digits of its earlier processors.
: X86 dominates desktop, workstation, laptop, server markets.
: Initial chips were 16 bits, and later versions were 32 and 64 bits.
- ARM
: ARM originally started as Acorn RISC Machine by ARM Holdings, developed ARM, ARM2 32-bit processors
with minimal transistors that had lower power consumption/heat dissipation.
: ARM edged out Intel processors in speed and long battery life. (ARM > Intel X86)
: Collaborated with Apple and VLSI to float a new company Advanced RISC Machines.
: ARM processors are extensively used in mobile devices.
< How does your computer work? >
Algorithm → High Level Language → Assembly Language → Machine Language
→ Hard-Disk → Main Memory → Processor(CPU/GPU)
*Compiler: high level language → assembly language
*Assembler: assembly language → machine language
< Hardware Organazation >
< IEEE Spectrum's Ranking: Top 10 Programming Language >
: 주로 Python, C, Java를 사용한다.
< Python >
- High-level, general-purpose programming language.
- indentation(들여쓰기)를 통한 readability(가독성)을 중요시한다.
- dynamically typed and garbage-collected
- It supports multiple programming paradigms,
including structed (particularly procedural), object-oriented and functional programming
- its comprehensive standard library → "batteries included" language
< C Programming Language >
: General-purpose computer programming language
- Procedure language(절차적인 언어): Instructions in a C program are executed step by step
- Portable: C programs를 다른 platform으로 옮길 수 있고 changes 없이 실행 가능
- Speed: C programming is faster than most programming languages like Java, Python, etc.
- General purpose: C can be used to develop operating systems, embedded systems, databases...
→ While C has been a versaitile(다목적의) programming language,
it has been the most suitable one when it comes to Embedded Systems.
< C++ >
: High-level, general-purpose programming language
- object-oriented(객체지향), generic(일반화), functional features, facilities for low-level memory manipulation
- 대부분의 컴파일된 언어로 구현되며, 다양한 업체에서 C++ 컴파일러를 제공한다.
(Free Software Foundation, LLVM, Microsoft, Intel, Embarcadero, Oracle, and IBM)
< FreeRTOS >
: Real-time operating system kernel for embedded devices
- originally developed by Richard Barry around 2003
- later developed and maintained by Barry's company, Real Time Engineers Ltd.
- In 2017, the firm passed stewardship of the FreeRTOS project to Amazon Web Services (AWS).
- Barry continues to work on FreeRTOS as part of an AWS team.
자료는 이화여자대학교 윤명국 교수님의 임베디드시스템및실험 강의에서 가져온 것입니다.
'Study > 임베디드시스템및실험' 카테고리의 다른 글
[Exercise 03] 두 LED 동시에 깜빡이기 (0) | 2023.10.17 |
---|---|
[Lecture 04] LED (1) | 2023.10.16 |
[Exercise 02] Red LED 점차 빠르게 깜빡이기 (0) | 2023.10.15 |
[Lecture 03] Cortex-m, ARM (0) | 2023.10.15 |
[Lecture 02] 전자 기초, Hardware Organization (0) | 2023.10.15 |