일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 오토사
- 아마존 웹 서비스
- 토플 라이팅
- 자동차sw
- 개발자
- python
- Bitcoin
- 프로그래밍
- it
- backtest
- AWS
- 블록체인
- 퀀트
- Cloud
- GeorgiaTech
- 백트레이더
- 백테스트
- toefl writing
- can
- backtrader
- probability
- AUTOSAR
- 토플
- 클라우드
- TOEFL
- 암호화폐
- 파이썬
- 비트코인
- 자동매매
- 확률
- Today
- Total
목록임베디드 (10)
Leo's Garage
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에 대한 사전적인 의미를 먼저 생각해보자 네이버 사전에 검색해보면, "엮다, 편집하다" 라는 뜻을 갖고 있음을 알 수 있다. 그..
2014년부터 만으로 5년 6개월 가량 자동차 임베디드 SW를 개발하면서 학습학고 이해한 부분에 대해서 조금씩 정리해보고자 한다. 딱히 주제를 정해서 쓸 생각은 아니고 그때 그때 키워드를 중심으로 정리를 해볼 생각이다. 업계 특성 상, 그리고 제품 특성 상 몇 가지 제품 군 내에서 개발을 해왔기 때문에 어떤 부분에 대해서는 맞지 않을 수 있다. 다만, 좀더 General한 주제를 위주로 포스팅을 해 볼 생각이다. 나는 학부 4년을 마치고 바로 입사를 한 케이스였는데, 사실 학부 시절 임베디드 소프트웨어에 대한 Back Ground라고 할 만한게 전무했다. 게다가 나는 전자공학 전공자였으므로 사실 프로그래밍에 대해서 깊이 있게 알지 못했다, 처음 회사에 입사하여서 약 1년간은 설계 다운 설계를 제대로 해보..
항상 고민만 하다가 언젠가 해야지 해야지 미뤄두었던 블로그를 시작하기로 했다. 하루종일 회사에서 컴퓨터 앞에 앉아 일을 하다보니, 그동안 집 안에 컴퓨터를 둘 생각을 하지 않았다. 그럼에도 항상 아쉬웠던 것은, 바쁘게 살아가고 있음에도 불구하고 지나고 나면 기록된 것 하나 없이 흩날리는 내 일상이 아쉬웠다. 그러던 중, 회사에서 하는 업무도 리마인드 하면서, 또 지금 공부하고 있는 여러가지 분야들 (대부분 소프트웨어 관련)에 대해 조금은 정리하고 싶다는 생각이 들었다. BlockChain과 A.I.를 공부하기로 결심하고 큰 마음을 먹고 맥북 프로를 구매했다. 게다가 무려 다닌 적 없었던 강남의 컴퓨터 학원까지 6개월치를 등록하고 왔다. 이 모든 투자가 물거품으로 돌아가지 않도록 여러가지 장치를 만들고 진..