일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 임베디드
- GeorgiaTech
- it
- 퀀트
- can
- 아마존 웹 서비스
- AWS
- TOEFL
- backtest
- toefl writing
- 자동매매
- backtrader
- 토플
- 클라우드
- probability
- 블록체인
- 백테스트
- AUTOSAR
- 자동차sw
- python
- 프로그래밍
- 백트레이더
- Cloud
- 파이썬
- 오토사
- 비트코인
- 확률
- 토플 라이팅
- 개발자
- 암호화폐
- Today
- Total
목록임베디드 (12)
Leo's Garage
느낀점이 논문은 실시간 시스템 이론의 초석이 된 고전으로, 이 논문이 출판된 이래로 이 내용은 수많은 실시간 스케줄링 알고리즘의 기반이 되었다. 특히 Rate-Monotonic과 Deadline-Driven Scheduling은 오늘날에도 널리 사용되고 있다. 증명 내용 단계 단계가 간단명료하고 직관적이어서 이해하기에 어렵지 않았다. 잘 쓴 논문이란 이런 것인가 하는 생각과 더불어 도대체 이런 아이디어는 어떻게 생각해내는지 궁금하다. Problem Statement본 논문은 Hard Real-Time Environment에서 단일 프로세서 위에서 동작하는 Multi Programming Task들의 Scheduling 문제를 다룬다. 이 환경에서 모든 Task들이 정해진 Deadline 내에 반드시 완료..
느낀점 사전 필요 지식멀티프로세서 실시간 시스템에서 공유 자원에 대한 상호 배타적 접근과 관련하여 데이터 무결성을 보장하고 예측 가능한 타이밍을 유지하기 위해서 여러 자원 공유 프로토콜이 개발되었다. 기존 멀티프로세서에서 자원 공유 프로토콜은 크게 두 가지 범주로 분류할 수 있다.1. 서스펜션 기반(Suspension-based) 프로토콜: 자원 요청이 즉시 충족되지 않으면 Task가 스케줄러에 의해 전환(Switch Away)된다. 이는 빈번한 Context Swtiching을 야기하여 상당한 Overhead를 발생시킬 수 있다.2. 스핀 기반(Spin-based) 프로토콜: Task는 자원이 부여될 때까지 해당 프로세서에서 자원을 적극적으로 대기(Spin)한다. Spin Lock은 복잡성이 낮아서 실..

SCR은 AURIX IC 내에 존재하는 별도의 Micom이다. 8 Bit Micom으로 XC800 Core를 기반으로 산업 표준 8051 프로세서와 호환된다. 이 Micom은 내장된 8KB의 XRAM에 프로그램 코드와 데이터를 적재하여 구동한다. 16Bit General Purpose Timer Real Time Clock Power Saving Mode 등을 지원한다. SCR은 주로 AURIX MCU의 Standby mode 구현을 위해 사용한다. SCR을 Turn on하고, AURIX의 나머지 모듈을 Turn off하면 저전력 대기 모드를 사용할 수 있게 된다. 가령 wake up signal을 단순히 edge detection이나 level detection이 아니라 로직이 돌아서 판단해야 하는 경..

RTOS의 특징 1. Hard Realtime 2. Scalability 3. Preemptive 4. Multitasking 5. Deterministic 6. Portability 7. Robustness Realtime System : 정해진 시간 내에 임무를 수행하는 시스템 - 소프트 리얼타임 시스템 (Soft RealTime System) : 가능한 한 빠르게 임무를 수행하지만 반드시 정해진 시간 내에 수행할 필요는 없다. (timeout이어도 계속 수행) - 하드 리얼타임 시스템 (Hard RealTime System) : 어떤 사건이 발생했을 때 정확히 동작하는 것은 물론이고 반드시 정해진 시간 내에 그 임무를 마쳐야 한다. (timeout 이면 failure) BootLoader 간단하게 ..

Interrupt - 비동기적인 이벤트의 발생을 처리하기 위한 메커니증 - 인터럽트 발생 시, 문맥을 정리하고 ISR(Interrupt Service Routine)로 점프 - 활성 / 비활성 가능 : 비활성화 시간은 가능한 짧게 해야함 - 지연 시간 (Interrupt Latency) : 비활성화 최대시간 + ISR 최초 명령 시간 [1] Disk -> Interrupt Controller [2] Interrupt Controller -> CPU 위의 두가지를 Masking해서 개별적으로 Interrupt Source를 막을 수 있다. [RTOS에서는 주로 [2]을 Masking한다] Interrupt의 SW 동작은 위와 같다. Main Program을 수행하다가 Interrupt가 발생하면, Inte..

RTOS - Real Time Operating System 쉽게 말해서 실시간 컴퓨팅을 보장하는 운영체제를 뜻한다고 생각하면 된다. RTOS는 일반적으로 임베디드 시스템에서 활용하는데, 보통 임베디드 시스템의 경우 일반 PC보다 성능이 낮다. 그런데 어떻게 성능이 낮은데 실시간을 보장하냐고 할 수도 있지만 High Performance를 보장하는 것과 Real Time을 보장하는 것은 같은 의미가 아니다. High Performance 시스템의 경우 0.1초만에 Task를 수행할 수 있는데 다른 Task에 의해 우선순위를 잃게 되면 2초가 걸릴 수도 있는 시스템이다. 이와 반면에 Real Time System은 어떤 상황에서도 1초 안에 해당 Task를 완료해야 한다면 그것을 최우선 과제로 두고 운영되..

AUTomottive Open System ARcitecture(개방형 자동차 표준 소프트웨어 구조) 2003년부터 구성된 자동차 분야의 개발 파트너십이다. 이 단체의 목표는 다음과 같다. 자동차 분야의 SW를 기본 SW 모듈들로 설명, 표현하고 Application Interface를 정의하여 표준화된 일반 개발 방법론을 구축하는 사양서를 제공하는 것이다. 그동안 자동차 업계에는 다양한 브랜드와 다양한 부품업체가 어떤 기준없이 각자의 목표에 따라 SW를 개발하고 배포해왔다. AUTOSAR는 서로 다른 기준으로 개발한 SW는 OEM이나 부품업체 입장에서 불필요한 연구개발 비용 증가를 불러올 수 있다고 판단하여, 기본적인 SW 모듈들의 정의하여 비용을 줄이고 SW 복잡성을 줄이고자하는데 목적이 있었다. 마..
앞의 포스팅에서는 Compile에 대한 이야기를 해보았다. 이번 시간에는 Proprocessor, 즉 전처리기에 대한 이야기를 해보고자 한다. 우선 전처리기가 실행되는 시점부터 언급하고 넘어가겠다. 전처리기는 Compiler가 *.c 파일을 *.s 파일로 바꾸기 전에 C processor 와 Lint processor라는 것들이 Syntax를 정리하는 과정을 거친다. 예를 들어 MACRO나 define으로 선언된 것들을 실제 Compiler가 Compile을 하기 전에 정리해준다고 생각하면 편하다. #define and & a = a and b 만약에 위의 같은 코드가 있다고 해보자, 이 코드를 전처리기에 돌리게 되면 a = a & b 위와 같은 형태로 변하게 된다. 그럼 이렇게 바꿀 수 있는 녀석들은 ..

이번에 할 이야기는 임베디드 시스템에서 Compile을 할 때 실제로 어떤식으로 binary code가 나오는지 이야기해보도록 하겠다. 앞 서 말한 것과 같이 흔히 ~.c file 하나를 Compile한다고 하면, C file을 기계가 알아들을 수 있는 Native code의 집합인 Binary Image를 만들어내는 것이라고 이해하고 있다. 맞는 이야기이다. Binary Code를 뽑아내기 위해서는 C file과 header file들을 이용하게 되고 때때로는 s file도 사용하게 되는데 s File은 Assembly Code로 가끔 개발자가 판단할 때, C로 Code를 짜는 것보다 직접 Assembly로 짜는게 더 낫다는 생각이 들면 s file을 만드는 경우도 있다. 어쨌든 결론적으로 이야기하면,..

전자공학도로 학부 시절 Programming 수업 때 마주했던 새로운 개념들 중 하나인 Compile에 대해 이야기해보도록 하겠다. 학부시절에는 대부분 단순한 PC프로그램이나 이미 거의 다 구성된 간단한 embedded board에 작성한 코드를 기계어로 번역해서 넣을 수 있게 만든다?? 정도의 굉장히 모호한 개념만을 갖고 있다가 현업에 발을 들였던 것 같다. 실제로 Compile에 대한 개념을 이해한 시기는 현업에서 Compile 문제로 골머리를 싸매면서이다. (아이러니하게도 사람은 모든게 갖춰진 학습현장보다 사활이 걸린 업무현장에서 수 배는 더 학습할 수 있다) Compile에 대한 사전적인 의미를 먼저 생각해보자 네이버 사전에 검색해보면, "엮다, 편집하다" 라는 뜻을 갖고 있음을 알 수 있다. 그..