MISRA-C 규칙, 왜 이렇게 까다로울까? 양산 전 코딩 규칙 입문 [초급]
·
임베디드 실무
MISRA C는 자동차 업계가 만든 C 언어 코딩 규칙 모음입니다. 문법상 컴파일은 되지만 사고로 이어지기 쉬운 쓰임새를 막는 게 목적이라, 멀쩡히 돌던 코드에도 경고가 쏟아져요. 규칙은 Mandatory·Required·Advisory 세 등급으로 나뉘어 있어서, 전부 같은 무게로 볼 필요는 없습니다.먼저 알아둘 용어 (눌러서 펼치기)용어원래 이름쉽게 말하면MISRA CMotor Industry Software Reliability Association C자동차 업계가 만든 “C 언어 안전하게 쓰기” 규칙 모음정적 분석Static Analysis코드를 실행하지 않고 글자만 읽어 문제를 찾는 검사 (맞춤법 검사기처럼)QACPerforce QAC (구 Helix QAC)MISRA 검사에 많이 쓰는 정적 분..
디버거는 어떻게 코드를 한 줄씩 따라갈까 [초급]
·
임베디드 실무
디버거가 소스 코드를 한 줄씩 따라가고 변수 이름으로 값을 보여 줄 수 있는 건 ELF 파일 안의 디버그 정보 덕분입니다. 여기에는 "이 주소는 몇 번째 줄", "이 변수는 어느 주소"라는 정보가 들어 있고, 디버거는 이 정보로 모든 것을 주소로 찾아요. 그래서 주소가 고정된 전역·static 변수는 실행 중에도 보이지만, 주소가 계속 바뀌는 로컬 변수는 코어를 멈춰야 보입니다.먼저 알아둘 용어용어 34개 펼쳐 보기 (본문의 점선 밑줄 단어를 누르면 여기로 와요)용어원래 이름쉽게 말하면디버거Debugger (디버그 프로브)컴퓨터와 타깃 칩을 잇는 장비와 소프트웨어. 코어를 멈추고 메모리를 읽고 쓴다ELFExecutable and Linkable Format링커가 만드는 실행 파일 형식. 기계어와 디버그 ..
폴링 vs 인터럽트, 버튼을 톡 치면 왜 가끔 안 먹을까? [초급]
·
임베디드 실무
[초급] 폴링 vs 인터럽트, 버튼을 톡 치면 왜 가끔 안 먹을까?폴링은 MCU가 정해진 때마다 직접 핀을 보러 가는 방식이라, 메인 루프 한 바퀴보다 짧게 왔다 간 신호는 놓칠 수 있습니다. 인터럽트는 신호가 오는 순간 하드웨어가 하던 일을 잠깐 멈추고 담당 함수부터 실행하게 하는 방식이라 짧은 신호도 놓치지 않아요.먼저 알아둘 용어용어원래 이름쉽게 말하면MCUMicro Controller Unit계산·기억·입출력을 칩 하나에 담은 작은 컴퓨터예요메인 루프Main Loopwhile문 안에서 할 일을 한 바퀴씩 계속 도는 평소 업무 목록이에요폴링Polling정해진 때마다 직접 가서 확인하기, 현관문을 주기적으로 열어 보는 거예요인터럽트Interrupt일이 생기면 하드웨어가 하던 프로그램을 잠깐 멈춰 세우..
[초급] 풀다운이 더 직관적인데, 스위치엔 왜 풀업 저항을 쓸까?
·
임베디드 실무
[초급] 풀다운이 더 직관적인데, 스위치엔 왜 풀업 저항을 쓸까?풀다운 저항을 써도 스위치는 똑같이 잘 읽힙니다. 그래도 풀업이 기본인 건, 스위치로 가는 선이 쇼트됐을 때 풀업은 보드가 살아 있고 풀다운은 보드 전체가 꺼지기 때문이에요. '눌렀는데 LOW'라서 헷갈리는 문제는 코드 한 줄로 해결됩니다.입사 첫 달, 회로도를 보다가 이런 의문이 들었습니다. "풀다운으로 바꾸면 누를 때 1이라 파형도 안 헷갈릴 텐데, 왜 굳이 풀업이지?" 그땐 이유를 모른 채 넘어갔는데, 나중에 알고 보니 답은 '스위치까지 가는 선에 무엇이 실려 있나'에 있었어요. 이 글은 그 답을 따라가 봅니다.먼저 알아둘 용어용어원래 이름쉽게 말하면MCUMicro Controller Unit제품 속 작은 두뇌. 입력 핀으로 전압을 읽..
[초급] 차를 세워 뒀을 뿐인데 왜 배터리가 방전될까? 제어기 슬립(Sleep) 모드가 필요한 이유
·
임베디드 실무
[초급] 차를 세워 뒀을 뿐인데 왜 배터리가 방전될까? 제어기 슬립(Sleep) 모드가 필요한 이유차는 콘센트에 꽂힌 가전제품이 아닙니다. 시동을 끄면 발전기(알터네이터)가 멈추고, 그때부터는 충전 없이 배터리 하나로 버텨야 해요. 그런데 배터리에 직접 물린 제어기(B+ 전원)는 시동을 꺼도 전원이 끊기지 않습니다. 그래서 할 일이 없으면 스스로 일하는 상태(Normal)에서 조는 상태(Sleep)로 내려가 전류를 확 줄여야 합니다.먼저 알아둘 용어용어원래 이름쉽게 말하면ECUElectronic Control Unit차 곳곳에 들어간 작은 두뇌 상자, 우리말로 '제어기'MCUMicrocontroller Unit제어기 안에서 실제로 생각하고 명령하는 칩 한 개짜리 컴퓨터알터네이터Alternator엔진이 돌..
18진수
Embedded-Korea