Linux 디바이스 트리 기반 LED 문자 드라이버 개발

이 문서는 Linux 커널 5.2.8 버전과 BusyBox 1.25.0 환경에서 디바이스 트리를 사용하여 LED 문자 장치 드라이버를 개발하는 방법을 다룹니다. 이전의 직접 메모리 매핑 방식과 달리, 디바이스 트리를 통해 GPIO 관련 레지스터의 물리 주소를 전달받고, 이를 이용하여 GPIO를 초기화하고 제어합니다. 1. 디바이스 트리 수정 LED 장치 노드를 디바이스 트리 소스(DTS) 파일 ...

8월 22일 11:43에 게시됨

STM32F103 마이크로컨트롤러 PWM 출력 구현

이 글에서는 STM32F103 시리즈에서 PWM 신호를 생성하고 출력하는 방법에 대해详细介绍한다. 앞서 Timer 설정에 대해 설명한 바와 같이, PWM은 타이머의 출력 비교 기능을 활용하여 구현할 수 있다. 1. PWM 관련 레지스터 타이머로 PWM 신호를 생성하기 위해서는 다음과 같은 레지스터들이 필요하다. 기본적인 타이머 설정에 사용되는 레지스터之外에 추가적으로 필요한 레 ...

8월 9일 09:44에 게시됨

CORDIC 알고리즘 분석: 시프트와 덧셈 연산만으로 sin() 함수 구현하기

FPU(부동소수점 연산 장치)가 탑재되지 않은 마이크로컨트롤러 환경에서 삼각함수를 실시간으로 계산하는 것은 까다로운 과제입니다. 룩업 테이블(LUT) 방식은 메모리 사용량과 정밀도 사이의 트레이드오프가 발생하며, 테일러 급수 전개는 과도한 곱셈과 나눗셈 연산으로 인해 성능 병목을 유발합니다. 이러한 하드웨어 제약 사항 속에서 CORDIC(Coordinate Rotation Digi ...

7월 16일 19:09에 게시됨

임베디드 C++ 알고리즘 완벽 가이드

1. 수정되지 않는 시퀀스 알고리즘 이러한 알고리즘들은 작업 중인 컨테이너의 요소들을 변경하지 않습니다. 1.1 찾기 알고리즘: find와 find_if find(start, end, value): value와 동일한 첫 번째 요소를 찾아 반복자를 반환 (없으면 end 반환) find_if(start, end, 조건자): 조건을 만족하는 첫 번째 요소를 찾습니다 find_end(start, end, sub_start, sub_end): 부분 ...

6월 19일 01:34에 게시됨

Keil5에서 Yi-Coder-1.5B를 활용한 임베디드 개발 생산성 향상

임베디드 환경에서 코드 생성 모델의 실용적 통합 장기간 Keil µVision을 주요 개발 환경으로 사용해온 임베디드 소프트웨어 엔지니어로서, 하드웨어 레지스터 설정, 저수준 드라이버 작성, 디버깅 절차 구현 등 반복적인 작업에 많은 시간을 할애해왔다. 그러나 최근 오픈소스 기반의 경량 코드 생성 모델인 Yi-Coder-1.5B를 도입하면서 이러한 프로세스가 크게 단순화되 ...

6월 11일 16:29에 게시됨