Computer Science
탄탄한 기반 실력을 위한
전공과 이론 지식 모음
Today I Learned!
배웠으면 기록을 해야지
TIL 사진
Flutter 사진
Flutter로 모바일까지
거꾸로캠퍼스 코딩랩 Flutter 앱개발 강사
스파르타코딩클럽 즉문즉답 튜터
카카오테크캠퍼스 3기 학습코치
프로필 사진
박성민
임베디드 세계에
발을 들인 박치기 공룡
임베디드 사진
EMBEDDED SYSTEM
임베디드 SW와 HW, 이론부터 실전까지
ALGORITHM
알고리즘 해결 전략 기록
🎓
중앙대학교 소프트웨어학부
텔레칩스 차량용 임베디드 스쿨 3기
애플 개발자 아카데미 1기
깃허브 사진
GitHub
프로젝트 모아보기
Instagram
인스타그램 사진

분류 전체보기 397

[MCU] GPIO 실습 : USER Button과 LED 켜기

이전 GPIO의 HW와 설정에 대해서 정리한 내용에 대해서 실제 보드의 코드로 잘 이해했는지 확인해보자.ㅤSTM32F429ZIT6 / NUCLEO-144 Boards 를 기준으로 작성되었습니다.ㅤLED 켜보기메모리 주소를 이용해 HAL 없이 LED를 켜보자우선 다큐먼트와 회로도에서 LED가 어디에 연결되어있는지 확인해야한다. 내가 켜보고싶은 파란색 LED인 LD2 는 GPIO Pin PB7 과 연결되어있다.ㅤㅤ위 회로도를 볼 때, LD2가 ON일 때는 PB7의 출력이 HIGH이고, LD2가 OFF일 때는 PB7의 출력이 LOW가 되어야 함을 알 수 있다. 정리하자면 LD2를 toggle하기 위해선 PB7에 HIGH와 LOW 신호를 control 할 수 있어야 한다.ㅤ그렇다면 PB7에 어떻게 출력 신호를 ..

[MCU] 빌드 프로세스와 컴파일 환경

지금까지는 VSCode와 여러 IDE의 도움으로 내가 작성한 코드에 대해서 “빌드하기” 버튼을 누르면 마법과 같은 일이 일어나서 프로그램이 실행된다! 라고 생각해왔다고 볼 수 있다. 왜냐면 빌드하면 진짜 IDE가 알아서 컴파일, 어셈블링, 링킹을 거쳐 실행파일을 만드는걸 다 해줘왔거든. 그래서 이게 어떤 절차로 이루어지는지 크게 궁금하지도 않았었다. 학부 1학년때에나 간략하게 짚고 넘어가는 과정이여서 1학년때는 관심이 크게 없었고, 그 이후로도 쭉 관심을 크게 가지지 않고 지나왔던 부분인 것 같다.ㅤ그런데 이제 임베디드 세상으로 온 이상, 더 이상 마법같은 일이라고 부를 수는 없을 것 같다. 혹시나 내가 사용해야 하는 보드가 딱 적합한 IDE를 지원하지 않으면서, 특정 경로에 있는 헤더파일과 DLL을 링..

Embedded System/MCU 2025.10.27

[MCU] GPIO의 하드웨어 구조와 데이터시트, 침침한 눈을 곁들인

STM32F429ZIT6 / NUCLEO-144 Boards 를 기준으로 작성되었습니다.ㅤ레퍼런스 메뉴얼 참고 링크https://www.st.com/resource/en/reference_manual/dm00031020-stm32f405-415-stm32f407-417-stm32f427-437-and-stm32f429-439-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdfㅤ실습을 하면서 계속 GPIO, GPIO 라는 키워드가 반복해서 나왔다. GPIO라는게 General Purpose Input / Output 이라는건 알고있었는데, 그래서 이게 정확히 어떤거냐? 라는 질문을 받아보니 말문이 턱 막히더라. 범용으로 사용한다는건 설정값들을 바꿔서 휘뚜루마뚜루..

Embedded System/MCU 2025.10.24

[ARM] ARM Processor Architecture - 2 : ARM 레지스터 구조와 Exception

ARM의 레지스터와 프로세서 모드이전 글에서 잠깐 소개했지만, 조금 더 디테일하게 들어가보자.ㅤ레지스터 구조ARM Cortex-A 프로세서에는 43개의 물리적인 레지스터가 있다.범용 레지스터:R0~R7: 8개 (모든 모드 공유)R8~R12: 7개 (User/System) + 5개 (FIQ) = 12개R13: 6개 (모드별로 다름)R14: 6개 (모드별로 다름)R15: 1개 (PC, 모든 모드 공유)상태 레지스터:CPSR: 1개SPSR: 5개 (각 예외 모드마다)눈여겨 볼 점은 8개의 레지스터 R0~R7 은 모든 모드에서 범용으로 사용하고, R8~R12 는 나머지 모드에서는 모두 공용으로 사용하지만 FIQ(Fast Interrupt reQuest) 에서는 별도의 레지스터를 사용한다..

[251021] Day 71 - 겨울이 온 것 같아요

들어가며날이 너무 춥다. 장판 틀었다. 이게 옥탑방의 추위인가 싶기도 하다. 방한이 안되어서 그런건진 몰라도 벌써부터 바닥이 챱챱한게 얼어죽겠네. 센터에 최대한 오래 남아있어야겠다. 오늘의 키워드ARM Processor Architecture Introduction월요일부터 ARM Processor 아키텍처에 대해서 공부하고 있다. 그리고 이왕 적는거 시리즈로 한 번 남겨보려고 한다. 거의 5-6년 전에 공부했던 내용들이라 가물가물하긴 한데, 내 기본기로 한 번 부딪혀보면서 해내봐야지.[ARM] ARM Processor Architcture - 0 : Introduction [ARM] ARM Processor Architcture - 0 : Introduction개인적으로 C언어를 작성하고 컴퓨터에 대한..

TIL 2025.10.22

[ARM] ARM Processor Architecture - 1 : Introduction

개인적으로 C언어를 작성하고 컴퓨터에 대한 로우레벨을 이해하려고 할 때 가장 크게 도움이 되었던 이론이 컴퓨터구조 였다고 생각된다. 수업을 들으면서 내 머릿속에서는 ‘아, C언어에서 함수를 호출하면 이렇게 스택에 쌓이고 Stack Pointer를 통해 파라미터를 가져와 사용하겠구나! 그러고 리턴값이 register에 담겨서 넘어가겠구나’ 라는 생각이 바로바로 들어왔다. 그런데 이런 배경 지식이 없는 상태에서 수업을 들었다면 ‘C언어에서 어셈블리 코드로 변환되고 이걸 기계어로 CPU가 처리하는데, 마법이 일어나서 결과를 전달하겠군’ 정도로 밖에 생각할 수 없었을 것 같다.ㅤ그래서 임베디드 공부를 할 때에도 베이스 아키텍처에 대한 지식이 탄탄하게 잡혀있으면 이후에 복잡하고 어려운 컨셉들이 제시되더라도 “아,..

[251020] Day 70 - 나 어쩌면 열심히 살았나봐

들어가며내가 이번에 C언어 중간점검을 우리 반 내에서 1등을 했다고 한다. 오호라!! (대충 신나서 엉덩이 춤추는 농담곰 이모티콘 GIF) 나 되게 틀린 문제가 많은데 (만점 44점 중에서 28점 … 100점 만점에 68점) 꽤나 좋은 점수를 받아서 내심 기분이 좋았다. 그래도 주말간 정리했던 것처럼 C에서 아직 내가 구석구석 모르는 부분들이 많이 등장하는 것 같아서 C 기초를 열심히 다져놔야겠다는 생각이 계속 든다.ㅤ강사님이랑 이번에 내 백그라운드를 얘기하면서 어떤 부분에 집중하면 좋을지에 대해서 질문을 남겼는데, 생각보다 자존감이 좀 올라가는 답변을 들었다. 기존에 내가 앱개발을 했었기 때문에 OS 위의 내용들이 나의 강점이라고 생각하는데, 그렇다면 OS 위에서 돌아가는 APP 계층의 C++로 작성되..

TIL 2025.10.20

[STM32] HAL 드라이버란?

이번에 STM32 개발 실습을 진행하면서 계속해서 HAL 이라는 키워드가 나왔다. 약간 namespace 같은건가? 싶었는데, 이게 라이브러리였다. 코드 작성하면서 눈치껏 이해했더니 이게 직접 레지스터를 건드리는 작업들이 복잡하고 실수가 많이 나올 수 있으니, 이 구조를 미리 묶어서 함수로 제공하는 형태인 것 같았다. 그래서 HAL 라이브러리가 무엇인지, 그래서 HAL을 써야하는지 말아야 하는지에 대해서 한 번 정리해보려고 한다. HAL이 뭐냐면>The HAL drivers are designed to offer a rich set of APIs and to interact easily with the application upper layers. Each driver consists of a set o..

Embedded System/MCU 2025.10.19

[251018] Day 68 - 텔레칩스 임베디드 스쿨 2개월차 회고이자 리뷰이자 후기

들어가며구글에 텔레칩스 임베디드 스쿨 후기를 검색하면 내 게시글이 제일 1등으로 나오고 있다고 제보가 들어왔다. 이게 진짜네… 이거 열심히 작성해두면 나중에 4기, 5기에서 지원할 때 사람들이 많이 참고하겠다 싶다. 또 모르지, 내가 예전에 애플 개발자 아카데미 포트폴리오 올렸던걸로 사람들이 나한테 “사실 애플 아카데미 지원할 때 성민님 포트폴리오 보고 준비했었어요. 그래서 낯이 익어요 ㅎㅎ” 라면서 iOS 컨퍼런스에서 말을 걸어왔던 것처럼, 나중에는 “성민님 텔레칩스 후기 글 보고 지원했어요!” 라고 또 대화의 물꼬가 틀어져서 네트워킹에 도움이 될 수도 있으니깐.ㅤ그… 나 아는 사람이면 여기 들어와서 열심히 쓴 글에 좋아요도 눌러주고 광고도 하나씩 눌러서 나한테 0.01달러라도 쥐어주고 나갔으면 좋겠어..

TIL 2025.10.19

[251017] Day 67 - Cㅂ 또 까먹었네

들어가며오늘 아침에 크로스핏 출석 예약을 해두고 너무 피곤해서 못나갔다. ㅜㅜㅜ 12시에 눕는것도 좀 늦나보다. 앞으로는 11시 반에 누우려고 노력할 것.ㅤ오늘 C언어 테스트를 봤다.1달 지나긴 했어도 C로 코드 작성하는 것과 개념들을 잘 배워서 기억하고 있다고 생각했는데, 아니였군 아니였어. 강사님께서 다른 기업에서 요청을 받아 돈받고 출제했던 문제들이라서 문제 자체를 공유할 수는 없겠지만, 내가 놓쳤던 부분들에 대해서는 컨셉과 키워드를 잘 적어두려고 한다.ㅤ오늘의 키워드C언어 테스트 오답노트배열과 Union을 사용할 땐 메모리 번지수 계산을 잘하자번지수 계산을 잘하자. 단순히 그냥 배열에서 몇 번째? 이런거 판단할때는 왼쪽에서 오른쪽으로 읽는게 자연스럽지만, bit 단위의 계산과 메모리 단위의 계산을..

TIL 2025.10.18