연결된 USB 디바이스 목록을 보여주는 리눅스 계열의 명령어인 lsusb가 당연히 macOS에서도 있는줄 알았지만, 따로 설치를 해야 한다. 그렇지않다면 일일이 시스템 정보에 들어가서 USB 디바이스 목록을 살펴봐야 하기 때문에 매우 불편하여 찾아본 결과 역시 brew로 설치가 가능하다.$ brew install lsusbbrew로 간단히 설치가 가능하며, macOS에선 PL2303 드라이버가 설치되어 있지 않아서 추가로 설치해야 한다. 일단 macOS에서 인식은 제대로 되었는지 확인하기 위해 lsusb 명령어를 치면 아래와 같이 출력되는 것을 확인할 수 있을 것이다.Prolific PL2303 디바이스가 인식된 것을 확인하였고, USB Serial 드라이버를 아래 명령어를 사용하여 간단하게 설치가 가능..
설치형 블로그인 태터툴즈로 시작한 블로그를 호스팅 비용 부담과 각종 스팸성 댓글로 인해 2006년에 티스토리에 둥지를 만들었다. 여러가지 이유로 블로그 데이터를 다 지우고 다시 시작한 "기억저장소" 블로그가 언제까지 유지될 지 모르겠다. 티스토리가 요즘 행보를 보면 다음의 여러 서비스를 종료했듯이 수익성 악화되는 사업인 티스토리를 종료하지 않을까 싶다. 어떻게든 떠나가려든 유저를 붙잡기 위해 챌린지 이벤트다 뭐다 하는데 이것도 신통치 않으니 요즘은 챌린지 이벤트도 더 이상 진행하지 않는 것 같다. 그리고 티스토리 장점인 애드센스 설치도 약관 변경으로 카카오 자사 애드센스 광고도 강제로 삽입되니 블로그가 아주 광고판이 되는 것 같아 계속 유지해야 되나 싶기도 하다. 이러다보니, 이런저런 자료를 정리하기 위..
STM32 빌드환경을 CubeIDE가 아닌 직접 빌드 시스템을 구성하여 개발중에 있다. 그런데 지난달 vscode c/c++ extension이 업데이트 되면서 ctag 기능이 동작하지 않는 것을 확인하였다. 당연히 난 extension 버그려니 했는데 지난주 업데이트 했음에도 문제가 해결되지 않았다. 임시방편으로 1.22.11 버전으로 롤백하여 사용하였는데 오늘 문제의 원인을 찾아 블로그에 정리해 둔다. vscode에서 comiple_commands.json 기반의 ctag 기능이 활성화 되지 않으면 아래와 같이 소스 트랙킹에 아주 불편함을 느끼게 되기 때문에 이 문제는 반드시 extension이 수정되거나, 내가 문제의 원인을 찾아 수정해야 한다.ctag가 안되려면 다 안되던가... 어떤 것은 트랙킹..
회사에서 맥북을 받아 사용하면서 윈도우 노트북과 차이점을 체감했던 것이 바로 마우스 없이 노트북 사용에 전혀 불편함이 없다는 것이었다. 뭐 그래픽이나 PPT 작업을 하지 않아서 그럴수도 있겠지만, 코딩할 때는 딱히 불편함이 없었다. 그리고 생각보다 트랙패드 터치로 인한 키 입력 오류는 생각보다 발생하지 않아서 이래서 사람들이 트랙패드가 최고라는 말을 새삼 느끼게 되었다. 퇴사자가 사용했던 트랙패드를 몇개월전에 받았지만, 산적해 있는 일도 많고 사내에선 노트북을 덮고 쓰기 때문에 외장 키보드와 마우스로 작업하여 트랙패드를 딱히 사용하지 않았다. 하지만 맥미니를 구입한 기념으로 트랙패드를 제대로 사용해보고자 지난 구정 연휴동안 사내 트랙패드를 집으로 잠시 가져와서 사용해본 결과 신세계를 경험되어 당근으로 중..
Mac Mini M4를 구입하고 지름신이 제대로 강림하셨다. 일단 맥미니는 USB-A 단자가 없기 때문에 USB 허브 사용은 필연적이기 때문에 보다 깔끔한 환경을 원하는 사람으로 너저분한 케이블이 아닌 ThinkPad X21에서 사용했던 포트리플리케이트 같은 제품이 없나 찾아보니, 맥 미니에선 도킹 스테이션(?)이라고 명명하고 판매하고 있었다. 알리익스프레스에서 여러 제품을 찾을 수 있었으나, 내 맘에 쏙 든 제품은 하기비스 제품이었다. 세로측은 눈에 거슬려서 일단 배제하고 오리코 제품도 맘에 들긴 하였지만 디자인 측면에서 하기비스 제품이 더 맘에 들었다. 그리고 오리코 제품은 NVME가 포함되어 있어 넘사벽 가격으로 일단 패쓰였다. 하기비스 제품의 아쉬운 점은 NVME 인클로저가 포함되어 있어, USB..
STM32에서 Bootloader를 만들어 사용하는 예제는 인터넷에 많이 있어 상세한 설명은 생락한다. Bootloader는 Non-OS 방식으로 동작하고, Main(Jump) Application은 FreeRTOS로 동작할 경우, FreeRTOS의 port.c에서 실행에 필요한 시스템 설정을 하였기 때문에 Bootloader에서 Main App로 점프하기 전에 __disable_irq()만 실행하면 되었는데, Main App가 Non-OS로 동작할 경우 Bootloader에서 추가작업이 필요하다. MainApp가 Non-OS인 경우 Bootloader에서 __disable_irq()를 실행할 경우 MainApp에서 Vector Table을 설정하고 __enable_irq()를 실행하지 않으면, irq ..
Mac Mini에 STM32CubeIDE를 설치하고 빌드 되는지만 확인했는데, 지난주에 부트로더 작업 중에 찝찝한 부분이 있어 확인하려고 핀맵 설정하고 다운로드 하려고 했는데 아래와 같은 에러 메시지가 출력되고 실행되지 않는 문제가 발생하였다.검색해보니 macOS 14 버전부터 발생한 문제이며, STM32CubeIDE 설치시 STLink-Server가 포함되지 않고 누락되어 발생한 문제인 것 같다. 개인적으로 핀맵 설정을 제외하고는 CubeIDE에서 개발하지 않아 이런 문제가 있었는지도 오늘에서야 알게 되었다. 구글링 결과는 PATH도 설정해야 하고 콘솔에서 루트 권한(sudo)로 실행해야 된다고 하는데, 내 경우에는 STLink-Server 설치로 간단히 해결되었다. STM32 개발환경이 CubeIDE..
깡통 Mac Mini4를 구입할 때 가장 신경쓰인 부분이 바로 램과 SSD 용량이다. 회사에서 사용하는 맥북은 32GB / 1TB 시스템으로 구성되어, 사용에 큰 문제가 없었다. 램 사용량을 체크해보니 22-24GB 사이에서 사용하고 있었고, SSD는 300GB 정도 사용하고 있어 깡통을 사도 될란지 살짝 걱정이 앞서지만 그렇다고 램과 SSD 용량을 추가할 경우 구매가가 안드로메다로 가서 가성비 갑이 아니라 비싼 미니PC가 되거나 차라리 Mac Mini Pro를 구입하는게 나을것 같다는 생각이 들었다. 주로 개발에서 사용하는 프로그램은 Visual Studio Code이며, Borad Bring-up할 때 핀맵 설정을 위한 STM32CubeIDE를 아주 가끔 사용하기는 한다. 그리고 소스코드 diff-t..
참 오랜만에 블로그에 포스팅하는 것 같다. 작년 한해 정말 다사다난 했고, 정신없이 개발 일정과 개발 품질이라는 내적 갈등 속에서 어떻게 지나갔는지 기억이 없을 정도다. 올 초부터 한숨 돌릴 수 있는 환경이 되고, 고생한 나를 위한 선물로 무엇을 할까 하다가 그동안 넘사벽 가격으로 엄두도 내지 못했던 macOS 제품인데, 드디어 구매력이 생긴 제품이 출시하여 눈 딱 감고 지르기로 하였다. 그것은 바로 가성비 갑으로 알려진 바로 Mac Mini4 이다. 물론 가성비 갑을 느끼기 위해 깡통 모델로 대학생 조카의 교육 할인을 적용하여 74만원이라는 부담되지 않는 가격에 구입하게 되었다. 원래 작년 말에 구입하려고 하였으나 신학기 프로모션 기다렸지만, 역시 애플은 램 증가 시킨 것으로 만족하라고 하는 것 같다...
macOS 디렉토리를 돌아다니다 보면, 어느순간 .DS_Store 파일이 생성되어 소스트리가 변경된 것으로 인식한다. 우리가 관리하는 소스트리는 .gitignore에 .DS_Store 파일을 등록하면 되지만, 오픈소스를 서브모듈로 등록할 경우 .DS_Store 파일 생성으로 변경된 것으로 인식된다. 이것이 은근히 눈에 거슬려 macOS에서 .DS_Store 파일을 무엇인지 찾아보니, macOS 파인더를 통해 디렉토리를 접근하면 자동으로 생성되는 파일로 디렉토리 구조와 특성(크기, 아이콘 보기 방식)등의 디렉토리 정보들을 인덱싱하는데 사용하는 파일 같다. 난 이런 파일이 생성되는 것이 거슬리기 때문에 비활성 시키는 방법을 찾아보니, 간단한 명령어로 비활성 시킬 수 있는 것을 확인했다. 네트워크 드라이브나 ..
오늘 흥미로운 기사를 하나 보았다. DAUM 점유율이 4% 이하로 떨어졌다는 기사를 보게 되었다. 솔직히 아고라 시절까지 다음을 애용했으나, 몇 년전부터 아주 맛이 가서 정부나 검찰 기관지 포탈인지 의심스러울 정도였고, 카카오로 합병되면서 다음 클라우드 같이 돈 안되는 사업을 무조건 접는 회사 운영 시스템이 맘에 들지 않아 이용을 줄이고 있었다. 한때 국내 포털 1위였는데 점유율 4%로 추락....충격적인 ‘다음’ 근황과거 국내 포털 1위를 기록했던 다음이 점유율 4%까지 추락해 존폐 위기까지 거론되고 있다.www.insight.co.kr최근들어 그런 모습이 너무 노골적이라 카카오톡을 제외한 나머지 서비스는 거의 사용하지 않거나 탈퇴를 하였다. 마지막 보류인 티스토리 블로그를 운영하고 있어, 이것만은 끝..
기존 프로젝트는 None-OS 모델로 개발이 진행되어, OS 없이 개발된 코드는 인수 인계 받아 프로젝트를 진행하였지만, 이번 새로 진행하는 프로젝트는 LCD 모듈이 추가되어 OS 없이 개발이 가능하지만 개발의 효율성을 높이기 위해 STM32에서 제공하는 FreeRTOS를 적용하여 진행하기로 하였다. OS를 사용하면 쓰레드 생성 및 공유자원 접근 그리고 쓰레드간 IPC를 보다 편하게 처리할 수 있으며, tick 타임을 직접 계산하여 타이머처럼 코딩하는 것이 아니라 OS에서 제공하는 SW Timer를 사용하면 보다 편하게 코딩할 수 있다. 그런데, 이번에 FreeRTOS를 처음 접해서 케바케로 다양한 삽질을 진행중에 있다. 우선 FreeRTOS 타이머를 생성하여 500ms 마다 주기적으로 타이머 콜백함수가..
STM32CubeIDE는 다양한 플랫폼을 지원하고 있어, 설치 및 사용에는 큰 문제가 없으나 이클립스 자체가 무겁기 때문에 CLI 환경으로 GDB 및 이미지 다운로드를 하려고 한다. 최신 버전의 STM32CubeIDE(v1.15.x) 버전을 업데이트하고 STM32CubeIDE에 포함된 컴파일러, ST-Link 및 ST GDB 서버를 CLI 환경으로 사용하기 위해 아래 경로에 각 플러그인의 실행경로를 링크 파일로 생성하여 실행 경로를 설정하였다. 기존 nRF가 사용하는 arm-compiler 버전이 있어, STM32CubeIDE에서 사용하는 arm-compiler 버전을 명시하여 링크파일을 생성하였고, 이 경로를 cmake에서 컴파일 경로로 설정하면 된다. 따라서 이번 프로젝트를 진행하는 사람도 가능하면 ..
지난 포스트에서 LVGL이 동작하는 것을 확인하였다. 하지만 색상이 이상하게 출력되는 문제가 있어 그것을 수정한 것을 정리한다. STM32G474 + ST7789 + LVGL 포팅 신규 프로젝트가 LCD 패널이 추가되면서, UI 출력이 필요한 상황이라 예전에 STM32F429에 LVGL 라이브러리를 포팅한 경험이 있어 이것을 사용하려고 한다. LVGL 라이브러리는 MIT 라이센서로 상용으로 memories.tistory.com LVGL RGB 순서가 ST7789 IC의 맵핑이 BRG되어 있어 아래 이미지와 같은 현상이 발생한다. 이것은 그래픽 라이브러리 포팅할 때 빈번하게 일어나는 문제이며, 셋톱박스 개발할 때도 이런 문제 때문에 스왑함수를 만들어 해결하기도 하였다. 그런데, 여기서 약간 헷갈린 상황이 ..
신규 프로젝트가 LCD 패널이 추가되면서, UI 출력이 필요한 상황이라 예전에 STM32F429에 LVGL 라이브러리를 포팅한 경험이 있어 이것을 사용하려고 한다. LVGL 라이브러리는 MIT 라이센서로 상용으로 이용해도 문제가 없기 때문에 신규 프로젝트에 사용하여도 문제가 없을 것으로 판단된다. 20년도 말에 접한 LVGL 라이브러리 버전은 7.x ~ 8.1.0 버전을 사용하였는데, 24년도 현재 v9.1.0 버전까지 릴리즈되어 최신 버전을 사용하려고 한다. 최신 버전을 사용하려는 이유는 LVGL 라이브러리가 ST7789 IC를 포팅 가이드를 제공하고 있어, 최신 버전을 사용하는 것이 정신 건강에 이로울 것이다. 포팅 가이드는 아래 사이트를 참고하면 된다. Step-by-step Guide: How t..