임베디드 레시피 Chapter 4. ARM ② Assembly와 Bootloader
·
Embedded
교재(임베디드레시피)는 구체적인 문법을 설명하고 있지 않습니다. 또한, GNU gcc 기반이 아닌, ARM의 ADS를 기반으로 설명하시고 있습니다. 따라서, 어셈블리 문법에 대한 내용만큼은 다른 책을 보며 함께 공부하는 것이 좋을 것 같습니다.제가 참고했던 ARM 어셈블리 문법 기초를 배우는 링크와 파일입니다. (링크1)  (링크2)1. ARM Assembly1.1. ADS와 GNU GCC위 그림은 ARM의 ADS와 GNU 진영의 gcc 두 컴파일러의 어셈블리로, 보시다시피 문법과 구조가 거의 같습니다. Directive가 소문자 또는 대문자로 쓰인다던지, 맨 앞에 `.` 온점이 들어간다던지, 주석으로 `@`를 쓰냐 `;`를 쓰냐 정도의 미세한 차이가 있습니다. GNU ARM 어셈블리의 구조는 다음과 같..
임베디드 레시피 Chapter 3. SW ① 컴파일부터 로드
·
Embedded
1. Little endian과 Big endian프로세서가 메모리를 이해하는 순서 및 저장하는 방식은 Little endian과 Big endian 두 가지로 나뉩니다.이 방식을 이해하지 못하면, SW 디버깅이 불가능하므로 꼭 이해해야 합니다.[ 외우기 쉬운 표현법 1 ]Little endian: 낮은 주소에 낮은 바이트부터 읽으며 저장하는 방식Big endian: 낮은 주소에 높은 바이트부터 읽으며 저장하는 방식[ 외우기 쉬운 표현법 2 ]Little endian: LSB부터 읽으면서 저장하는 방식Big endian: MSB부터 읽으면서 저장하는 방식[ 외우기 쉬운 표현법 3 ]사람이 컴퓨터를 만듦 → 사람은 컴퓨터의 형님임 → 사람은 big brother, 컴퓨터는 little brotherLitt..
임베디드 레시피 Chapter 2. ARM
·
Embedded
본문에서는 ARM의 종류, 버전, 특징에 대한 상세한 얘기는 다루지 않고 중요한 부분만 배웁니다.ARM 프로세서의 동작방식을 이해하면, 전체 컴퓨터구조 및 다른 여러 프로세서에 대해서도 자신감이 붙습니다.ARM 공부는 마치 대중목욕탕 뜨거운 물과 같습니다. 아이들은 발끝 몇 번 담가보고 도망가는 너무 뜨거운 물이라도 어른들은 ‘시원하다’며 아무렇지도 않은 얼굴로 곧바로 들어갑니다. 마찬가지로 ARM은 잘 모르는 사람에게는 어디서부터 시작해야 할지 막막한 세상이지만, 막상 한 번 알고 나면 별거 아닙니다.ARM은 RISC 머신입니다. RISC는 명령어 길이가 고정돼있고, 명령어 종류가 많지 않고, Addressing 방법이 적어서 chip 복잡도가 낮고 크기도 작아지고, 전력소비도 줄어듭니다. Hard w..
임베디드 레시피 Chapter 1. HW ② 컴퓨터구성
·
Embedded
1. 논리회로논리적인 순서로 데이터를 제어해 digital 신호를 input으로 넣었을 때 원하는 output을 만들어내는 회로 사람들이 논리회로를 설계하다 보니 7가지 부분집합이 공통적으로 자주 사용되는 것을 파악했습니다. 이를 엮어 규칙으로 만들고 논리회로 소자로 만들었습니다. 각 논리소자를 gate라고 부릅니다.  예를들어, NOT은 트랜지스터 1개로 AND는 트랜지스터 2개를 직렬로 연결, OR은 2개를 병렬로 연결해서 만들 수 있습니다. 원하는 output을 만들 때는 카르노맵(Karnaugh map, K map)이라는 간단한 도구를 이용합니다. Input 개수 3, 4개까지는 충분히 손으로 최적화된 결과를 만들 수 있도록 도와줍니다.2. 레지스터2.1. Latch와 Flip Flop모든 회로를..
임베디드 레시피 Chapter 1. HW ① 회로이론
·
Embedded
1. 신호주파수: 진동운동에서 단위시간 당 같은것이 일어난 횟수 또는 빈도$cos(2 \pi ft)$ = 주파수가 f이고, 주기가 1/t인 주기함수f = 1Hz인 $cos(2 \pi t)$ 주기함수 - 시간영역에서는 1초에 1회 구불구불 오르내리는, 주파수영역에서는 1Hz 값으로 일정한 형태AC신호: 이러한 '주기적 특징' 및 주파수를 갖는 신호DC신호: 주파수를 갖지 않거나 주기가 한없이 0에 가까운 신호 푸리에변환(Fourier Transform): 모든 신호는 무한개의 주기함수의 합으로 나타낼 수 있습니다.어떤 신호 = 주기 T 주파수 성분 + 주기 (T+1) 주파수 성분 + ... + 주기 (T+N) 주파수 성분모든 신호는 주파수를 가진 AC신호와 주기가 0에 한없이 가까운 저주파인 DC성분의 합..
[요약] 임베디드 시스템 아키텍처, 다니엘 라카메라
·
Embedded
Chapter 1. 개요임베디드 시스템의 아키텍처는 MCU를 중심으로 주변장치(peripheral) 및 외부 세계와 통신하기 위한 특별한 인터페이스 모음입니다. 임베디드 SW의 핵심은 peripheral과의 통신입니다. 단순히 프로그래밍을 넘어 기초 전자공학지식, 회로도와 datasheet를 이해하는 능력, 로직 분석기 및 오실로스코프 같은 측정도구 활용능력을 이용해서 peripheral과의 안정적인 통신을 구현합니다.제한된 자원임베디드 SW 개발에는 자원이 제한 돼있기 때문에, 잘 정의된 테스트 케이스 & 성능 지표 탄탄한 workflow 기반의 개발이 필요합니다.MCU에는 MMU(Memory Management Unit, 물리주소→ 가상주소 변환 등 주소 관리해주는 핵심요소)가 없을 가능성이 높습니다..