전체 글 655

STM32/C언어 링버퍼(Ring Buffer) 인덱스 연산 최적화: 비트 마스크의 원리

안녕하세요. STM32와 같은 마이크로컨트롤러(MCU) 환경에서 UART, SPI 등 고속 시리얼 통신을 구현할 때, 데이터의 연속성을 유지하고 유실을 막기 위해 링버퍼(Ring Buffer) 자료구조를 많이 사용합니다. 링버퍼를 사용할 때 연산 중에 인덱스가 버퍼의 끝에 도달했을 때 다시 0으로 돌아가게 만드는 것이 있을 것입니다. 이때 일반적으로 나머지 연산자(%)를 사용합니다. 고성능/저전력 펌웨어를 개발할 때는 비트 AND 연산자(&=)를 활용한 최적화 기법을 사용하기도 합니다. 이번 글에서는 버퍼 크기 조건에 따른 비트 연산의 원리와 클럭 단위의 성능 이점, 그리고 오버런(Overrun)을 방지하는 안전한 C언어 구현 패턴을 알아보겠습니다. 1. 인덱스 순환: 나머지 연산자(%)와 비트 ..

Embedded/STM32 2026.08.19

필립스 파워다지기(Chopper) HR1501 사용후기

안녕하세요. 오랜만에 생활제품 후기를 적어보는 듯합니다. 이번에 요리를 하면서, 다진 마늘을 구매하려고 하는데, 물을 섞은 마늘과, 중국산 마늘을 사용한다, 깐 마늘 밑 딱딱한 부분 제거하지 않고 다진 마늘을 판다고 해서 직접 다진 마늘을 만들어 보자 생각했습니다. 그런데, 직접 하나씩 다지려고 하다 보니, 시간도 걸리고 손도 많이 갈 것 같아서, 다지기(Chopper)를 구매해 보았습니다. 처음에 수동도 생각해 보았지만, 후기와 가성비가 좋지 않아서 그냥 모터 빠르게 작업할 수 있는 것으로 선택했습니다. 1. 선택동기 마늘 다지기를 생각했고, 많이 사용하지는 않을 것이라고 너무 비싼 것까지 필요하지 않을 것이라 생각했습니다.검색해보면, 닌자, 브라운, 국산(신일, 한일...) 등 제품이 ..

[ABOV] Keil 코드 VS Code 이용해서 코딩과 빌드해보기

안녕하세요. 이전 글에서는 Keil을 설치해서 빌드하는 방법을 확인해 보았습니다.그러나 Keil 개발툴은 사실 최근 IDE툴만큼 개발에 편의성을 주고 있지 않습니다. 실제 개발을 하기 위해서 조금 편리한 기능을 제공해 주는 개발툴로 가능하지는 않을까 해서 VS Code에서 작업하는 것을 확인해 보았습니다. 먼저, 최신버전의 Visual Studio Code를 설치하고 실행합니다. 1. Keil Assistant Community Fork 설치 VS Code 왼쪽에 Extensions라는 사각 블록 아이콘을 선택한 후 Keil Assistant Community Fork라고 검색을 합니다. 최상단에 나오는 것을 install 눌러 설치합니다. 2. Keil Assistant Communit..

Embedded/ABOV MCU 2026.07.21

작은 기부 문화 만들기 24 - 지금 독립유공자 후손에게 안전한 보금자리를 마련해주세요

안녕하세요. 날씨가 더운 여름입니다. 그렇지만, 선풍기와 에어컨 바람을 쐬면서 있을 수 있는 것은 여러 곳에서 열심히 수고해 주시는 분들 덕분이라고 생각합니다. 조금 이르기는 하지만, 광복절이 다가오기도 하고, 나라를 위해 목숨을 바쳐 헌신해 주신 분들의 후손들이 아직도 남아계시기에 조금이나마 도움이 될까 해서 작은 기부를 해보았습니다. 사회가 어렵다고는 하지만, 작은 희망이 있어야 기쁨도 행복도 있지 않을까 합니다. 모두들 파이팅입니다. 1. 모금함 소개 독립유공자 후손이라는 영광 뒤에 남겨진 현실집안의 전 재산을 독립 운동에 바치고, 일찍 세상을 떠난 조부모님과 부모님.. 해방 이후 이념의 굴레 속에서 고초를 겪었던 독립 운동가와 그 후손들은 남들보다 더 가난한 집안에서 배움의 기회를 충..

[ABOV] MDK-Arm keil uVision 설치하고 A31 L123 RLN-A빌드해 보기

안녕하세요. ABOV MCU를 빌드하려면 ABOV사에서 제공해 주는 툴도 있고, IAR, Keil도 있는데, 그중에 Keil을 이용해서 빌드해 보려고 합니다. 이유는 VS Code연동해서 개발을 조금 편하게 해 보려고 생각했습니다. 그냥 설치하고 빌드하면 되는 거 아니야. 생각할 수 있지만, A31L 시리즈만 그런 것인지는 모르겠지만, 버전이 조금 오래되다 보니, 최신 MDK 버전으로 하면 빌드되지 않았습니다. 사실 글을 쓰기 전에 몇 가지 MDK-Arm 버전을 설치했고, 시행착오 끝에 현재 최신 버전으로도 가능하구나 알게 되었는데, 이것도 이전 버전의 컴파일러를 설치해야 해서 그나마 최신 버전이면서 설정을 최소한 버전으로 가능한 것이 MDK536라는 것을 확인했습니다. 다른 분들은 시간 낭비하지..

Embedded/ABOV MCU 2026.07.18

[ABOV] MCU Starter Kit A31L123RL2N 개봉기

안녕하세요. ABOV MCU를 사용하는 프로젝트를 접하게 되었습니다.처음 접하는 MCU라 어떻게 사용해야 하는 것인지 몰라서 자료를 찾아보았습니다. 국내제품이고, 사용하는 업체가 많이 없다 보니 자료가 많지는 않았습니다. 그래서 ABOV사이트에 들어가 보니, 프로젝트와 유사한 32bit MCU Starter Kit이 있어 구매해 보았습니다. 아직 이 MCU에 대해 잘 모르지만, 조금이나마 도움이 될까 하여개봉기와 간단하게 작업하는 내용들을 공유해 보도록 하겠습니다. 그리고 내용에서 STM32와 차이를 이야기하지 않을까 생각이 들기도 합니다. 1. Starter Kit_A31L123RL2N 개봉기포장은 단순하게 왔습니다. 안에는 스타트킷 보드 하나가 있습니다.STM32 Nucleo Board의 옛날 느..

Embedded/ABOV MCU 2026.07.08

[MFC/C++] LPCTSTR과 CString의 차이점 및 가변 인자 함수에서의 올바른 형변환 원리

안녕하세요. 최근에 MFC(C++) 테스트해 보면서 궁금증이 있는 것을 조금씩 찾아보고 있습니다. 그중에 LPCSTR 데이터 타입이 있어서 확인한 내용을 공유해 보았습니다. Windows API 및 MFC(Microsoft Foundation Class) 환경에서 윈도우 애플리케이션을 개발할 때 문자열 처리는 가장 빈번하게 발생하는 작업 중 하나입니다. 이 과정에서 자주 사용되는 LPCTSTR 자료형과 CString 클래스의 구조적 차이를 이해하고, 특정 상황에서 명시적 형변환((LPCTSTR))이 왜 필수적인지 컴파일러와 메모리 관점에서 확인해 볼 필요가 있습니다. 1. LPCTSTR의 정의와 의미 LPCTSTR은 마이크로소프트의 윈도우 환경에서 하위 호환성과 개발 편의성을 위해 정의한 가상 매..

[8051] Keil Compiler의 Logic Analyzer 기능 사용해 보기

안녕하세요. 이번에 8051 관련 작업해 볼 것이 있어서, Keil 컴파일러를 사용해 보았습니다. 그러는 중 Logic Analyzer 기능이 있어서 사용방법을 적어보았습니다. 이미 아시는 분들이 계시겠지만, 모르시는 분도 있을 것 같아서 간단하게 공유해 보겠습니다. 1. 사용 환경 및 프로젝트 생성 - Windows11 - Keil 공식 사이트에서 C51V961.exe 평가판 다운로드해서 설치 - AT89C51 디바이스로 선택 프로젝트 생성, - Project -> Options for Target 메뉴를 선택한 후 Xtal를 12.0MHz로 설정 (이것은 사용하는 클럭에 맞게 조정 가능하나, 딜레이 함수와 관계있음) 2. 테스트 코드 작성 - 간단하게 포트1에 LED가..

Embedded 2026.06.06

[MFC] MFC 연습을 위한 초 간단한 주소록 만들어보기

안녕하세요. 새로운 업무를 하게 되면서, MFC를 사용해 보게 되었습니다. 요즘은 MFC를 많이 사용하지 않는 것 같아 자료들이 점점 줄어들고 있는 것 같습니다. 현장에서도 Qt 혹은 C#과 같이 상위 프레임워크로 넘어가는 것 같지만, 이미 개발된 현장에서는 유지 보수 등 이유로 아직 사용하는 것 같습니다. MFC를 실무에서 사용해 본 적이 없어, 널널한 개발자 TV 님의 강의를 보면서 주소록 만들기를 따라 해 보았습니다. 기본 주소록 추가, 검색 기능과 간단하게 파일 저장, 불러오기 심화내용으로 기능을 추가해 보았습니다. 그리고 간단한 버그도 수정을 하였습니다. 기본 MFC로 만드는 내용은 아래의 강의를 참고하시면 도움이 될 것이라고 생각됩니다. 영상이 1시간이지만, 처음 배우시는 분에게..

그때 그 책이 아니었더라면, 독서후기

안녕하세요. 1. 책 선택 이유 얇으면서도 의미가 있는 책을 찾고 있었습니다. 그러는 중 12권을 책을 통해 인생을 다시 세웠다고 해서, 12권이 책이 무엇일까 궁금해서 보게 되었습니다. 사실 12권의 책이 바로 나와 있었으면 보지 않았을 수도 있는데, 무슨 책인 거야 궁금해서 보다가 다 읽게 되었습니다. 2. 간략한 내용 소개 “매일이 버거웠습니다. 숨 쉬는 것조차 힘들던 시기, 세상은 무심했고 누구도 손을 내밀어주지 않았습니다. 삶을 포기하고 싶던 그날, 우연히 한 권의 책이 눈에 들어왔습니다. 그 책은 어둠 속의 유일한 빛이었고, 저자는 그날 이후 매일 한 권씩 책을 읽기 시작했습니다.” 『그때 그 책이 아니었더라면』은 책을 통해 무너진 삶을 다시 세운 한 사람의 기록이다. 어떤 화려한 말..

opencode에 llama3.1:8b 연동해 보기

안녕하세요. 이전 글에서는 llama3:8b로 연동이 되지 않았습니다. 조금 아쉬움이 있어서, 자료를 찾아보았는데, llama3.1:8b은 가능할 거라고 해서 확인해 보았습니다. 결론 먼저 이야기하자면, 연동되는 것을 확인했습니다. 그래서 간단하게 사용하는 방법을 남겨보았습니다. 이전 글에서 작업한 것과 동일하게 WSL로 Ubuntu를 실행한 후 아래 작업을 진행하면 됩니다. https://remnant24c1.tistory.com/686 Windows(WSL)에서 OpenCode CLI 설치해 보기안녕하세요. 최근에는 코딩을 하면서 무료 GPT나 Gemini 등 도움을 받아 사용하기도 했습니다. 그런데 코딩 부분을 복사해서 하는 것이 아니라, 구조를 짜주거나 맥락 자체를 파악해서 코드를 만들re..

작은 기부 문화 만들기 23 - 성장기 청소년의 마음을 지키는 단짝 어른의 속옷 선물 동행

안녕하세요. 5월은 가정의 달로 먼 이웃들을 돌아보는 시간이 아니라, 바로 옆에 있는 가족을 돌아보는 시간이 아닐까 합니다. 나의 부모님, 형제, 자매들을 보며 감사와 고마움을 나누는 시간이 되었으면 합니다. 이런 시간을 가지지 못한 친구들이 아직 많이 있으니, 한번 돌아보는 것도 필요해 보입니다. 어린 친구들이 자라서 한 가정의 부모가 되어 사회 구성원이 되니깐요. 1. 모금함 소개 "선생님, 저 들어가도 돼요?" 속옷 매장 앞, 세진이(가명)가 문 앞에서 한참을 머뭇거립니다. 한 번도 와본 적 없어 낯설고 쑥스러웠지만, 3년 동안 친구처럼 많은 시간을 함께한 멘토선생님의 손에 이끌린 채, 용기 내서 매장으로 들어갑니다. 자기 몸에 맞는 속옷이 무엇인지 측정도 하고, 관리방법과 위생속옷의 필요..

Windows(WSL)에서 OpenCode CLI 설치해 보기

안녕하세요. 최근에는 코딩을 하면서 무료 GPT나 Gemini 등 도움을 받아 사용하기도 했습니다. 그런데 코딩 부분을 복사해서 하는 것이 아니라, 구조를 짜주거나 맥락 자체를 파악해서 코드를 만들어주는 Claude Code라는 것을 알게 되었습니다. 그런데 마음 놓고 사용하기에는 비용을 많이 들어가다 보니 무료로 사용할 수 있는 것을 찾아보았습니다. 그러는 중에 opencode를 알게 되어 설치해 보았습니다. 1. OpenCode 설치 전 OpenCode를 설치하기 전에 WSL 등 몇 가지 작업해야 합니다. 먼저 아래 글을 확인 후 다음 내용을 보시는 것을 추천드립니다. 혹시 WSL로 Linux를 설치했다면 다음 이 부분은 넘어가도 됩니다. (현재 llama3:8b 버전은 opencod..

누구나 쉽게 시작하는 방구석 1인 앱 창업, 독서후기

안녕하세요. 1. 책 선택 이유 프로그램 개발자로서 간단하게 앱 창업을 생각해 볼 수도 있겠다고 생각했습니다. 신간으로 나왔고, 재택으로 해 볼 수 있지 않을까 생각이 들어 보게 되었습니다. 1인이지만, AI의 도움으로 어디까지 가능할까 해서 읽어보았습니다. 2. 간략한 내용 소개 아이디어만 있으면 누구나 앱으로 창업할 수 있다 이 책은 앱을 처음 만드는 사람도 실제로 창업까지 도달할 수 있도록 안내하는 실전 가이드다. 리액트 네이티브를 활용해 타로 앱을 직접 기획·개발·출시하는 과정을 따라가며, 단순한 기능 구현을 넘어 사용자를 모으고, 유지하고, 수익으로 연결하는 방법까지 다룬다. 많은 앱 개발서가 ‘어떻게 만들 것인가’에서 멈춘다. 하지만 현실에서는 앱을 완성한 뒤부터가 진짜 시작이다. 아..

Book Report/IT&Tech 2026.05.03

"[Coming June 2026] Raspberry Pi support for STM32CubeProgrammer" 번역 내용

안녕하세요. st.com에서 재미난(?) 지원(Support) 예정이라는 글이 있어 가지고 왔습니다. stm32시리즈를 사용하시는 분들은 아시겠지만, 다운로드를 하기 위해서 PC 혹은 최소한 미니 PC가 있어야 합니다. 아니야, hex 파일을 저장하고 있다가 선택해서 다운로드 가능한 제품도 있다고 이야기할 수도 있습니다. 정말 비싼 것은 모르겠지만, 현재 본 것은 특정 MCU 정도만 지원하다 보니 여러 MCU에 적용할 수 없었습니다. 그런데, 2026년 06월 st에서 Raspberry Pi support for STM32CubeProgrammer를 출시할 것이라고 커뮤니티에 글이 올라와서 이렇게 한번 공유해 봅니다. 예전에 PC 말고, Raspberry Pi(Arm)용 있으면 가지고 가서 다..

Embedded/STM32 2026.04.24

Windows 환경에서 Ollama(llama3) LLM 프레임워크 설치해 보기

안녕하세요. AI 시대가 되면서, ChatGPT라는 용어는 많이 들어 봤을 겁니다. 그리고 조금 더 알고 있다면 LLM이라고 까지 들어보았을 거라 생각됩니다. 그런 인공지능 모델을 개인 PC에 작동시키는 것을 해보려고 합니다.모든 PC에서 가능하다는 것은 아니고, GPU를 별도로 가지고 VRAM도 어느 정도 되는 것을 확인해 보려고 합니다. 인공지능 모델을 실행하기 위해서는 LLM(Large Language Model, 대규모 언어 모델) 실행도구를 먼저 설치해야 합니다. 많은 것들 중에 메타에서 배포하고 있는 Ollama를 설치하고 llama3 모델을 올려 실습해 보겠습니다. 사실 최종 목적은 코딩하기 위한 도구로 사용해 보기 위함입니다. 1. LLM 실행 도구 (LLM Runner), Ol..

결핍은 우리를 어떻게 변화시키는가, 독서후기

안녕하세요. 1. 책 선택 이유 경제 유튜브를 보는 중에 우리의 선택에 있어 영향받는 것이 있고, 그중 결핍에 관련된 것에 연관성이 있을 수 있다며, 추천하기에 읽어 보았습니다. 2. 간략한 내용 소개 결핍의 원리에 대한 혁신적 분석을 바탕으로세계 최고 석학들이 내놓은 삶의 해법 과도한 이자를 물며 돈을 빌리거나, 반복적으로 약속에 늦고, 다이어트를 결심해도 며칠을 못 버티는 사람들. 이처럼 경솔한 행동을 하는 사람들의 공통점은 무엇일까? 하버드대 경제학과 교수 센딜 멀레이너선과 프린스턴대 교수 엘다 샤퍼는 『결핍은 우리를 어떻게 변화시키는가』에서 흥미로운 답을 제시한다. 이들의 비합리적인 행동은 개인의 지능이나 자제력 부족이 아닌, ‘결핍’에서 비롯된다는 것이다. 물론 결핍이 반드시 부정적인 ..

작은 기부 문화 만들기 22 - 숨이 막히는 회색 도시, 초록색 숨구멍을 뚫어주세요!

안녕하세요. 추운 겨울이 지나가고 봄이 왔습니다. 날씨도 선선해서 놀러 가기도 좋은 시간인 것 같습니다. 그러나 이러한 자연을 누리기 위해서는 자연을 한 번쯤 생각해야 하지 않을까 합니다. 당연이라는 것은 존재하지 않듯이 자연을 보전하고 잘 관리하는 것이 필요할 것입니다. 식목일이 다가오는 것도 있고 해서 직접 나무를 심을 수는 없지만, 자연이 회복되는데 최소 묘목 한 그루는 도움이 될 것 같은 곳에 이번에 기부를 했습니다. 1. 모금함 소개 펄펄 끓는 도시, 우리는 열 돔 안에 갇혀 있습니다.지난여름, 유난히 길고 뜨거웠던 폭염을 기억하시나요? 아스팔트 위로 아지랑이가 피어오르고, 밤에도 식지 않는 열기에 잠 못 이루는 날들이 계속되었습니다. 기상청 자료에 따르면 우리나라는 지난 100년간 평균..