2025/03 105

Yocto Project

1. Yocto Project(욕토 프로젝트)Yocto Project는 하드웨어 아키텍처에 관계없이 임베디드 장치를 위한 리눅스 기반 시스템을 만들기 위한 빌드 시스템 이다. 오픈 임베디드 빌드 시스템을 기반으로 하며, 자체적으로 비트베이크 도구를 기반으로 한다.  Yocto 프로젝트는 사용자 정의 리눅스 이미지를 구축하는 데 사용할 수 있는 표준 레시피와 클래스 세트 및최종 이미지를 빌드, 사용자 지정 및 임베디드 장치에 배포하기 위한 도구 세트를 제공한다. 이를 통해 개발자는 필요한 패키지만 포함하고 장치의 리소스 사용을 최적화함으로써 최종 이미지를 더 많이 제어할 수 있다. Yocto 프로젝트의 주요 장점 중 하나는 재현 가능한 빌드를 만드는 데 사용할 수 있다는 것이다. 즉, 동일한 빌드 환경과 ..

파이썬(Python) 구버전 삭제

Python을 이런 저런 방법으로 설치, 삭제를 하다 보니 VSCode에서 Python 인터프리터를 못찾는다는 에러가 나올때가 있다. VSCode 인터프리터에서 구버전의 파이썬이 설정 되어 있기 때문이다. VSCode에서 인터프리터 버전 설정- 내 VSCode에서 왼쪽의 Python을 눌러보면 최신 버전(3.11.1)과 구 버전(3.10.9) 두개가 뜬다. - command창을 열어(Ctrl + Shift + P)Python: Select Interprete - Enter interpreter path...를 눌러 최신 버전 Python.exe를 지정 그래도 과거 버전이 필요 없을 경우 지우고 싶다면 아래와 같이 하면 된다.- 설정 - 앱 - 앱 및 기능- python 검색 - 구 버전 선택 후 제거 -..

파이썬(Python) 설치 및 사용

Python(파이썬)은 네덜란드 출신의 프로그래머인 귀도 반 로섬(Guido van Rossum)이 1989년에 개발한 프로그래밍 언어이다. 파이썬은 문법이 어렵지 않아서 코드를 쉽게 작성하고 읽을 수 있다. Interpreter에서 바로 실행하여 그 결과를 빠르게 확인할 수 있다. 다양한 플랫폼에서 사용이 가능하며 요즘은 웹프로그래밍과 머신러닝, 사물 인터넷과 데이터 분석을 위한 다양한 분야에서 활용되고 있다. C와 구분되는 가장 큰 특징은 C는 컴파일러(Compiler) 방식, Python은 인터프리터(Interpreter) 방식 이다. Python을 사용함에 있어 Interpreter 라는 단어가 계속 나오는데 C에서 Compiler라고 생각하면 된다. C와 Python과 차이는 극명 한데, 이 문..

Embedded System의 GUI Platform

Embedded System의 GUI PlatformQt를 상용 제품 개발에 추천하는 이유는 다음과 같다.안정성과 신뢰성 : 상업적 지원을 통해 품질 보장과 지속적인 업데이트를 받을 수 있음강력한 기능과 유연성 : 다양한 플랫폼 지원, 복잡한 UI 구현, 성능 최적화장기적인 유지 보수 용이 : 버그 수정과 기술 지원이 체계적으로 제공됨하지만 Qt 라이센스 비용은 상상 초월이다. 비용 산정 기준도 복잡해서 Qt 상용 라이센스를 사용할 기업은 사용전에 반드시 비용을 검토해야 한다. 예를 들어 개발자 1명이 연 양산수량 5,000개의 임베디드 시스템 제품을 개발 및 생산한다고 하면($10,000 * 1명) + ($2 * 5000개) = $20,000, $20,000 / 5,000개 = $4→ 제품당 약 4$의..

GUI Platform 2025.03.18

STM32F103x Memory map

- STM32F103의 메모리 맵은 Cortex-M3 코어를 기반으로 설계된 마이크로컨트롤러의 주소 공간 구조- 메모리 맵은 다양한 메모리와 주변 장치의 주소를 정의하며, 다음의 사진과 같음 1. 코드 메모리 영역 (0x0000 0000 ~ 0x1FFF FFFF)- 부트 메모리: 0x0000 0000 ~ 0x1FFF FFFF- 초기 부트 로더 코드가 위치. 부팅 모드에 따라 플래시 메모리, SRAM, 또는 시스템 메모리로 매핑 2. SRAM (0x2000 0000 ~ 0x3FFF FFFF)- 내부 SRAM: 0x2000 0000 ~ 0x2000 4FFF (20KB)- 일반 데이터 저장용. Cortex-M3 코어에서 빠르게 액세스 가능- 추가로 사용 가능한 SRAM 주소는 비워진 공간에 의해 확장될 수 있..

ST MCU/MPU Security Features

- ST의 MCU(마이크로컨트롤러 유닛)에는 다양한 보안 기능이 탑재되어 디바이스와 애플리케이션을 보호- ST의 보안 기능은 주로 소프트웨어 보호, 메모리 보호, 암호화, 부팅 보호 등을 포함아래는 이러한 보안 기능을 요약한 표 기능설명적용 MCU 시리즈RDP (Readout Protection)MCU의 플래시 메모리에서 데이터를 읽어오는 것을 방지하는 기능레벨 0, 1, 2로 구성되며, 레벨 2는 완전한 보안으로 디버깅 및 펌웨어 업그레이드 불가STM32 전 제품군PCROP (Proprietary Code Read-Out Protection)플래시 메모리의 특정 섹터를 보호하여, 외부에서 접근할 수 없도록 하는 기능메모리 보호와 동시에 코드 실행은 가능STM32L4, STM32L5, STM32H7Tru..

CMSIS

CMSIS(Common Microcontroller Software Interface Standard)는 Arm Cortex 프로세서를 기반으로 하는 마이크로 컨트롤러용 벤더 독립 추상화 레이어.CMSIS는 범용 툴인터페이스를 정의하고 일관된 디바이스 지원 가능. CMSIS 소프트웨어 인터페이스는 소프트웨어 재사용을 단순화하고 마이크로컨트롤러 개발자의 학습 곡선을 줄이며 새로운 기기의 시장 출시 기간을 단축. CMSIS는 프로세서 및 주변기기, 실시간 운영체제 및 미들웨어 컴포넌트에 대한 인터페이스를 제공. CMSIS에는 디바이스, 보드 및 소프트웨어의 전송 메커니즘이 포함되어 있어 여러 벤더의 소프트웨어 컴포넌트를 조합 가능. https://www.keil.arm.com/cmsis Arm KeilKei..

STM32 CubeMX LL driver

CubeMX에서 pheriperal인 GPIO, USART, TIMER, PWM를 설정할때 기본이 HAL divrer로 설정된다.하지만 HAL driver는 이식성을 좋게 하기 위해 용량이 커지고 코드 실행 시간이 길어진다. 그래서 코드 최적화 하여 코드 실행 시간을 줄일 수 있는 LL driver 설정 방법은 다음과 같다. 1. CubeMX 실행 2. CubeMX - Project Manager 3. CubeMX - Project Manager - Advanced Settings: HAL 또는 LL driver 선택

STM32 Driver(Library)

보통 STM32를 F/W를 개발할 때 HAL(Hardware Abstraction Layer) driver를 사용하는데, 이 driver 말고도 아래와 같이 다양한 library가 있다.https://www.st.com/content/ccc/resource/sales_and_marketing/presentation/product_presentation/37/55/ff/bc/a8/71/4f/c5/stm32_embedded_software_offering.pdf/files/stm32_embedded_software_offering.pdf/jcr:content/translations/en.stm32_embedded_software_offering.pdf  ST에서 제공하는 library는 아래와 같다.1. S..