임베디드 91

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

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

[ RTOS ] 08. RTOS 환경에서 워치독 활용하기

RTOS 환경에서 워치독 사용하기 현업 골칫거리 중 하나인 WDT에 대해서 알아보려고 합니다. 먼저 그 중요성에 대해서 알아보겠습니다. 우주 환경에 장기간 노출 된 상태에서 센서와 우주선 구성 요소를 테스트하는 NASA 위성 인 Clementine 은 1994 년 1 월 25 일에 발사되었습니다. 몇 줄의 감시 코드가 부족하여 1994 년 5 월 7 일에 임무를 잃었습니다. 클레멘 타인은 달 궤도를 떠나 그녀의 다음 목표 인 지구 근처의 소행성 Geographos로 향했을 때 약 2 개월 연속 달지도를 수행했습니다. 그러나 곧 Clementine의 온보드 컴퓨터 중 하나에서 오작동이 발생하여 NASA가 우주선 작동을 효과적으로 차단하고 추진기 중 하나가 제어되지 않은 상태로 발사되도록했습니다. NASA는..

[ RTOS ] 02. ThreadX의 Thread Execution

이번 글은 RTOS의 중요한 기능중 하나인 Thread에 대해 다룰 것이므로 주의 깊게 보시기를 추천드립니다 Thread Execution Scheduling and executing application threads is the most important activity of ThreadX. What exactly is a thread? A thread is typically defined as semi-independent program segment with a dedicated purpose. The combined processing of all threads makes an application. How are threads created? Threads are created dynamica..

[ RTOS ] 01. ThreadX의 Initialization

Understanding the initialization process is very important. The initial hardware environment is setup here. In addition, this is where the application is given its initial personality. ThreadX attempts to utilize (whenever possible) the complete development tool’s initialization process. This makes it easier to upgrade to new versions of the development tools in the future. 초기화 프로세스를 이해하는 것은 매우 ..

[ Embedded ] 26. SMP 란?

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

[ ARM ] 01. 모든 개발자가 ARM 프로세서를 배워야 하는 이유

01. 모든 개발자가 ARM 프로세서를 배워야 하는 이유 이제 조금 더 깊게 들어가서 왜 임베디드개발자 혹은 일반개발자들도 ARM 프로세서를 배워야 하는지 알아보자. 임베디드 개발자가 ARM 프로세서를 배워야 하는 이유 보드 브링업을 제대로 수행하기 위해 임베디드 개발자들이 진행하는 프로젝트의 단계는 보드 브링업 - 기능안정화 - 유지보수 정도로 분류될 수 있다. 이 중 보드 브링업단계에서는 구체적으로 어떤 일을 할까? 부트로더에서 스타트업 코드를 작성 스타트업코드란 전원이 시스템에 들어오면 가장먼저 실행되는 주소에 코드를 위치시켜서 시스템을 초기화하는 코드이다. 스타트업 코드는 기본적인 메모리 설정을 초기화하고 ARM 모드 별로 스택 사이즈를 지정해야 한다 이 스타트업 코드를 제대로 작성하기 위해선 A..

[ ARM ] 00. ARM 프로세서와 우리가 이를 배워야 하는 이유

00. ARM 프로세서 ARM 아키텍쳐가 무엇인지 모르는 사람은 아래 포스팅을 보고 오시길 바란다. https://ko.wikipedia.org/wiki/ARM_%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98 https://m.blog.naver.com/PostView.nhn?blogId=suresofttech&logNo=221249244004&proxyReferer=https:%2F%2Fwww.google.com%2F 그렇다면 ARM 프로세서를 배워야 하는 이유가 무엇일까? 많은 소형기기에서 ARM 프로세서를 탑재 ARM 프로세스를 배우는 가장 큰 이유는 ARM 프로세서를 많이 사용하기 때문이다. 대부분의 휴대기기에는 ARM 프로세서가 탑재돼 있다. 우리가 항상 들고다니는 안드로이드 ..

[ 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..