728x90

분류 전체보기 636

ARM 프로세서 동작모드

프로세서가 프로그램 실행할 때 권한을 설정하며 6개의 특권 모드(Privileged Mode)와 1개의 사용자 모드(User Mode)로 총 7개의 동작모드가 존재함. Privileged Mode예외 처리, 시스템 자원에 접근하며, 아래 모드로 구성됨. - SystemOS를 위한 동작모드로 OS 커널 작업을 실행하며, 시스템 자원에 접근이 가능함. 예외 발생 없이 진입하며, User Mode와 동일한 레지스터 셋을 사용함. - Abort명령어, 데이터 메모리 접근에 오류가 발생하면 나오는 Abort 예외 발생 시 진입. 명령어 접근 오류(Pre-fetch abort)는 명령어 Pre-fetch 과정에서 발생하는 오류이며 데이터 접근 오류(Data abort)는 데이터 alignment, 가상 어드레스 변..

임베디드 OS - 실시간 OS

임베디드 OS 특성 범용 OS에 비해서 작은 크기로, 빠른 부팅, 저전력, 비 디스크 방식의 운용. 다양한 프로세서를 지원하고 빠른 응답 속도가 존재함. 메모리 기반의 파일/DB 시스템을 운영함. 목표 시스템에 따라서 구성이 변경 가능한 컴포넌트 기반 OS가 많이 사용됨. 실시간 OS의 특성 제한 시간 내 출력하고, 정시에 작업 수행이 가능한 환경. 예측 가능, 일정한 응답 시간 요구하는 응용 프로그램을 지원함. HW 자원 사용으로 시간 제한 극복. 우선 순위를 설정해 실행 시간 할당. - Hard real-time; 경성 실시간일정 시간 안에 작업을 처리해야 하며, 제한 시간을 넘길 경우 시스템 실행을 실패로 간주. 군사무기, 항공기 등에 적용. - Soft real-time; 연성 실시간제한 시간 초..

ARM에 대한 기초적인 지식

ARM;Advanced RISC Machine여러 회사의 투자를 통해 설립한 회사로 ARM 프로세서 코어를 IP(Intellectual Property;지적 재산권) 형태로 무수히 많은 반도체 제조 회사에 라이센싱함. 32 bit 임베디드 프로세서 시장의 70% 이상 차지하며, 저전력 고성능 퍼포먼스로 휴대용 장치에 많이 사용됨. 16 bit 명령어, Java 코드 가속, DSP 기능, 보안 기능을 제공함. - ARM CoreARM 프로세서의 명령어 셋을 실행가능한 HW로 이를 ARM 코어의 HW 구조를 ARM 구조라고도 함. ARM 시스템 코어가 구조와 성능 결정함. 하드 매크로 셀과 합성 가능한 코어로 제공. 하드 매크로 셀;Hard Macrocell(레이아웃 수준 설계, 설계 변경 불능, 코어 크기..

ARM 레지스터

일반 목적 30개PC(Program Counter) 1개상태 레지스터 6개(CPSR 1 + SPSR 5) CPSR : 현재 프로세서 상태를 저장, 모든 모드들이 공용으로 사용SPSR : 모드 변경 시 이전 모드의 상태값 저장, 예외 모드에 하나씩 주어짐 특수 레지스터 #Stack Point(SP) - 프로그램의 스택 위치를 저장하는 레지스터- ARM은 모드별 스택을 따로 사용해 모드별로 SP 필요 #Link Register(LR) - 서브루틴으로 분기할 때 되돌아 올 주소를 저장하기 위한 레지스터- 모드별로 할당 #Program Counter(PC) - 프로그램의 위치를 저장- 하나만 존재해 모든 모드가 공용 사용 상태 레지스터 - ARM의 상태를 저장하기 위한 레지스터 (CPSR 1개 + SPSR 5개..

C++] 명품 C++ 프로그래밍 6장 실습문제

개인적으로 C++을 공부할 때 작성해놓았던 코드들을 찾았다.혼자 책을 사서 독학하던 시절에, 그리고 학부생 시절에 복습하면서 했던 문제들이라서어떤 문제들은 깔끔히 잘 정리되어 있고, 어떤 문제들은 허접한 버그가 있을 수도 있다.확인은 해뒀지만, 확인하지 못하거나 고려해야 할 버그, 오탈자 등은 댓글을 남겨주시라. 그간 공부한 것들을 정리하는 블로그이기 때문에 올려놓는다. 실습문제 1. add() 함수를 호출하는 main() 함수는 다음과 같다. add() 함수를 중복 작성하고, 프로그램을 완성하라. 디폴트 매개 변수를 가진 하나의 add() 함수를 작성하고 프로그램을 완성하라. #include using namespace std; /* 1 */ /* int add(int* arr1, int size) {..

C++] 명품 C++ 프로그래밍 5장 실습문제

개인적으로 C++을 공부할 때 작성해놓았던 코드들을 찾았다.혼자 책을 사서 독학하던 시절에, 그리고 학부생 시절에 복습하면서 했던 문제들이라서어떤 문제들은 깔끔히 잘 정리되어 있고, 어떤 문제들은 허접한 버그가 있을 수도 있다.확인은 해뒀지만, 확인하지 못하거나 고려해야 할 버그, 오탈자 등은 댓글을 남겨주시라. 그간 공부한 것들을 정리하는 블로그이기 때문에 올려놓는다. 실습문제 1. 두 개의 Circle 객체를 교환하는 swap() 함수를 '참조에 의한 호출'이 되도록 작성하고 호출하는 프로그램을 작성하라. #include using namespace std; void swap(int& a, int& b) { int tmp; tmp = a; a = b; b = tmp; } int main() { int..

C++] 명품 C++ 프로그래밍 4장 실습문제

개인적으로 C++을 공부할 때 작성해놓았던 코드들을 찾았다.혼자 책을 사서 독학하던 시절에, 그리고 학부생 시절에 복습하면서 했던 문제들이라서어떤 문제들은 깔끔히 잘 정리되어 있고, 어떤 문제들은 허접한 버그가 있을 수도 있다.확인은 해뒀지만, 확인하지 못하거나 고려해야 할 버그, 오탈자 등은 댓글을 남겨주시라. 그간 공부한 것들을 정리하는 블로그이기 때문에 올려놓는다. 실습문제 1. 다음은 색의 3요소인 red, green, blue로 색을 추상화한 Color 클래스를 선언하고 활용하는 코드이다. 빈칸을 채워라. red, green, blue는 0~255의 값만 가진다. #include using namespace std; class Color { int red, green, blue; public: ..

백준 알고리즘] 13301 - 타일 장식물(KOI 2016 전국)

시간 제한 : 2 초메모리 제한 : 512 MB 문제대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개의 나선 모양처럼 점점 큰 타일을 붙인 형태였다. 타일 장식물의 일부를 그리면 다음과 같다. 그림에서 타일에 적힌 수는 각 타일의 한 변의 길이를 나타낸다. 타일 장식물을 구성하는 정사각형 타일 한 변의 길이를 안쪽 타일부터 시작하여 차례로 적으면 다음과 같다. 1, 1, 2, 3, 5, 8, ... 지수는 문득 이러한 타일들로 구성되는 큰 직사각형의 둘레가 궁금해졌다. 예를 들어, 처음 다섯개의 타일이 구성하는 직사각형(위에서 빨간색으로 표시한 직사각형)의 둘레는 26..

임베디드 시스템(Embedded System) 마이크로 프로세서

마이크로 프로세서(MicroProcessor) 분류 데이터 처리 단위(CPU의 처리 데이터 기본 단위, 4, 8, 16, 32, 64 bit)명령어 구조(명령어 수/복잡도, RISC;Reduced Instruction Set Computer, CISC;Complex Instruction Set Computer)메모리 연결(CPU/메모리 간 연결 방식, 폰노이만식, 하바드식)사용 용도(MCU;MicroController Unit, ASP;Application Specific Processor, MPU;Micro Processing Unit, DSP;Digital Signal Processor) 상용 마이크로프로세서 1. 32bit x86인텔에서 나온 범용 컴퓨터용 프로세서들을 통칭하며, 대부분 범용 컴퓨터..

백준 알고리즘] 5598 - 카이사르 암호(JOI 2007)

시간 제한 : 1 초메모리 제한 : 512 MB 문제가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였습니다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건너뛰어 적었다고 합니다. 26개의 대문자 알파벳으로 이루어진 단어를 카이사르 암호 형식으로 3문자를 옮겨 겹치지 않게 나열하여 얻은 카이사르 단어가 있습니다. 이 카이사르 단어를 원래 단어로 돌려놓는 프로그램을 작성하세요. 각 문자별로 변환 전과 변환 후를 나타낸 건 아래와 같습니다. 변환전 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 변환후 D E F G H I J K ..

728x90