wolfMQTT 기반 임베디드 MQTT 클라이언트 개발 가이드

소개 wolfMQTT는 경량 임베디드 환경에 최적화된 MQTT 클라이언트 라이브러리로, wolfSSL 팀이 개발한 C 기반 구현체입니다. 이 라이브러리는 MQTT v3.1.1과 v5.0 사양을 모두 지원하며, 센서 네트워크용 확장인 MQTT-SN도 포함하고 있어 다양한 IoT 장치에서 활용 가능합니다. 주요 특징은 다음과 같습니다: 경량 설계: 약 3.6KB의 메모리 사용으로 제한된 자원의 디 ...

7월 8일 03:39에 게시됨

Qt5 ARM64 플랫폼 이식 가이드: RK3566의 듀얼 경로 전략

### 1. Qt5 ARM64 이식 기술 적용: RK3566 플랫폼을 위한 듀얼 경로 솔루션 임베디드 Linux 시스템에서 Qt 그래픽 인터페이스 애플리케이션을 배포하는 것은 산업용 HMI, 스마트 터미널 및 인간-기계 상호작용 장치 개발에서 중요한 부분입니다. 본 문서는 Rockchip RK3566 SoC 플랫폼을 기반으로 하여, ARM64 아키텍처에서 Qt5.12.10과 Qt5.15.2 두 가지 주요 버전의 전 ...

7월 3일 02:47에 게시됨

STM32 FSMC 버스를 통한 ILI9341 디스플레이 전원 재시작 시 문제 해결

STM32 마이크로컨트롤러의 FSMC(Flexible Static Memory Controller)를 사용하여 ILI9341 TFT LCD를 구동할 때 발생하는 일반적인 문제는 전원을 껐다가 다시 켰을 때 디스플레이가 정상적으로 작동하지 않는 현상이다. 이 문제는 코드가 처음 실행되거나 디버깅 중에는 잘 동작하나, 전원 사이클 이후에는 예기치 못한 동작을 보인다. 다음은 FSMC 인터페이스 설정에 사 ...

6월 29일 17:58에 게시됨

ODrive 컨트롤러 알고리즘 맞춤형 개발: 아키텍처 분석부터 실전 구현까지

ODrive 컨트롤러의 고도화된 제어 알고리즘 설계 접근법 ODrive는 오픈소스 기반의 고성능 모터 제어 플랫폼으로, 기본적인 PID 제어 외에도 사용자가 직접 제어 로직을 확장할 수 있도록 설계된 유연한 아키텍처를 제공합니다. 본 문서에서는 컨트롤러 계층 구조를 분석하고, 실제 사례를 통해 맞춤형 제어 알고리즘을 개발하는 전 과정을 안내합니다. 왜 맞춤형 제어가 ...

6월 27일 21:34에 게시됨

CAN 버스 프로토콜 및 임베디드 구현 가이드

CAN 통신 원리와 신호 표현 CAN(Controller Area Network)은 두 개의 차동 신호선인 CAN_H와 CAN_L로 구성됩니다. 이는 높은 신뢰성과 실시간성을 요구하는 자동차 및 산업 제어 시스템에 널리 사용됩니다. 통신 시 CAN_H와 CAN_L 사이의 전압 차이는 다음과 같은 논리 상태를 나타냅니다: 지배적 수준(Dominant): 논리 0 비지배적 수준(Recessive): 논리 1 ISO11898 표 ...

6월 25일 00:20에 게시됨

크론을 활용한 프로세스 메모리 사용량 주기적 모니터링 구현

크론 작업 계획 설정 시스템의 crontab -e 명령어를 실행하면 기본 텍스트 에디터가 열리며, 여기에 정기적으로 수행할 작업을 입력합니다. 저장 후 /var/spool/cron/crontabs/ 디렉터리에 사용자 이름으로 된 파일이 생성됩니다. 작업 스케줄링 포맷 설명 각 줄은 6개의 필드로 구성되며, 형식은 다음과 같습니다: minute hour day month weekday command *: 모든 ...

6월 23일 18:40에 게시됨

STM32 상전원 후 부트로더 동작 과정: 하드웨어 초기화에서 애플리케이션 실행까지

임베디드 시스템 개발을 시작하는 순간, STM32 마이크로컨트롤러의 LED가 처음 깜빡일 때 우리는 성취감을 느낀다. 하지만 전원이 인가되고 첫 번째 명령어가 실행되기까지 칩 내부에서 어떤 일이 벌어질까? 이 글에서는 STM32가 전원을 받은 후 부트로더를 통해 어떻게 소프트웨어를 안정적으로 구동하는지 단계별로 살펴본다. 1. 전원 인가와 초기 하드웨어 준 ...

6월 10일 17:46에 게시됨

MATLAB Simulink 모델 기반 임베디드 코드 생성 및 최적화 프로세스

MATLAB Simulink를 활용한 모델 기반 설계(Model-Based Design)는 복잡한 제어 알고리즘을 임베디드 타겟 보드에서 실행 가능한 C/C++ 코드로 자동 변환하는 핵심 프로세스입니다. 이 과정은 단순한 변환을 넘어 메모리 할당, 실행 속도, 코드 가독성 등을 고려한 체계적인 설정이 요구됩니다. 1. 개발 환경 및 타겟 하드웨어 설정 코드 생성을 위해서는 MATLAB 및 Simuli ...

6월 9일 20:04에 게시됨

U-Boot find_cmd 함수 동작 원리와 명령어 검색 메커니즘

명령어 테이블 구조체 U-Boot에서 각 명령어는 cmd_tbl_s 구조체로 표현되며, 명령어 이름, 인자 개수, 실행 함수, 도움말 등을 포함한다. struct cmd_tbl_s { char *cmd_name; /* 명령어 이름 */ int arg_max; /* 최대 인자 수 */ int auto_repeat; /* 자동 반복 가능 여부 */ int (*exec)(struct cmd_tbl_s *, int, int, ...

6월 7일 21:48에 게시됨

U-Boot 환경 변수 초기화 메커니즘 분석

환경 변수의 역할과 저장 구조 환경 변수는 시스템 부팅 시 사용되는 전역 설정 정보를 의미하며, 영구 저장 장치(예: NOR/NAND 플래시)에 저장되어야 하며, 실행 중에 조회 및 수정이 가능해야 합니다. 부팅 과정에서 먼저 환경 변수를 메모리에 로드한 후, 하드웨어 초기화 및 운영체제 시작에 활용됩니다. 환경 변수 저장 위치와 로드 위치 결정 플래시 메모리에 저장 ...

6월 6일 02:07에 게시됨