전체 글

빙그르르를르르ㅡㄹ➰〰🌊
개발/임베디드 os 개발 프로젝트

6장 인터럽트

임베디드 OS 개발 프로젝트를 읽고 작성하였습니다. 시작하기 전에 인터럽트 임베디드 시스템을 포함한 모든 컴퓨팅 시스템의 꽃 컴퓨팅 시스템의 모든 것이 다 인터럽트라고 말해도 과언이 아님 인터럽트 처리 1. 인터럽트 컨트롤러를 어떻게 사용해야 하는지 알아야 함 2. 인터럽트 컨트롤러 초기화 3. 사용하는 코드를 작성해야 함 4. 실제 인터럽트를 발생시키는 하드웨어와 인터럽트 컨트롤러를 연결 UART 1. UART 하드웨어는 인터럽트를 발생시킴 2. UART 하드웨어와 인터럽트 컨트롤러 연결 3. UART 하드웨어 ----인터럽트 신호----> 인터럽트 컨트롤러 4. 인터럽트 컨트롤러 ----인터럽트----> ARM 코어 5. 펌웨어에서 cpsr의 IRQ 혹은 FIQ 마스크를 끄면 IRQ나 FIQ가 발생했..

개발/임베디드 os 개발 프로젝트

5장 UART

임베디드 OS 개발 프로젝트를 읽고 작성하였습니다. 시작하기 전에 QEMU를 사용하는 환성에서 쓸 수 있는 하드웨어는 제한되어 있음 첫 번째로 작업할 하드웨어는 UART!! 5장 UART 5.1 UART 출력하기 UART (Universal Asynchronous Receiver/Transmitter, 범용 비동기화 송수신기, 유아트) RealViewPB에는 PL011이라는 UART 하드웨어 모듈이 붙여 있음이 하드웨어의 데이터시트는 ARM 인포센터에 있음 UART를 가장 먼저 작업하는 이유 UART를 보통 콘솔 입출력용으로 사용하기 때문 어떤 데이터 값이든 주고 받을 수 있음 UART를 사용하기 위해서 가장 먼저 해야 할 일 UART 하드웨어의 레지스터를 코드로 만드는 것 (1) C 언어 매크로를 이용..

개발/기타

VMware+Ubuntu와 git 연동

git 설치하기 $ sudo apt-get install git-core git version 확인 $ git --version git 연동 $ git config -- global user.name [이름] $ git config -- global user.email [메일 주소] git clone $ git clone [url 주소] git push $ git init $ git remote add origin [저장소 url] $ git fetch origin $ git status $ git add . $ git commit -m "작성 메시지" $ git push origin main 토큰을 제대로 발급 받아 git push를 하면 이렇게 정상적으로 완료되는 것을 볼 수 있다! os 공부를 하면..

개발/임베디드 os 개발 프로젝트

임베디드 OS 개발 프로젝트 부록 A.1장

임베디드 OS 개발 프로젝트를 읽고 작성하였습니다. A.1 ARM 아키텍처 기초 지식 ARM 기반으로 펌웨어를 만들기 위해 기본적으로 알아두어야 할 ARM 아키텍처 내용! A.1.1 익셉션 벡터 테이블 전원이 켜지면 ARM은 익셉션 벡터 테이블의 리셋 벡터를 읽음 익셉션 벡터 테이블의 위치는 ARM이 정한 기본 위치인 0x00000000(메모리 시작 위치) 메모리 주소에 배치함 오프셋 이름 설명 0x00 Reset 전원이 켜지면 실행됨 0x04 Undefined Instruction 잘못된 명령어를 실행했을 때 0x08 SVS(Supervisor Call) SVC 명령으로 발생시키는 익셉션 0x0C Prefetch Abort 명령어 메모리에서 명령어를 읽다가 문제가 생김 0x10 DataAbort 데이터..

개발/임베디드 os 개발 프로젝트

4장 부팅하기

임베디드 OS 개발 프로젝트를 읽고 작성하였습니다. 시작하기 전에 부팅한다? 컴퓨터를 켜서 윈도우나 리눅스 로그인 화면 혹은 데스크롭 화면(바탕화면)이 나오기까지의 과정 펌웨어는? 시스템에 전원이 들어가서 모든 초기화 작업을 마치고 펌웨어가 대기(idle) 상태가 될 때까지를 말하거나, 시스템에 전원이 들어가고 ARM 코어가 리셋 익셉션 핸들러를 모두 처리한 다음에 본격적으로 C 언어 코드로 넘어가기 직전까지 보통 전자가 일반적임 BUT, 책에서는 펌웨어가 대기 상태로 들어가는 단계를 설명해야 하므로 후자를 부팅이라고 정의함 4장 부팅하기 4.1 메모리 설계 임베디드 시스템은 메모리 구조가 복잡함 WHY? 성능과 비용 사이에서 최적의 결과를 내기 위해 다양한 메모리 종류를 섞어 쓰기 때문 QEMU는 단순..

일상/일기

잎새달 하루에서 누리달 사흘까지

보호되어 있는 글입니다.

짓우ㅜ
짓우의 개발 블로그‍