https://www.autoelectronics.co.kr/article/articleView.asp?idx=1513 

 

토요타 급발진 분석

본고에서는 소송 과정에서 밝혀진 여러 가지 사안을 토대로 소프트웨어 공학적인 측면에서 토요타 제어 소프트웨어의 문제점을 설명한다.

www.autoelectronics.co.kr

배울점이 많다.

임베디드 소프트웨어 깊이있는 내용이 많이 나온다.

 

완전한 SW는 없다고 생각한다.

이슈난 SW를 뜯어보면 SW로 인한 이슈가 아니어도 SW에는 문제가 있을 것이라고 생각된다.

하지만 해당 분석을 보면 Barr 그룹의 분석 정도가 배울점이 많아보인다. (약 10년 전인데..)

해당 사이트에 다른 볼만한 글도 많다.

참고해야지

 

https://www.hancommds.com/dSPACEData?curPage=6 

 

한컴MDS

인텔리전트 융합 솔루션 전문기업 한컴MDS

www.hancommds.com

http://recipes.egloos.com/

 

임베디드 레시피

친절한 임베디드 개발자되기 강좌

recipes.egloos.com

https://igotit.tistory.com/category/%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C/%EC%9D%BC%EB%A0%89%ED%8A%B8%EB%A1%9C%EB%8B%89%EC%8A%A4

 

'임베디드/일렉트로닉스' 카테고리의 글 목록

정의. 관계. 클리어. : coding : making : creating : developing : trading : enjoying

igotit.tistory.com

https://arthand.tistory.com/category/AUTOMOTIVE%26IT%20SW/AUTOSAR%20%EA%B0%95%EC%A2%8C

 

'AUTOMOTIVE&IT SW/AUTOSAR 강좌' 카테고리의 글 목록

맛집,잡동사니,미니멀라이프 등 끔손이 좋아하는 것들을 공유합니다^^

arthand.tistory.com

https://embeddedchallenge.tistory.com/25?category=1204220 

 

대기업 연구원은 어떤 일을 할까? (자동차부품SW개발)

Y대 전기전자공학부 졸업 --> 자동차공학(전자제어) 석사 졸업 그리고 들어간 곳은 대기업의 자동차부품 SW 개발팀 이었다. 자동차 안에는 많은 Electric Controller Unit(ABS, EMS, VCM, BMS, OBCM, 기타 등등)

embeddedchallenge.tistory.com

https://www.autoelectronics.co.kr/

 

미물님 블로그에서 좋은 글귀

https://www.mimul.com/blog

코드는 쓸 때(Write)보다 읽을 때(Read) 많은 비용이 발생한다. 횟수도 훨씬 많음

 

 

 

 

https://google.github.io/styleguide/cppguide.html

 

Google C++ Style Guide

 

google.github.io

https://jongwook.kim/google-styleguide/trunk/cppguide.xml

한국어로 번역된 C++ Style Guide

 

2019년 임베디드 기사 실기에서 불합격을 하고 

2020년 재도전하여 합격했습니다.

 

2020년 난이도는 좀 괜찮았습니다.

2019년이 워낙 어려웠고요...

2020년 합격률 궁금하네요

공부는 19년에 열심히 했고 2020년에는 적당히 했습니다.

 

이번에는 안드로이드 리눅스 문제는 거의 안나왔고

대부분 필기문제에서 나오고 C언어 문제가 좀 나왔습니다.

 

임베디드 기사 자격증이 좀 더 활성화되어서 난이도도 적당해지고 시험 횟수도 늘었으면 좋겠네요

임베디드 기사 응시자분들 화이팅입니다~!

'전자공학 > 임베디드' 카테고리의 다른 글

도요타 급발진 분석 BARR 그룹  (0) 2021.08.25
임베디드 공부 사이트  (1) 2021.08.24
2019년 제6회 임베디드 기사 실기 후기  (2) 2021.01.05
디바이스 드라이버 (Device Driver)  (0) 2020.11.10
MCU 구조  (0) 2020.09.02

난이도가 매우 높았다..

합격자 1명 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

실기 문제는 안드로이드, 리눅스에 관한 문제가 좀 나왔다.

그래서 좀 어려웠다....

그냥 필기문제랑 비슷하면 무난했을텐데..

필기랑 너무 엇나가는 느낌

아직 난이도 조절을 못하는듯..

공부도 열심히 했었는데 ㅠㅠ

 

'전자공학 > 임베디드' 카테고리의 다른 글

임베디드 공부 사이트  (1) 2021.08.24
2020년 제7회 임베디드 기사 실기 합격 후기  (15) 2021.01.07
디바이스 드라이버 (Device Driver)  (0) 2020.11.10
MCU 구조  (0) 2020.09.02
스타트업 코드  (0) 2020.04.28

FinFET에 관해서 포스팅을 했었는데 요새 GAAFET가 화제인 거 같더라고요!

kkhipp.tistory.com/59?category=799458

 

FINFET 구조, 특징

이번에는 FINFET(핀펫)에 대해서 간단히 알아보겠습니다. FINFET은 구조가 물고기 지느러미(FIN)와 비슷하다하여 지어진 이름입니다. 출처 : http://www.samsungsemiconstory.com/1353 기본적으로 FET는 GATE의..

kkhipp.tistory.com

GAA에 관해서 포스팅해보겠습니다.

4나노 공정 밑으로 가면서 FINFET으로도 한계(동작전압 내리는 데에 한계)가 있어서 GAAFET이 나왔습니다.

가장 큰 차이점은 FinFET은 게이트가 채널을 3면을 만나고 있지만 GAA는 4면을 모두 만나고 있어 표면적이 더욱 늘어났다는 점입니다.

그리고 MBCFET(Multi Bridge Channel FET)은 더 나아가 GAA의 채널이 얇기 때문에 전류에 한계가 있어 이를 더 넓혀 개선한 구조입니다.

 

 

 

여기서 GAA 구조의 장점을 더 설명해보자면

채널의 수가 늘어나도 FET가 차지하는 하단부 면적은 늘어나지 않아 소형화에 용이하고 채널의 폭과 수에 대한 컨트롤이 용이하기 때문에 고객사 대응에 더 좋습니다.

 

 

파운더리 산업에서 3나노에 빨리 대응하여 삼성전자의 점유율이 더욱 올라갔으면 좋겠네요! 

 

참고

www.samsungsemiconstory.com/2171

 

차세대 반도체를 위한 차세대 공정, 'GAA 구조' 트랜지스터

인공지능(AI)부터 5G, 사물인터넷(IoT), 자율주행 자동차까지 반도체는 어느새 4차 산업혁명 시대를 이끌어가는 핵심 기술로 자리 잡았는데요. 이렇게 반도체 기술이 고도화되고 복잡해지면서 그

www.samsungsemiconstory.com

news.skhynix.co.kr/1805

 

미세화는 이제 끝이라고? 4차원 GAA가 뜬다

2018.10.03 | by 장은지 반도체 기술력의 상징이었던 미세화(Scaling) 공정의 끝은 어디일까요? 반도체 발전을 추동해온 '무어의 법칙'이 더는 유효하지 않은 격변의 시대, 글로벌 반도체 기업들은 앞

news.skhynix.co.kr

 

'전자공학 > 반도체' 카테고리의 다른 글

미세공정에 따른 변화와 문제  (2) 2018.11.29
Low-K, High-K란?  (0) 2018.11.27
모빌리티 Mobility  (3) 2018.11.14
Degenerate Nondegenerate에 대해서  (2) 2018.11.13
Body effect란?  (2) 2018.11.01

장치 드라이버 라고도 불리는 디바이스 드라이버에 대해 알아보겠습니다.

 

디바이스 드라이버(영어: device driver)는 특정 하드웨어나 장치를 제어하기 위한 커널의 일부분으로 동작하는 프로그램이다. 컴퓨터를 구성하는 다양한 입출력 장치마다 각각 장치드라이버가 프로그램 되어 커널에 통합되어 실행된다. 높은 수준의 컴퓨터 프로그램들이 컴퓨터 하드웨어 장치와 상호 작용하기 위해 만들어진 하나의 컴퓨터 프로그램이다.

장치드라이버는 커널의 일부분이기는 하나 커널과 통합되는 것은 처음부터 해당 드라이버 프로그램 코드소스가 커널 전체 소스에 포함되어 컴파일되는 경우도 있고, 그리고 별도로 컴파일된 파일(윈도의 *.sys, 리눅스의 *.o)의 형태로 존재하고 부팅 시 또는 필요 시 해당 파일이 로드되어 커널과 통합되기도 한다.

드라이버는 흔히 컴퓨터 버스, 또는 하드웨어와 이어진 통신 하위 시스템을 통해 장치와 통신한다. 요청하는 프로그램이 드라이버의 명령어를 호출하면, 드라이버는 장치에 명령어를 전달한다. 장치가 드라이버에게 데이터를 되돌려 주면, 드라이버는 원래 요청한 프로그램의 명령어로 데이터를 다시 전달한다. 드라이버는 하드웨어에 의존하며 특정한 운영 체제를 따른다. 이러한 드라이버는 비동기 시간에 의존하는 하드웨어 인터페이스에 필요한 인터럽트를 다룰 수 있다.

장치 드라이버는 흔히 장치 칩의 레지스터에 접근하여 하드웨어를 제어하며 하드웨어와 주변 기기를 사용하는 프로그램의 중간 다리 역할을 한다.

 

ko.wikipedia.org/wiki/%EC%9E%A5%EC%B9%98_%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84

 

장치 드라이버 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 장치 드라이버/제어기(문화어: 장치구동기, 장치구동프로그람) 또는 디바이스 드라이버(영어: device driver)는 특정 하드웨어나 장치를 제어하기 위한 커널의 일

ko.wikipedia.org

위키백과에서 매우 잘 설명해줬네요.

결국 디바이스를 제어하기 위한 커널의 일부분!

이제 디바이스 드라이버를 이해했으니 더 알아보겠습니다.

 

 

문자 디바이스 드라이버 Character device driver (키보드, 마우스

- 일반 파일과 가장 유사한 방식으로 처리할 수 있는 디바이스 드라이버

- 응용 프로그램은 open(), close(), read(), write() 등의 함수를 사용하여 디바이스 파일들을 다룸 

 

블록 디바이스 드라이버 Block device driver (디스크 드라이버)

- 파일 시스템을 지원하는 구조

 

네트워크 디바이스 드라이버 Network device driver (이더넷, 블루투스, 와이파이)

 

 

리눅스에선 /proc/devices 에서 확인 가능 

확장자 - .sys 윈도우, .ko 리눅스

 

그 외..

블루 스크린의 대부분의 원인이 디바이스 드라이버에서 비롯된다.

(운영체제와 밀접한 관련이 있기 때문에 신중히 작성되어야 한다.)

디바이스 드라이버는 리눅스 커널 소스의 70%를 차지한다. 

 

 

 

 

MCU를 간단히 설명하자면

 

코드를 읽고

읽은 프로그램을 처리하고 

결과를 Output 에 출력한다

 

마이크로컨트롤러(Microcontroller) 또는 MCU(Micro Controller Unit)는 마이크로프로세서와 입출력 모듈을 하나의 칩으로 만들어 정해진 기능을 수행하는 컴퓨터를 말한다.

CPU 코어, 메모리 그리고 프로그램 가능한 입/출력을 가지고 있다. NOR 플래시 메모리[1][3], EPROM[2] 그리고 OTP ROM등의 메모리를 가지고 있어 정해진 기능을 수행하도록 프로그래밍 코딩하고 이 기계어 코드를 써 넣는다. 기계어 코드가 실행되기 위한 변수나 데이터 저장을 위해 적은 용량의 SRAM을 가지고 있다. 기타 칩에 따라 EEPROM을 내장하기도 한다.

MCU는 임베디드 애플리케이션을 위해 디자인되었으며 임베디드 시스템에 널리 사용된다. 개인용 컴퓨터가 다양한 요구에 따라 동작하는 일반적인 일에 사용된다면, MCU는 기능을 설정하고 정해진 일을 수행하도록 프로그래밍되어 장치 등에 장착되어 동작한다. 따라서 일반적으로 성능이 PC에 비해 낮고 형상도 다르다. 한 번 프로그래밍하면 코드를 나중에 바꿀 일이 거의 없기 때문에 냉장고, 전자레인지 등의 기기에 사용된다.

 

-위키백과

 

 

MCU 는 CPU 메모리 보조 모듈로 구성

 

메모리와 CPU는 명령 & 데이터

 

메모리 : ROM(Flash rom, EEPROM) 프로그램 저장   /  RAM 임시저장 데이터 데이터 읽고 쓰는 장치

CPU : ALU(산술장치 ), Register(임시저장 데이터 ), Shifter

보조모듈 : SPI, UART, I2C, ADC, DAC, 타이머

 

 

 

Program Memory(Flash Memory) : 프로그램 명령어 저장

Core(CPU) : 명령어 수행

Data Memory(SRAM) : 명령어 수행한 임시데이터 저장 

 

 

 

SRAM, 변수나 스택등에서 사용하는 읽기, 쓰기 전용 메모리

Flash ROM,  프로그램 굽는 용도 읽기전용의 상수 데이터도 저장함

EEPROM 읽고 쓰기가 가능하지만 속도가 느리며 횟수제한이 있으므로 변경하지 않는 설정값 저장 

DataFlash 플래시 메모리 중의 일부분을 읽고 쓰기 가능하도록 만든 것으로써 일부 제품만 이런 기능이 있다

인터럽트 벡터 테이블을 생성하고 메모리 검사와 C 프로그램에서 사용할 스택과 힙을 생성하고 초기화 하는 등 C 프로그램이 작동하기 위한 초기화 작업 수행

 

스타트업 코드는 시스템이 C를 인식하기 전이기 때문에 어셈블리 코드로 작성해야 함

'전자공학 > 임베디드' 카테고리의 다른 글

디바이스 드라이버 (Device Driver)  (0) 2020.11.10
MCU 구조  (0) 2020.09.02
시리얼 케이블, JTAG 케이블, 이더넷/USB 케이블  (0) 2020.04.28
크로스컴파일 과정  (0) 2020.04.28
JTAG란?  (0) 2019.12.25

시리얼 케이블 : UART 통신을 위한 케이블, 모니터링 디버깅 가능

JTAG 케이블 : 타겟 시스템이 프로그램 다운로드, 플래시 메모리에 프로그램 탑재, 레지스터 값을 읽어올 수 있고 프로그램을 스텝으로 실행 가능

이더넷/USB 케이블 : 타겟 시스템에 개발한 소프트웨어 탑재 가능 

 

 

'전자공학 > 임베디드' 카테고리의 다른 글

MCU 구조  (0) 2020.09.02
스타트업 코드  (0) 2020.04.28
크로스컴파일 과정  (0) 2020.04.28
JTAG란?  (0) 2019.12.25
부트로더(Boot loader)란?  (0) 2019.10.28

+ Recent posts