디버거는 어떻게 코드를 한 줄씩 따라갈까 [초급]
·
임베디드 실무
디버거가 소스 코드를 한 줄씩 따라가고 변수 이름으로 값을 보여 줄 수 있는 건 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엔진이 돌..
[초급] 워치독은 왜 필요할까? 아무도 리셋 버튼을 눌러 줄 수 없을 때
·
임베디드 실무
[초급] 워치독은 왜 필요할까? 아무도 리셋 버튼을 눌러 줄 수 없을 때한 줄 답: 워치독은 멈춘 기계를 스스로 다시 일으켜 세우는 "자동 리셋 버튼"이에요.코드가 정상일 때는 정해진 시간마다 워치독에게 "나 살아 있어" 신호(클리어)를 보냅니다. 이 신호가 끊긴 채 타임아웃이 지나면 워치독이 MCU를 리셋하죠. 버그를 고쳐 주진 않지만, 기계가 멈춘 채로 영원히 서 있는 최악의 상황만큼은 막아 줍니다.먼저 알아둘 용어용어원래 이름쉽게 말하면워치독Watchdog Timer (WDT)정해진 시간 안에 "나 살아 있어" 신호가 없으면 칩을 깨우는 경비견 타이머리셋Reset칩을 막 전원을 켠 상태로 되돌리기. 한마디로 재부팅클리어Clear (Refresh, Kick, Feed라고도 해요)경비견에게 밥 주기. ..
18진수
Embedded-Korea