eziya76의 등록된 링크

키자드에 등록된 총 592개의 포스트를 확인하실 수 있습니다.

Naver Blog

[RPI3] yocto# RPI3 이미지에 mariadb 추가하기

이번 글에서는 앞서 생성한 RPI3 이미지에 python3 와 mariadb 패키지를 추가해 보고자합니다. [yocto] meta-raspberrypi 레이어를 사용하여 RPI3 이미지 빌드하기 이번 글에서는 yocto 를 이용하여 Raspberry Pi 3 를 위한 이미지 빌드 순서를 정리하고자 합니다. 1. yo... blog.naver.com 1. 하기와 같이 local.conf 를 수정한다. 서비스 관리의 편의성을 위해서 init 시스템을 기본인 sysVinit 에서 systemd init 으로 변경한다. mariadb, python3, python3-pymysql 패키지를 추가로 설치한다. $ vi conf/local.conf ... # Enabling systemd init DISTRO_FEATURES_append = " systemd" VIRTUAL-RUNTIME_init_manager = "systemd" DISTRO_FEATURES_BACKFILL_CONSIDERED

Naver Blog

[RPI3] yocto# rpi-custom-image 만들기

이번 글에서는 앞서 수정한 내용들을 포함하는 rpi-custom-image 를 만들어보고자 합니다. 이전 글에서는 rpi-basic-image 를 사용하고 local.conf 파일에 필요한 패키지들을 추가하는 형태로 작업을 하였습니다. 물론 이 방법도 간편하고 손쉽지만 실제 이미지의 수정 내역을 local.conf 파일에서 관리하는 것보다는 별도의 이미지 레서피로 만드는 것이 향후 관리 측면에서 좋은 방법이라고 생각됩니다. [yocto] meta-raspberrypi 레이어를 사용하여 RPI3 이미지 빌드하기 이번 글에서는 yocto 를 이용하여 Raspberry Pi 3 를 위한 이미지 빌드 순서를 정리하고자 합니다. 1. yo... blog.naver.com [RPI3] yocto# RPI3 이미지에 mariadb 추가하기 이번 글에서는 앞서 생성한 RPI3 이미지에 python3 와 mariadb 패키지를 추가해 보고자합니다. 1. 하기... blog.naver.com 1. 작

Naver Blog

[RPI3] yocto# java runtime 추가하기

이전 글까지 mariadb, python3 에 대한 지원 기능을 추가하였습니다. 이번 글에서는 java 패키지를 추가하는 방법을 정리해 보고자 합니다. [yocto] meta-raspberrypi 레이어를 사용하여 RPI3 이미지 빌드하기 이번 글에서는 yocto 를 이용하여 Raspberry Pi 3 를 위한 이미지 빌드 순서를 정리하고자 합니다. 1. yo... blog.naver.com [RPI3] yocto# RPI3 이미지에 mariadb 추가하기 이번 글에서는 앞서 생성한 RPI3 이미지에 python3 와 mariadb 패키지를 추가해 보고자합니다. 1. 하기... blog.naver.com [RPI3] yocto# rpi-custom-image 만들기 이번 글에서는 앞서 수정한 내용들을 포함하는 rpi-custom-image 를 만들어보고자 합니다. 이전 글에서는 r... blog.naver.com 1. Java 패키지 추가를 위해서는 meta-java 레이어를 필요로

Naver Blog

[RPI3] yocto# security 강화

Reference: Yocto Hardening - Esa Jaaskela (ejaaskel.dev) Yocto Hardening - Esa Jaaskela "Yocto Hardening" is a series of blog texts where I share general security advice for Linux systems and practical examples on how to get that advice applied to Yocto builds. The advice has usually been tested on the latest LTS release at the time of writing. The advice itself may be quite obvious (d... ejaaskel.dev 이번 글에서는 이전까지 작성한 이미지의 보안을 강화하기 위하여 root 로그인을 차단하고 별도 계정을 통해서 sudo 동작을 지원하도록 수정하고자 합니다. [RPI3] y

Naver Blog

[RPI3] yocto# security nftables 적용

Reference: Yocto Hardening: Firewalls, Part 1: nftables - Esa Jaaskela (ejaaskel.dev) Yocto Hardening: Firewalls, Part 1: nftables - Esa Jaaskela The eternal task of making the Yocto Linux build an impenetrable fortress continues. Next, we'll look into setting up a firewall two different ways. ejaaskel.dev 이번 글에서는 보안을 위해서 nftables 기능을 적용하는 방법을 확인해 보고자 합니다. [RPI3] yocto# security 강화 Reference: Yocto Hardening - Esa Jaaskela (ejaaskel.dev) 이번 글에서는 이전까지 작성한 이미지의... blog.naver.com 1. 기존에 작업하던 이미지 레서

Naver Blog

[RPI3] yocto# CAN & RS485 장치 추가

구성 환경 1. 라즈베리파이 3B 2. Waveshare RS485 CAN HAT(B) 3. CANable USB-CAN 컨버터 RS485 CAN HAT (B) - Waveshare Wiki RS485 CAN HAT (B) - Waveshare Wiki RS485 CAN HAT (B) Overview RS485 CAN HAT (B) is a HAT with RS485 and CAN communication functions developed by Waveshare for Raspberry Pi, with RS485 and CAN communication functions. Features Standard Raspberry Pi 40PIN GPIO extension header, supports Raspberry Pi series boards. With 1-ch CAN, the co... www.waveshare.com USB to CAN-FD 통신 분석기(C 타입) : 하이제니스 (

Naver Blog

[RPI3] yocto# Eclipse 빌드 & Remote Debugging 설정

Reference Yocto Programming with Eclipse v2 - Variscite Wiki (variwiki.com) Yocto Programming with Eclipse v2 Read the DART-MX8M-MINI - Yocto Programming with Eclipse guide or browse Variscite's excellent knowledge base for more how-to guides related to Variscite's System on Module / Computer on Module. variwiki.com 이번 글에서는 eclipse 를 이용한 개발환경 구성과 Remote Debugging 설정에 관련하여 정리해 보고자 합니다. 대부분의 내용은 Reference 와 동일하지만 저는 RPI3 용으로 작업을 하였기 때문에 toolchain 의 이름과 옵션 등을 제 환경에 맞게 수정해야 했습니다. ※이 작업을 하면서 시간이 필요했던

Naver Blog

[RPI3] yocto# CAN echo application 테스트

사전 준비사항 #1. CAN device 를 사용할 수 있도록 이미지가 생성되어 있어야 한다. [RPI3] yocto# CAN & RS485 장치 추가 구성 환경 1. 라즈베리파이 3B 2. Waveshare RS485 CAN HAT(B) 3. CANable USB-CAN 컨... blog.naver.com #2. Eclipse 개발환경이 구성되어 있어야 한다. [RPI3] yocto# Eclipse 빌드 & Remote Debugging 설정 Reference Yocto Programming with Eclipse v2 - Variscite Wiki (variwiki.com) 이번 글에서는 ecli... blog.naver.com 앞선 글에서는 기본적인 hello-world 예제를 만들어 보았기 때문에 조금 더 복잡한 network 어플리케이션을 하나 빌드해 보아서 SDK 나 eclipse 개발 환경에 문제가 없는지 확인해 보았다. 1. 앞서 hello-world 예제와 동일하게

Naver Blog

[RPI3] yocto# MCP2518FD 컨트롤러 테스트

개발환경 구성 2 Channel CAN BUS FD Shield for Raspberry Pi | Seeed Studio Wiki 2 Channel CAN BUS FD Shield for Raspberry Pi | Seeed Studio Wiki 2 Channel CAN BUS FD Shield for Raspberry Pi wiki.seeedstudio.com MCP2518FD CAN controller 테스트를 위해서 Seed Studio 의 CAN BUS FD Shield 를 사용하였습니다. 해당 쉴드는 2채널을 CAN 통신을 제공하기 때문에 1번과 2번 채널을 연결하여 손쉽게 테스트가 가능합니다. CAN 컨트롤러는 2개 모두 SPI0 에 연결되어 있습니다. 원래는 기존과 동일하게 dunfell 버전에서 테스트를 하고자 하였으나 dunfell 의 커널 5.4 버전에서 MCP2518FD 를 지원하지 않아서 이번에는 kirkstone 을 사용하였습니다. kirkstone 에서는 커

Naver Blog

Ubuntu 22.04 LTS XRDP Remote Desktop

Reference: [우분투 22.04] XRDP 설치 방법 RDP(Remote Desktop Protocol)은 마이크로소프트에서 개발한 원격 제어용 프로토콜이자 프로그램이다. 윈도우에서 원격 데스크톱 프로그램을 통해 우분투에 접속하려면 우분투에 XRDP를 설치해야 한다. XRDP는 우분투에서 사용가능한 RDP 서버 프로그램이다. 본 글에서는 우분투 22.04에서 XRDP를 설치하는 방법을 설명한다. XRDP 설치 아래의 명령어를 입력하여 XRDP를 설치한다. apt-get install xrdp 아래의 명령어를 입력하여 xrdp 계정을 ssl-cert 그룹으로 생성한다. adduser x... engineeringcode.tistory.com Windows 11 에서 Ubuntu 22.04 LTS 에 원격 접속 시 XRDP 만 설치한 경우, 로그인 후 바로 세션이 끊어지는 문제가 발생하고 이에 대한 Touble Shooting 은 아래와 같다. $ sudo apt update $

Naver Blog

[i.MX93] Veriscite Symphony Board 검토

[ 연결된 주변 장치 ] UART1 은 USB 를 통해 debug 용으로 사용 UART5 는 Bluetooth 용으로 사용 가능 UART6, 7 은 RS232/485 용도로 사용 가능 SPI6 를 이용해서 SPI 장치 사용 I2C1/5/7 에는 터치 패널과 RTC 가 연결되어 있고 헤더 핀을 이용해서 I2C 장치 연결 가능 SAI1 에 오디오 입력 출력 연결 되어 있음 FLEXCAN1 하나의 채널만 CAN 트랜시버에 연결되어 헤더로 출력되고 있음 Internal/External Ethernet PHY 2개 제공 USB 2.0 Host 와 OTG 기능 제공 uSD 카드를 부팅용으로 사용 가능 헤더핀을 이용해서 PWM 출력 가능 헤더핀을 이용해서 GPIO 출력 가능 [ 테스트에 사용할 장치 ] 1. Ethernet(J20, J21) J20은 External PHY 10/100/1000BaseT J21은 Internal PHY 10/100/1000BaseT 2. SPI / CAN (J16

Naver Blog

[i.MX93] fsl-image-gui 기본 이미지 생성

Reference Yocto Build Release - Variscite Wiki (variwiki.com) Yocto Build Release Read the DART-6UL - Yocto Morty 2.2.1 based on FSL Community BSP 2.2 with L4.1.15_2.0.0-ga Linux release guide or browse Variscite's excellent knowledge base for more how-to guides related to Variscite's System on Module / Computer on Module. variwiki.com 기본적인 이미지 생성 과정은 wiki 정보를 따라하면 가능하다. ※ 다만 빌드과정에서 몇 가지 문제점들이 발생하였는데 현재 VMWare 또는 저사양 PC 에서 빌드 시에 nodejs 빌드에서 collector2 에러가 발생하였다. 해결책은 메모리를 늘리거나 swap 메모리를 늘려주는 방식으

Naver Blog

[i.MX93] Recovery 이미지 생성하기

Reference Yocto Build Release - Variscite Wiki (variwiki.com) Yocto Build Release Read the DART-6UL - Yocto Morty 2.2.1 based on FSL Community BSP 2.2 with L4.1.15_2.0.0-ga Linux release guide or browse Variscite's excellent knowledge base for more how-to guides related to Variscite's System on Module / Computer on Module. variwiki.com VAR-SOM-MX93 은 emmc 를 내장하고 있어 SD 카드가 아닌 emmc 부팅이 가능하다. 만일 emmc 이미지가 훼손되었거나 변경을 해야한다면 SD 카드의 Recovery 이미지로 부팅 후 emmc 에 writing 이 가능하다. 1. varisicite 는 recovery ima

Naver Blog

[i.MX93] Ethernet 테스트

Reference VAR-SOM-MX93 Yocto - Variscite Wiki (variwiki.com) VAR-SOM-MX93 Yocto Yocto project is a framework for creating a Linux distributions for embedded devices. It's layering mechanism makes it easy to add Linux to new target devices highly customized for a... variwiki.com VAR-SOM-MX93 은 Internal / External Ethernet 인터페이스를 제공한다. Symphony 보드에는 2개의 RJ45 커넥터가 제공되고 기본 이미지인 fsl-image-gui 를 이용하여 어떤 기능들이 제공되며 정상적으로 동작하는지 테스트 해보고자 한다. 1. 빌드된 fsl-image-gui 이미지를 가지고 부팅 후 2개의 이더넷 포트에 케이블을 연결하여 정상적으로 D

Naver Blog

[i.MX93] Flex CAN 테스트

Reference VAR-SOM-MX93 Yocto - Variscite Wiki (variwiki.com) VAR-SOM-MX93 Yocto Yocto project is a framework for creating a Linux distributions for embedded devices. It's layering mechanism makes it easy to add Linux to new target devices highly customized for a... variwiki.com VAR-SOM-MX93 은 FLEXCAN1, FLEXCAN2 2개의 FLEXCAN 을 제공한다. 하지만 현재 Symphony 보드에서는 2개 중 FLEXCAN1 만을 사용한다. FLEXCAN1 은 J16 헤더의 18, 20번 핀으로 CANL, CANH 핀을 사용한다. FLEXCAN1 은 SN65HVD CAN 트랜시버에 연결되어 있어 바로 사용이 가능하다. imx93-var-som-symphon

Naver Blog

[i.MX93] UART 테스트

Reference VAR-SOM-MX93 Yocto - Variscite Wiki (variwiki.com) VAR-SOM-MX93 Yocto Yocto project is a framework for creating a Linux distributions for embedded devices. It's layering mechanism makes it easy to add Linux to new target devices highly customized for a... variwiki.com VAR-SOM-MX93 과 Symphony 보드는 총 4개의 UART 를 사용한다. Variscite 의 wiki 문서를 확인하면 ttyLP0, ttyLP5, ttyLP6, ttyLP7 장치를 사용할 수 있다. ttyLP0 는 UART1 장치로 보드의 Micro USB 커넥터를 통해서 보드 디버그 시리얼로 사용한다. ttyLP4 는 UART5 장치로 1.8V 시그널 레벨이며, UART 로 사용

Naver Blog

[i.MX93] SPI 를 이용한 MAX2518FD 연동

Reference VAR-SOM-MX93 Yocto - Variscite Wiki (variwiki.com) VAR-SOM-MX93 Yocto Yocto project is a framework for creating a Linux distributions for embedded devices. It's layering mechanism makes it easy to add Linux to new target devices highly customized for a... variwiki.com 이번 글에서는 MX93-VAR-SOM 의 SPI 인터페이스를 이용하여 MAX2518FD 를 연동하는 방법을 정리하고자 합니다. MX93-VAR-SOM 은 2개의 FlexCAN 인터페이스를 지원하지만 Symphony 보드에서는 FlexCAN1 만 사용이 가능하기 때문에 추가적인 CAN 컨트롤러 연결을 위해서는 SPI 인터페이스 활용이 필요합니다. 연동에 사용할 MAX2518FD 모듈은 라즈베리파

Naver Blog

[i.MX93] 응용 프로그램 개발용 SDK 빌드

Reference VAR-SOM-MX93 Yocto - Variscite Wiki (variwiki.com) VAR-SOM-MX93 Yocto Yocto project is a framework for creating a Linux distributions for embedded devices. It's layering mechanism makes it easy to add Linux to new target devices highly customized for a... variwiki.com 빌드한 fsl-image-gui 이미지 상에서 구동되는 어플리케이션을 개발하기 위해서는 toolchain 또는 sdk 생성을 필요로 합니다. Toolchain 은 기본 빌드 환경 및 glibc 수준의 최소한의 개발 환경을 제공하는 반면, SDK 는 이미지에 포함된 패키지 대부분의 개발 환경을 포함합니다. 1. 우선 fsl-image-gui 이미지를 빌드한다. $ bitbake fsl-image

Naver Blog

[i.MX93] Eclipse 빌드 & Remote Debugging 설정

Reference: [RPI3] yocto# Eclipse 빌드 .. : 네이버블로그 (naver.com) [RPI3] yocto# Eclipse 빌드 & Remote Debugging 설정 Reference Yocto Programming with Eclipse v2 - Variscite Wiki (variwiki.com) 이번 글에서는 ecli... blog.naver.com Yocto Programming with Eclipse v2 - Variscite Wiki (variwiki.com) Yocto Programming with Eclipse v2 Read the DART-MX8M-MINI - Yocto Programming with Eclipse guide or browse Variscite's excellent knowledge base for more how-to guides related to Variscite's System on Module / Computer on

Naver Blog

[i.MX93] Eclipse 에서 CAN 어플리케이션 개발하기

https://blog.naver.com/eziya76/223404849749 [i.MX93] Eclipse 빌드 & Remote Debugging 설정 Reference: [RPI3] yocto# Eclipse 빌드 .. : 네이버블로그 (naver.com) Yocto Programming with E... blog.naver.com 이번 글에서는 앞서 설정한 3개의 CAN 디바이스를 사용해서 통신하는 C 어플리케이션 예제를 한번 작성해 보고자 합니다. 복수의 장치를 제어하는 응용 어플리케이션을 만들 때 고민이 좀 필요할 것 같습니다. 아래의 예와 같이 thread 를 사용하거나 비동기 IO 형태로 개발을 하는 방법도 있을 것 같고, 실제 장치별로 독립된 작업을 수행한다면 그냥 분리된 어플리케이션으로 개발하는 것도 나쁘지 않은 방법이 될 것 같습니다. ※ Eclipse Remote Debuuging 테스트가 확인된 상황을 가정합니다. int_handler 는 Ctrl+C 를 이용하

Naver Blog

[i.MX93] MQTT mosquitto 패키지 추가하기

이번 글에서는 fsl-image-gui 에 MQTT mosquitto 와 paho 라이브러리를 추가하는 방법을 기술합니다. 1. local.conf 에 mosquitto, mosquitto-clients, paho-mqtt-c, python3-paho-mqtt 를 추가한다. $ vi conf/local.conf .... IMAGE_INSTALL:append = " mosquitto mosquitto-clients paho-mqtt-c python3-paho-mqtt" 2. fsl-image-gui 를 빌드하고 빌드된 이미지를 SD카드에 write 한다. $ bitbake fsl-image-gui 3. SD 카드로 부팅 후 아래와 같이 mosquitto, mosquitto_pub, mosquitto_sub 명령이 정상적으로 동작하는지 확인한다. # mosquitto -d # mosquitto_sub -h localhost -t 'test' & # mosquitto_pub -h loca

Naver Blog

[i.MX93] Paho MQTT C Client 개발하기

Reference Paho MQTT C Client Library: MQTT Client library for C (MQTTClient) (eclipse.github.io) Paho MQTT C Client Library: MQTT Client library for C (MQTTClient) An MQTT client library in C. Copyright 2009, 2023 IBM Corp., Ian Craggs and others These pages describe the original more synchronous API which might be considered easier to use. Some of the calls will block. For the new totally asynchronous API where no calls block, which is especially suitable fo... eclipse.github.io 이번 글에서는 앞서 추가한

Naver Blog

[i.MX93] Paho MQTT Python Client 개발하기

Reference paho-mqtt · PyPI paho-mqtt MQTT version 5.0/3.1.1 client class pypi.org 이번 글에서는 paho-mqtt python 라이브러리를 이용한 MQTT python client 어플리케이션을 개발하는 방법을 기술하고자 합니다. 1. python3-paho-mqtt 패키지를 fsl-image-gui 에 추가한다. 필수적으로 python3 가 함께 설치되어야 한다. 2. 이미지를 빌드하고 SD 카드에 write 한 후 부팅한다. $ vi conf/local.conf .... IMAGE_INSTALL:append = " mosquitto mosquitto-clients paho-mqtt-c python3-paho-mqtt" 3. 현재 paho-mqtt 의 최신 버전은 2.0.0 이지만 yocto mickledore 기준으로는 1.6.1 이 배포된다. 2.0.0 버전은 major 버전의 변화로 API 에 변화가 많기 때문에

Naver Blog

[i.MX93] Modbus Slave(Server) 개발하기

Reference libmodbus libmodbus libmodbus The most popular Open Source library to communicate with Modbus devices. RTU (serial) and TCP (Ethernet) support available for Linux (packaged), FreeBSD, Mac OS and Windows written in C great test coverage and documentation security audits no dependencies Support the project The financi... libmodbus.org 이번 글에서는 libmodbus 라이브러리를 사용하여 다중 연결을 허용하는 modbus slave 개발에 대해서 정리해 보고자 합니다. 사용한 라이브러리는 libmodbus 로 github 에서 관리되고 있는 opensource 입니다. stephane/libmodbus: A

Naver Blog

[BBB] Yocto#Kernel 설정에 fragment.cfg 적용하기

Reference: https://youtu.be/uErrAUtxgt4?si=fiQ8Ae713WuMWqye ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. https://github.com/Munawar-git/YoctoTutorials/tree/master https://github.com/Munawar-git/meta-tab-layer [목표] Kernel 설정에서 SysFs 파일시스템에서 gpio 지원 기능을 enable 한다. Yocto 에서 Kernel 설정을 변경하는 방법은 앞선 defconfig 를 레서피에 추가하는 방식도 있지만 diffconfig 명령을 사용하여 fragment.cfg 파일을 적용하는 방법도 있습니다. 두 방법의 차이를 GPT 에 확인하면 아래와 같습니다. 기본 kernel 설정을 유지한 채 일부 변경이라면 fragment.cfg 파일을 적용하는 방식이 편리하고 다양한 곳에 변경이 있다면 defconfig 를 사용하면 되는 것 같습

Naver Blog

[BBB] Yocto#커널 모듈 hello-mod 예제

Reference: https://youtu.be/aLL3cUDoz10?si=ZnoylzMYkpYIU6Sw ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. https://github.com/Munawar-git/YoctoTutorials/tree/master https://github.com/Munawar-git/meta-tab-layer [목표] 기본적인 커널 모듈 레서피의 구조를 확인한다. 모듈 제어와 관련된 명령어들의 동작을 확인한다. 1. poky 하위에 있는 hello-mod 예제를 meta-mylayer/recipes-kernel 에 복사한다. $ cp -r ../../poky/meta-skeleton/recipes-kernel/hello-mod/ ./ 2. hello-mod 의 구조는 아래와 같다. hello-mod/ files COPYING hello.c Makefile hello-mod_0.1.bb 3. .hello-mod_0.1.b

Naver Blog

[BBB] Yocto#Character Device Driver 예제

Reference: https://youtu.be/gdHBmgsux1E?si=bEjthZhO_Zyfi72D ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. https://github.com/Munawar-git/YoctoTutorials/tree/master https://github.com/Munawar-git/meta-tab-layer [목표] 기본적인 Character Device Driver 를 위한 yocto 레서피를 확인한다. Character Device 장치에 read / write 를 수행한다. 1. character device 를 위한 tab-module 레서피의 구조는 아래와 같이 구성한다. tab-module/ files COPYING Makefile tab-module.c tab-module.bb 2. tab-module.bb 레서피는 아래와 같다. 대부분의 내용은 앞선 hello-mod 예제와 동일하다. SUMMARY =

Naver Blog

[BBB] Yocto#Character Device Driver 커널 추가 예제

Reference: https://youtu.be/0BaNjmVsXNY?si=58X3k0RxW3q7ppDI ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. https://github.com/Munawar-git/YoctoTutorials/tree/master https://github.com/Munawar-git/meta-tab-layer [목표] Custom Driver 를 커널 이미지에 포함하여 빌드하는 방법을 이해한다. 앞선 예제에서는 Runtime 에 로드할 수 있는 모듈 형태로 Driver 를 yocto 를 이용하여 만드는 방법을 확인하였다면, 이번 예제는 Custom Driver 를 커널 이미지에 추가하는 빌드하는 방법을 설명하고 있습니다. 과정이 긴 편이라서 강사의 유투브 강의를 보시고 따라해 보시기를 권장합니다. 1. 커널 작업폴더를 정리한다. $ bitbake -c cleansstate virtual/kernel 2. 커널 작업폴더로 이동하기 위해

Naver Blog

[DY-SV5W] MP3 Player

GitHub - eziya/DY-SV5W: DY-SV5W arduino test project DY-SV5W arduino test project. Contribute to eziya/DY-SV5W development by creating an account on GitHub. github.com DY-SV5W MP3 재생 모듈을 사용해보았습니다. 핀을 이용한 제어도 가능하고 UART 통신을 통한 제어도 가능합니다. 기본적인 동작은 잘 되는거 같은데 Loop 모드 재생은 메뉴얼에 작성된 명령으로 제어가 잘 되지는 않네요. 테스트를 위해 작성한 아두이노 코드는 아래와 같습니다. 원래 계획은 메뉴얼의 Loop Mode 를 이용해서 다음 곡으로 자동 재생을 시키는 것인데 정상적으로 동작하지 않아서 상태 확인 후 재생 정지 시 다음 곡을 재생하도록 수정하였습니다. !!! 혹시 walk around 하는 방법을 아시는 분은 댓글 부탁 드립니다. // Define constants const

Naver Blog

[BBB] Yocto 로 빌드한 이미지를 eMMC 에 넣기

Reference: Flashing BBB eMMC with Yocto Image? - General Discussion - BeagleBoard Flashing BBB eMMC with Yocto Image? This image you flashed with balena Etcher, is it an img, wic, etc file? aka, what was the file name? Regards, forum.beagleboard.org 1. yocto 의 /tmp/deply/images/beaglebone-yocto 폴더에서 빌드한 이미지 파일을 Etcher 등을 이용하여 우선 writing 한다. 2. 쓰기 작업이 끝나면 다시 SD카드를 넣어주면 boot, root 파티션이 /media/$USER 폴더 하위에 mount 된 것을 확인할 수 있다. 3. 해당 이미지에 다시 wic 파일을 복사해 넣으려고 하는데 파일의 크기에 비해 rootfs 파티션의 크기가 작기 때문에 ro

Naver Blog

[BBB] meta-ti 레이어를 사용하여 Beaglebone Black 이미지 빌드하기

이번 글에서는 BBB 이미지를 빌드 시에 meta-yocto-bsp 를 사용하지 않고 meta-ti 레이어를 사용하는 방법에 대해서 기술해 보고자 합니다. 기본적으로 yocto 는 특정 하드웨어에 대해서 meta-yocto-bsp 라는 레이어에 관련된 메타 정보들을 가지고 있고 BBB 도 yocto bsp 에서 지원하는 하드웨어 입니다. 하지만 아래와 같이 지원하는 기능에 일부 빠진 것들이 있기 때문에 meta-ti 를 사용하여 이미지를 빌드하는 것이 특화 기능 사용이나 성능면에서 유리할 수 있는것 같습니다. (아래 GPT 내용은 저렇게 쓰여있지만 실제는 이미 Yocto BSP 에 반영이 되어 있을 수도 있을거 같습니다.) 아래 과정에서는 meta-ti 를 사용하기 위한 순서를 기술합니다. 1. meta-ti 레이어를 다운로드 하고 yocto branch 와 동일한 dunfell branch 로 checkout 한다. $ cd ~/Workspace/yocto $ git clone -

Naver Blog

[BBB] meta-raspberrypi 레이어를 사용하여 RPI3 이미지 빌드하기

이번 글에서는 yocto 를 이용하여 Raspberry Pi 3 를 위한 이미지 빌드 순서를 정리하고자 합니다. 1. yocto 가 설치된 폴더로 이동 후 meta-raspberrypi 와 meta-openembedded 를 다운로드 한다. branch 는 yocto brach 에 맞게 dunfell 로 설정한다. 다른 branch 를 사용하는 경우에는 사용하는 branch 로 통일한다. $ cd ~/Workspace/yocto $ git clone --branch dunfell git://git.yoctoproject.org/meta-raspberrypi $ git clone --branch dunfell git://git.yoctoproject.org/meta-openembedded 2. oe-init-build-env 스크립트를 이용하여 build-rpi 라는 빌드 폴더를 생성하고 아래와 같이 meta-oe, meta-python, meta-multimedia, meta-net

Naver Blog

[BBB] Yocto#PROVIDES

Reference: https://youtu.be/qT3IuaRfjCg?si=6B-oZIckTygubyd_ ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials GitHub - Munawar-git/YoctoTutorials Contribute to Munawar-git/YoctoTutorials development by creating an account on GitHub. github.com [목표] PROVIDES 의 목적과 용도를 확인한다. PROVIDES 는 빌드 타임에 제공할 수 있는 dependency 를 명시합니다. 앞선 예제에서 DEPENDS 를 이용해서 add 패키지에 대한 빌드 타임 의존성을 지정했는데 이때 패키지 이름이 아닌 alias 와 유사한 개념으로 제공하는 의존성을 명시할 수 있습니다. 1. 앞선 depends-example 폴더, 레서피 파일과 소스 파일들을 그대로 사용한다

Naver Blog

[BBB] Yocto#PRFERRED_PROVIDER

Reference: https://youtu.be/JGOtX6ZAwak?si=AwkT5_jsiFtVlbrS ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials GitHub - Munawar-git/YoctoTutorials Contribute to Munawar-git/YoctoTutorials development by creating an account on GitHub. github.com [목표] PREFERRED_PROVIDER 의 목적과 용도를 확인한다. PREFERRED_PROVIDER 는 복수 개의 PROVIDER 가 동일한 alias 를 가지고 있을 때 그 중 특정 패키지의 의존성을 우선하는 것을 명시할 수 있습니다. PREFERRED_PROVIDER 를 지정하지 않는 경우 우선 발견하는 레서피를 사용하여 빌드하기 때문의 의도하지 않은 오류를 막을 수 있습니다. 1. 기존 depends-

Naver Blog

[BBB] Yocto#PRFERRED_VERSION

Reference: https://youtu.be/jI2f3lCD4WE?si=UccMmNM1FU9bXXLz ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials GitHub - Munawar-git/YoctoTutorials Contribute to Munawar-git/YoctoTutorials development by creating an account on GitHub. github.com [목표] PREFERRED_VERSION 의 목적과 용도를 확인한다. PREFERRED_VERSION 은 동일한 이름을 가지는 레서피가 복수개의 버전일 때 복수개의 버전 중 특정 버전을 지정하여 빌드할 수 있다. 만일 PREFERRED_VERSION 이 지정되지 않는 경우에는 최신 버전을 사용한다. 1. 기존 perferred-version-example 폴더를 아래와 같이 구성한다. preferred-versi

Naver Blog

[BBB] Yocto#OERUNMAKE

Reference: https://youtu.be/_7nQHSvqtbI?si=74hUkY9b0l8yuB0O ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials https://github.com/Munawar-git/meta-tab-layer [목표] oe_runmake 의 목적과 용도를 확인한다. GPT 에서 확인한 oerunmake 의 용도는 간단하게 이야기하면 Makefile 을 이용하여 레서피 내 do_compile 과 do_install 같은 단계를 간단하게 표현하여 표준화된 형태로 레서피를 만들 수 있도록 도와주는 도구입니다. 1. oerunmake-example 폴더를 아래와 같이 구성한다. adv-calculator 레서피와 레서피에서 빌드하는 파일들을 files 폴더 하위에 배치한다. oerunmake-example/ adv-calculator.bb files adv-calculato

Naver Blog

[BBB] Yocto#EXTRA_OEMAKE

Reference: https://youtu.be/it1aYiWmTHQ?si=zj20c8refFq1MR2g ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials https://github.com/Munawar-git/meta-tab-layer [목표] EXTRA_OEMAKE 의 목적과 용도를 확인한다. EXTRA_OEMAKE 는 앞서 사용한 makefile 에서 사용하는 환경 변수를 전달하는 용도로 사용할 수 있습니다. 아래 예제에서는 DESTDIR, BINDIR, TARGET, LIBS 변수를 EXTRA_OEMAKE 를 이용해서 makefile 로 전달합니다. 1. oerunmake-example2 폴더를 아래와 같이 구성한다. adv-calculator_1.1 레서피와 레서피에서 빌드하는 파일들을 files 폴더 하위에 배치한다. 앞선 예제의 adv-math-lib.c 파일을 쪼개서 각각의 add-li

Naver Blog

[BBB] Yocto#bbappend & BBMASK

Reference: https://youtu.be/IxXSABanxEQ?si=ObUvgmLvHwk8dEdB ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials https://github.com/Munawar-git/meta-tab-layer [목표] bbappend 파일의 목적과 용도를 확인한다. bbappend 는 기존에 이미 작성된 bb 레서피 파일에 추가 또는 변경 작업을 하는 경우에 사용될 수 있다. 아래 예제에서는 bbb-example.bb 레서피에 추가 설정을 하기 위해 bbb-example.bbappend 파일을 생성하였다. BBMASK 의 용도를 확인한다. BBMASK 는 bitbake 가 masking 할 레서피나 레이어를 지정할 수 있다. 아래 예제에서는 새롭게 추가한 bbb-example.bbappend 레서피를 적용하거나 적용하지 않는데 사용하였다. 1. 기존에 생성되어 있는 bbb

Naver Blog

[BBB] Yocto#FILESEXTRAPATHS

Reference: https://youtu.be/thOvmzsVbrA?si=eA31KUTsApSqVjDT ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials https://github.com/Munawar-git/meta-tab-layer [목표] FILESEXTRAPATHS 의 목적과 용도를 확인한다. FILESEXTRAPATHS는 Yocto 레시피 내에서 참조되는 추가 파일들의 경로를 지정하는 데 사용됩니다. 이 변수는 주로 bbappend 파일을 사용할 때 중요합니다. bbappend 파일은 기존의 .bb 레시피를 확장하거나 수정하는 데 사용되며, 종종 다른 위치에 저장될 수 있습니다. 기본적으로 Yocto 빌드 시스템은 레시피에 명시된 SRC_URI 변수를 통해 파일을 찾습니다. 이 변수는 로컬 파일 또는 원격 소스의 위치를 지정할 수 있습니다. 단, bbappend 파일을 사용하는 경우, 이

Naver Blog

[BBB] Yocto#clean, cleansstate, cleanall

Reference: https://youtu.be/lfORqtu8pJg?si=5IZbBAYOdYKaMvAq ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials https://github.com/Munawar-git/meta-tab-layer [목표] bitbake 의 clean 명령어들인 clean, cleansstate, cleanall 동작의 차이에 대해서 이해한다. Yocto에 의해 관리되는 폴더는 크게 세 가지로 구분할 수 있습니다: 1. Download 폴더: 빌드를 위해 다운로드 받은 소스 파일이 위치하는 폴더입니다. 이 폴더에는 소스 코드, 패치 파일 등이 저장됩니다. 2. 임시작업폴더 (tmp/work): Yocto는 레시피의 빌드 작업을 수행할 때 이 임시 디렉토리를 사용합니다. 여기에는 소스 파일들이 복사되고, 컴파일 및 빌드 작업이 수행됩니다. Youtue 에서 강사는 이 디렉토리를

Naver Blog

[BBB] Yocto#"systemd" Init manager

Reference: https://youtu.be/5iFZZK4l6mM?si=ESUnsXZfxObcB7Qp ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. YoctoTutorials/24_SystemD_Init_Manager/24_SystemD_init_manager.md at master · Munawar-git/YoctoTutorials (github.com) https://github.com/Munawar-git/meta-tab-layer [목표] Linux 의 초기화를 담당하는 Init Manager 에 대해서 이해한다. 대표적인 Init Manager 에는 Busybox Init, SysVInit, systemd 가 있습니다. Busybox 는 가벼운 시스템 개발 시에 적합하며 현재 다수의 리눅스 distro 는 systemd 를 사용합니다. 기능면에서 다른 Init manager 와 차별성을 갖고 있는 점은 아래와 같습니다. `systemd`는 현대적인

Naver Blog

[BBB] Yocto#"systemd" 서비스 레서피

Reference: https://youtu.be/nSeaZ1khchA?si=IWx4MjwiaeiJBZ6B ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. YoctoTutorials/25_SystemD_Service_Recipe/25_SystemD_Service_Recipe.md at master · Munawar-git/YoctoTutorials (github.com) https://github.com/Munawar-git/meta-tab-layer [목표] systemd 서비스를 추가하는 레서피를 생성한다. 먼저 systemd 서비스를 추가하기 전에 systemd 명령어들은 아래와 같이 사용이 가능합니다. 1. 서비스 시작 systemctl start [서비스명] 2. 서비스 중지 systemctl stop [서비스명] 3. 서비스 재시작 systemctl restart [서비스명] 4. 서비스 활성화 systemctl enable [서비스명] 5. 서비스 비

Naver Blog

[BBB] Yocto#Kernel 설정하기

Reference: https://youtu.be/Q0dWV9jWwkM?si=z6w_tZOftZgz2sPW ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. https://github.com/Munawar-git/YoctoTutorials/tree/master https://github.com/Munawar-git/meta-tab-layer [목표] Kernel 설정에서 SysFs 파일시스템에서 gpio 지원 기능을 enable 한다. 기본적으로 리눅스는 대부분의 장치를 파일 형태로 제어할 수 있다. 이 기능을 통해서 GPIO 제어 동작을 수행할 수 있는데 기본 Kernel 설정에서 SysFs 를 통한 제어 기능은 비활성화 되어 있다. 아래 예제에서는 Kernel 을 설정하여 SysFs 를 통해 GPIO 제어를 enable 하는 방법을 확인한다. Kernel 에서 GPIO Support 기능을 활성화 하지 않은 상태에서는 아래와 같이 /sys/class 폴더에 gp

Naver Blog

[STM32MP157-DK1] Yocto#Custom Image + Enable WiFi

Reference: https://www.digikey.com/en/maker/projects/intro-to-embedded-linux-part-7-enable-wifi-networking-with-yocto/2e490a896a424a12b796ae60fef52937 Intro to Embedded Linux Part 7 - Enable WiFi Networking with Yocto In this tutorial, we demonstrate how to enable WiFi drivers and networking for the STM32MP157D-DK1 using the Yocto Project www.digikey.com ※ Digikey 에서 강의한 자료를 따라하면서 정리해 본 자료입니다. 아래는 제가 나중에 기억하기 위해서 정리하는 내용이며 링크를 따라가시면 매우 자세히 정리되어 있습니다. 이번 강의의 목표는 USB 동글 wifi 모듈이 동작하도록 커널을 수정하여 cus

Naver Blog

[BBB] Yocto#IMAGE_INSTALL 로 패키지 추가하기

Reference: https://youtu.be/naszh2WoHAM?si=rAaOYfKD9qclvq8O ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials GitHub - Munawar-git/YoctoTutorials Contribute to Munawar-git/YoctoTutorials development by creating an account on GitHub. github.com [ 목표 ] local.conf 파일에 IMAGE_INSTALL 설정을 추가하여 core-image-full-cmdline 이미지에 python3 와 git 를 추가한다. 1. bitbake-layers show-recipes 명령을 이용해서 pytho3 와 git 이 포함되어 있는 레이어를 확인한다. 둘다 meta 레이어에 포함되어 있는 것을 확인할 수 있다. $ cd ~/Workspace/yocto/ $ so

Naver Blog

[BBB] Yocto#레서피 기본 변수 사용하기

Reference: https://youtu.be/g3Xfckd-mE8?si=Vd8KrLjdkNg-VJEb ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials GitHub - Munawar-git/YoctoTutorials Contribute to Munawar-git/YoctoTutorials development by creating an account on GitHub. github.com [ 목표 ] yocto 레서피에서 사용하는 변수들에 대해서 알아본다. 1. 아래와 같이 meta-mylayer/recipes-example 디렉토리를 구성한다. recipes-example/ example example1 example1.c example1.bb example2 example2.c example2_0.1_r1.bb 2. example1.c 와 example2.c 파일은 아래와 같이

Naver Blog

[BBB] Yocto#변수 할당 Operator

Reference: https://youtu.be/kCl6D5WwBXQ?si=fJlx6I9U_Cdj4bgL ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials GitHub - Munawar-git/YoctoTutorials Contribute to Munawar-git/YoctoTutorials development by creating an account on GitHub. github.com [ 목표 ] 변수 할당 오퍼레이터들의 동작 차이에 대해서 확인한다. 아래와 같이 example.bb 파일을 하나 만들어주고 아래 예제들을 테스트 한다. SUMMARY = "bitbake-layers recipe" DESCRIPTION = "Recipe created by bitbake-layers" LICENSE = "MIT" A ??= "val" A =+ "var" 테스트 시 변수 값 확인은 아래와 같이 -e

Naver Blog

[BBB] Yocto#HelloWorld 레서피

Reference: https://youtu.be/YSITCPhk_qU?si=rEauG350GSFPIZel ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials GitHub - Munawar-git/YoctoTutorials Contribute to Munawar-git/YoctoTutorials development by creating an account on GitHub. github.com [ 목표 ] meta-mylayer 에 helloworld 레서피를 추가한 후 build 하여 /usr/bin 폴더에 위치시킨다. 1. oe-init-build-env 스크립트 이용하여 build-bbb 환경을 설정한다. $ cd ~/Workspace/yocto $ source poky/oe-init-build-env build-bbb 2. meta-mylayer/recipes-example 하위에 hellowo

Naver Blog

[BBB] Yocto#Build Task 정리

Reference: https://youtu.be/a6dB7Z2HlNM?si=7k9JgPaisW3TrAGG ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials GitHub - Munawar-git/YoctoTutorials Contribute to Munawar-git/YoctoTutorials development by creating an account on GitHub. github.com Yocto build task 들에 대해서 gpt 에 확인하면 아래와 같은 다양한 task 들이 존재한다. 강의에서는 주로 설정이 필요한 do_fetch 부터 do_install 까지의 동작을 설명하고 있다. 1. do_fetch: 이 작업은 소프트웨어를 빌드하는 데 필요한 소스 코드 및 기타 파일을 가져옵니다. 일반적으로 버전 관리 시스템(예: Git)에서 코드를 다운로드하거나 패치를 적용하고 소스가 빌드를 위

Naver Blog

[BBB] Yocto#RDEPENDS

Reference: https://youtu.be/x4CgMt7VqNo?si=WFW81rDmpizXag9q ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials GitHub - Munawar-git/YoctoTutorials Contribute to Munawar-git/YoctoTutorials development by creating an account on GitHub. github.com [목표] RDEPENDS 의 목적과 용도를 확인한다. 1. GPT 에 확인을 해보면 DEPENDS 와 RDEPENDS 가 사용되는 것을 확인할 수 있다. 이번 강의에서는 RDEPENDS 를 먼저 확인한다. 핵심이 되는 내용은 build time dependency 인지 runtime dependency 인지에 따라 구분된다는 점이다. RDEPENDS 는 runtime 즉, 구동 시에 필요한 package 의 의존

Naver Blog

[BBB] Yocto#RPROVIDES

Reference: https://youtu.be/H4aRXJq5yK4?si=dLRCWidS0T9HV-q8 ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials GitHub - Munawar-git/YoctoTutorials Contribute to Munawar-git/YoctoTutorials development by creating an account on GitHub. github.com [목표] RPROVIDES 의 목적과 용도를 확인한다. 1. RPROVIDES 는 runtime 에 기능을 제공하는 패키지를 명시하는 용도로 사용된다. 앞서 RDEPENDS 가 필요로 하는 패키지를 명시하였다면 RPROVIDES 는 이와 쌍으로 기능을 제공하는 패키지를 명시할 수 있다. 2. 앞선 rdepends-example 과 동일한 형태로 rprovides-example 디렉토리와 레서피 파일을 아래와 같이

Naver Blog

[BBB] Yocto#RCONFLICTS

Reference: https://youtu.be/PT51np3hxzs?si=duSoJE8t_63af_c1 ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials GitHub - Munawar-git/YoctoTutorials Contribute to Munawar-git/YoctoTutorials development by creating an account on GitHub. github.com [목표] RCONFLICTS 의 목적과 용도를 확인한다. RCONFLICTS 는 함께 이미지에 포함되면 conflict 가 발생할 수 있는 문제를 명시하여 차단하는 역할을 수행합니다. 특정한 패키지들이 설치되지 않아야 할 때 RCONFLICTS 를 명시하여 빌드 시 오류를 발생시켜 문제를 차단할 수 있습니다. 1.예제를 위하여 아래와 같이 3가지의 레서피를 구성한다. rconflicts-example1 의 레서피

Naver Blog

[BBB] Yocto#DEPENDS

Reference: https://youtu.be/mF-VpN6Rc88?si=qt8BThKIqZSmxBzJ ※강사의 Github 에 강의 핵심 내용들이 잘 정리되어 있습니다. GitHub - Munawar-git/YoctoTutorials GitHub - Munawar-git/YoctoTutorials Contribute to Munawar-git/YoctoTutorials development by creating an account on GitHub. github.com [목표] DEPENDS 의 목적과 용도를 확인한다. DEPENDS 는 빌드 타임의 dependency 를 명시합니다. RDEPENDS 가 runtime 의 dependency 를 명시하는 반면 DEPENDS 는 빌드 타임의 dependency 를 명시하므로 DEPENDS 는 정적 라이브러리와 같이 빌드 시점에 선행되어서 빌드 되어야 하는 패키지를 지정하는데 사용할 수 있습니다. 1. 아래와 같이 recipes-e

Naver Blog

[Bootlin] Linux Kernel and Driver#커널 빌드

모든 내용은 아래 링크의 bootlin 자료를 따라 학습하는 과정에서 개인적 기록으로 남기는 자료이며 모든 권리는 원작자에게 있습니다. Reference https://bootlin.com/doc/training/linux-kernel/ Bootlin – Embedded Linux and kernel engineering Name Last modified Size linux-kernel-slides.pdf 2023-05-18 09:10 8.2M linux-kernel-online-agenda.pdf 2023-05-18 09:10 1.0M linux-kernel-online-agenda-fr.pdf 2023-05-18 09:10 1.0M linux-kernel-labs.tar.xz 2023-05-18 09:10 2.5M linux-kernel-labs.pdf 2023-05-18 09:10 5.4M linux-kernel-agenda.pdf 2... bootlin.com 기본적으로 아래

Naver Blog

[Bootlin] Linux Kernel and Driver#모듈 만들기

모든 내용은 아래 링크의 bootlin 자료를 따라 학습하는 과정에서 개인적 기록으로 남기는 자료이며 모든 권리는 원작자에게 있습니다. Reference https://bootlin.com/doc/training/linux-kernel/ Bootlin – Embedded Linux and kernel engineering Name Last modified Size linux-kernel-slides.pdf 2023-05-18 09:10 8.2M linux-kernel-online-agenda.pdf 2023-05-18 09:10 1.0M linux-kernel-online-agenda-fr.pdf 2023-05-18 09:10 1.0M linux-kernel-labs.tar.xz 2023-05-18 09:10 2.5M linux-kernel-labs.pdf 2023-05-18 09:10 5.4M linux-kernel-agenda.pdf 2... bootlin.com 매우 간단한 형

Naver Blog

[Bootlin] Linux Kernel and Driver#I2C Nunchuk 드라이버 예제

모든 내용은 아래 링크의 bootlin 자료를 따라 학습하는 과정에서 개인적 기록으로 남기는 자료이며 모든 권리는 원작자에게 있습니다. Reference https://bootlin.com/doc/training/linux-kernel/ Bootlin – Embedded Linux and kernel engineering Name Last modified Size linux-kernel-slides.pdf 2023-05-18 09:10 8.2M linux-kernel-online-agenda.pdf 2023-05-18 09:10 1.0M linux-kernel-online-agenda-fr.pdf 2023-05-18 09:10 1.0M linux-kernel-labs.tar.xz 2023-05-18 09:10 2.5M linux-kernel-labs.pdf 2023-05-18 09:10 5.4M linux-kernel-agenda.pdf 2... bootlin.com i2c 장치를

Naver Blog

[ESP32] ESP32-S3 USB-JTAG & USB-UART

ES32-S3 는 아래와 같이 USB 를 통해 JTAG 과 UART 통신이 모두 가능하다. 다만 드라이버 문제로 OpenOCD 를 이용한 JTAG 연결이 불가한 경우에는 아래와 같이 zadiag 라는 유틸리티를 사용하여 해결이 가능하다. zadig 를 실행하고 List All Devices 메뉴를 선택하면 아래와 같이 USB JTAG/serial debug unit (interface 0) 와 USB JTAG/serial debug unit (interface 2) 장치가 표시된다. Interface 0 는 USB-UART 통신을 위해서 USB Serial (CDC) 로 드라이버를 선택한다. Interface 2 는 USB-JTAG 으로 사용하기 위해서 WinUSB 로 드라이버를 선택한다. 드라이버 설치를 완료하고 재부팅을 수행하면 아래와 같이 범용 직렬 버스 장치에는 USB JTAG/serial debug unit 이 표시되고, 포트에는 통신 포트(COM18) 이 표시된다. Fla

Naver Blog

[Maker] Adafruit feather 응용 Music Player

GitHub - eziya/ESP32_V2_MUSIC_MAKER_FEATHER: ESP32_V2_MUSIC_MAKER_FEATHER ESP32_V2_MUSIC_MAKER_FEATHER. Contribute to eziya/ESP32_V2_MUSIC_MAKER_FEATHER development by creating an account on GitHub. github.com 한동안 개인적으로 무엇인가 만들어보는 작업들을 못하고 있다가 Adafruit 에서 재미있는 물건을 발견해서 한번 작업을 해 보았습니다. Adafruit Quad Side-By-Side FeatherWing Kit with Headers This is the FeatherWing Quad Side-by-Side - a prototyping add-on and more for all Feather boards. This is similar to our FeatherWing Proto except there are fo

Naver Blog

[STM32MP157-DK1] Yocto#core-image-minimal build

Reference: https://www.digikey.com/en/maker/projects/intro-to-embedded-linux-part-2-yocto-project/2c08a1ad09d74f20b9844e566d332da4 Intro to Embedded Linux Part 2 - Yocto Project Getting started with the Yocto Project to create a custom Linux distribution for an STM32MP1 single board computer. www.digikey.com ※ Digikey 에서 강의한 자료를 따라하면서 정리해 본 자료입니다. 아래는 제가 나중에 기억하기 위해서 정리하는 내용이며 링크를 따라가시면 매우 자세히 정리되어 있습니다. 빌드에 필요한 패키지 설치 $ sudo apt update $ sudo apt upgrade $ sudo apt install -y bc build-essential

Naver Blog

[STM32MP157-DK1] Yocto#Custom Image

Reference: https://www.digikey.com/en/maker/projects/intro-to-embedded-linux-part-4-create-custom-layer-and-image-in-yocto/aac0ab17e0c64ae482675abea00b328d Intro to Embedded Linux Part 4 - Create Custom Layer and Image in Yocto In this tutorial, we demonstrate how to use the Yocto Project to create a custom layer and use it to generate a custom Linux image. www.digikey.com ※ Digikey 에서 강의한 자료를 따라하면서 정리해 본 자료입니다. 아래는 제가 나중에 기억하기 위해서 정리하는 내용이며 링크를 따라가시면 매우 자세히 정리되어 있습니다. 이번 예제의 목표는 core-image-mini

Naver Blog

[STM32MP157-DK1] Yocto#Custom Image + Enabling I2C

Reference: https://www.digikey.com/en/maker/projects/intro-to-embedded-linux-part-5-how-to-enable-i2c-in-the-yocto-project/6843bbf9a83c4c96888fccada1e7aedf Intro to Embedded Linux Part 5 - How to Enable I2C in the Yocto Project In this tutorial, we demonstrate how to modify a device tree source (.dts) file to enable an I2C port. We then create a patch file and apply it to the kernel during the bitbake build phase in the Yocto Project. www.digikey.com ※ Digikey 에서 강의한 자료를 따라하면서 정리해 본 자료입니다. 아래는 제

Naver Blog

[STM32MP157-DK1] Yocto#Custom Image + I2C Application

Reference: Intro to Embedded Linux Part 6 - Add Custom Application to Yocto Build In this tutorial, we demonstrate how to create a custom Linux application and recipe to build the compiled program into a custom image. www.digikey.com ※ Digikey 에서 강의한 자료를 따라하면서 정리해 본 자료입니다. 아래는 제가 나중에 기억하기 위해서 정리하는 내용이며 링크를 따라가시면 매우 자세히 정리되어 있습니다. 이번 강좌의 목표는 custom application 을 하나 만들어서 custom-image 에 추가하는 것입니디다. 1. meta-custom 레이어 하위에 recipes-apps/temp/files/src 폴더를 생성합니다. $ cd ~/Projects/yocto/meta-custom $ mkd

Naver Blog

[Node-Red] Data Logging

Reference: https://youtu.be/E2aBIqssQLM 이번 글에서 앞서 테스트 하였던 modbus 데이터를 GUI 에 표시하는 것과 동시에 csv 파일로 logging 하는 방법을 정리해 보고자 합니다. Reference 동영상에서 매우 잘 설명을 해 놓았기 때문에 우선 동영상을 참고하시는 것을 추천 드립니다. 기본적인 구성은 기존에 작성하였던 parse_modbus_data 함수와 GUI 노드들에 아래와 같이 logging 관련 노드들을 추가로 구성합니다. 첫번째, check enable logging 은 logging 을 하도록 설정되어 있는지 아닌지를 판단합니다. 두번째, msg.payload.data 에 담겨있는 데이터를 다루기 쉽도록 msg.payload 로 옮겨줍니다. 세번째, logging 용 파일명을 현재 시간을 이용하여 만들어 줍니다. 네번째, file Lister 를 이용해서 현재 이미 해당 파일이 만들어져 있는지 확인합니다. 다섯번째, 파일 존재

Naver Blog

[Node-Red] Gate 노드

Reference: https://youtu.be/I6ejwwKTsZc 게이트 노드는 데이터 flow 를 잠시 멈추게 하거나 다시 진행하게 하거나 하는 기능을 수행할 수 있는 노드입니다. ' 실제 게이트 노드가 없다면 function 노드에서 flow 변수를 확인해서 유사하게 기능을 만들 수 있을 것 같기는 하지만 실제 gate 노드가 있다면 보다 명시적으로 제어 flow 를 구성할 수 있는 장점이 있다고 보여집니다. [{"id":"dedad58f3e6cc9c6","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["15aae525ddb96209","d2a65ce9c011a87c","77b4cc3dc2b6d7b1

Naver Blog

[Node-Red] Dashboard Form

Reference: https://youtu.be/eu1vw1YPzsk 다음 예제는 Youtube 에서 찾게된 예제인데 유용하다고 생각되어서 정리해 보았습니다. 저는 간략하게 정리하였기 때문에 동영상을 한번 보시는 것을 추천 드립니다. 기능은 아래와 같습니다. Input Names Form 에 이름을 입력 후 Submit 버튼을 클릭하면 flow 의 names 변수에 이름이 저장됩니다. names 변수는 배열 형태로 복수의 이름을 저장할 수 있습니다. Show Flow.Names 버튼을 클릭하면 아래에 저장된 이름이 표시됩니다. Remove Name Form 에 이름을 입력 후 Submit 버튼을 클릭하면 flow names 변수에 일치하는 이름이 있는 경우 해당 이름이 삭제됩니다. [{"id":"8d91a3f6f3565309","type":"group","z":"a57543e1798c6606","style":{"stroke":"#999999","stroke-opacity":"1",

Naver Blog

[BBB] Toolchain Build

모든 내용은 아래 링크의 bootlin 자료를 따라 학습하는 과정에서 개인적 기록으로 남기는 자료이며 모든 권리는 원작자에게 있습니다. Reference https://bootlin.com/doc/training/embedded-linux-bbb/ Bootlin – Embedded Linux and kernel engineering Name Last modified Size embedded-linux-bbb-slides.pdf 2023-05-09 13:06 17M embedded-linux-bbb-labs.tar.xz 2023-05-09 13:07 22M embedded-linux-bbb-labs.pdf 2023-05-09 13:06 6.6M embedded-linux-bbb-agenda.pdf 2023-05-09 13:07 1.1M README.txt 2023-05-09 13:00 274 Search for: Search Next training... bootlin.com cros

Naver Blog

[BBB] U-Boot Build

모든 내용은 아래 링크의 bootlin 자료를 따라 학습하는 과정에서 개인적 기록으로 남기는 자료이며 모든 권리는 원작자에게 있습니다. Reference https://bootlin.com/doc/training/embedded-linux-bbb/ Bootlin – Embedded Linux and kernel engineering Name Last modified Size embedded-linux-bbb-slides.pdf 2023-05-09 13:06 17M embedded-linux-bbb-labs.tar.xz 2023-05-09 13:07 22M embedded-linux-bbb-labs.pdf 2023-05-09 13:06 6.6M embedded-linux-bbb-agenda.pdf 2023-05-09 13:07 1.1M README.txt 2023-05-09 13:00 274 Search for: Search Next training... bootlin.com Work

Naver Blog

[BBB] Linux Kernel Build

모든 내용은 아래 링크의 bootlin 자료를 따라 학습하는 과정에서 개인적 기록으로 남기는 자료이며 모든 권리는 원작자에게 있습니다. Reference https://bootlin.com/doc/training/embedded-linux-bbb/ Bootlin – Embedded Linux and kernel engineering Name Last modified Size embedded-linux-bbb-slides.pdf 2023-05-09 13:06 17M embedded-linux-bbb-labs.tar.xz 2023-05-09 13:07 22M embedded-linux-bbb-labs.pdf 2023-05-09 13:06 6.6M embedded-linux-bbb-agenda.pdf 2023-05-09 13:07 1.1M README.txt 2023-05-09 13:00 274 Search for: Search Next training... bootlin.com 커널 빌

Naver Blog

[BBB] Busybox Build

모든 내용은 아래 링크의 bootlin 자료를 따라 학습하는 과정에서 개인적 기록으로 남기는 자료이며 모든 권리는 원작자에게 있습니다. Reference https://bootlin.com/doc/training/embedded-linux-bbb/ Bootlin – Embedded Linux and kernel engineering Name Last modified Size embedded-linux-bbb-slides.pdf 2023-05-09 13:06 17M embedded-linux-bbb-labs.tar.xz 2023-05-09 13:07 22M embedded-linux-bbb-labs.pdf 2023-05-09 13:06 6.6M embedded-linux-bbb-agenda.pdf 2023-05-09 13:07 1.1M README.txt 2023-05-09 13:00 274 Search for: Search Next training... bootlin.com busy

Naver Blog

[BBB] GPIO 제어

모든 내용은 아래 링크의 bootlin 자료를 따라 학습하는 과정에서 개인적 기록으로 남기는 자료이며 모든 권리는 원작자에게 있습니다. Reference https://bootlin.com/doc/training/embedded-linux-bbb/ Bootlin – Embedded Linux and kernel engineering Name Last modified Size embedded-linux-bbb-slides.pdf 2023-05-09 13:06 17M embedded-linux-bbb-labs.tar.xz 2023-05-09 13:07 22M embedded-linux-bbb-labs.pdf 2023-05-09 13:06 6.6M embedded-linux-bbb-agenda.pdf 2023-05-09 13:07 1.1M README.txt 2023-05-09 13:00 274 Search for: Search Next training... bootlin.com /dev

Naver Blog

[BBB] LED 제어

모든 내용은 아래 링크의 bootlin 자료를 따라 학습하는 과정에서 개인적 기록으로 남기는 자료이며 모든 권리는 원작자에게 있습니다. Reference https://bootlin.com/doc/training/embedded-linux-bbb/ Bootlin – Embedded Linux and kernel engineering Name Last modified Size embedded-linux-bbb-slides.pdf 2023-05-09 13:06 17M embedded-linux-bbb-labs.tar.xz 2023-05-09 13:07 22M embedded-linux-bbb-labs.pdf 2023-05-09 13:06 6.6M embedded-linux-bbb-agenda.pdf 2023-05-09 13:07 1.1M README.txt 2023-05-09 13:00 274 Search for: Search Next training... bootlin.com 커널에서

Naver Blog

[BBB] Build Root

https://github.com/buildroot/buildroot buildroot 에 필요한 패키지를 설치한다. $ sudo apt install build-essential git autoconf bison flex texinfo help2man gawk \ libtool-bin libncurses5-dev unzip git 에서 최신 buildroot 를 다운로드 한다. $ git clone git://git.buildroot.net/buildroot 기본적인 kconfig 방식으로 설정한다. 테스트를 위해서 mariadb, nginx, dropbear 패키지를 설치한다. c++ support 는 mariadb 패키지 설치를 위해서 설정이 필요하다. make 로 빌드를 수행한다. $ make distclean $ make beaglebone_defconfig $ make menuconfig # BR2_TOOLCHAIN_BUILDROOT_CXX=y # BR2_CCACHE=y

Naver Blog

[Node-RED] modbus master(client)

이번 글에서는 지난번 modbus slave 에 이어서 master 동작을 설명하고자 합니다. 예제는 아래와 같이 구성합니다. 예제는 read write 가 모두 가능한 holding register 와 coil 을 사용하겠습니다. 첨부파일 modbus.txt 파일 다운로드 좌측 상단 노드부터 설명을 드리면, 첫번째 read holding register 라는 이름은 holding register 를 읽기 위한 inject 입니다. 두번째 inject 는 holding 레지스터에 400 이라는 값을 write 하기 위해 payload 값을 400 으로 설정합니다. 세번째 inject 는 coil 의 값을 읽어오기 위한 inject 입니다. 네번째 inject 는 coil 에 true 값을 write 하기 위하여 payload 에 1 을 전달합니다. 첫번째 read registers function 노드는 아래와 같이 payload 를 구성하여 전달합니다. function 코드는 3을

Naver Blog

[Node-RED] Dashboard GUI

지난번 modbus 에 이어서 modbus 로 불러온 데이터를 GUI 에 표시하는 방법에 대해서 정리해 보고자 합니다. 사실 제가 node red 를 공부해 봐야겠다고 생각한 이유도 이 dashboard 기능 때문입니다. 매우 미려한 GUI 는 아니지만 그래도 준수한 GUI 를 매우 손쉽게 만들어 낼 수 있기 때문입니다. 아래 예제의 좌측 Group1 은 지정된 address 부터 4개의 값을 가져와서 표현하는 예제입니다. 보통 센서들의 데이터를 가져온다면 text box 에 현재 상태값을 보여주거나 gauge 를 이용해서 level 을 보여주거나 chart 를 이용해서 시간의 흐름에 따른 트렌드를 보여주는 경우가 많을 것 같아서 아래와 같이 예제를 구성하였습니다. 우측 Group2 는 제어를 위한 예제입니다. switch 를 이용해서 on/off 를 한다거나 콤보박스나 slider 를 이용해서 특정한 레벨까지 제어하는 경우가 많이 있을 것 같습니다. 예제는 아래 파일을 참고하시면

Naver Blog

[Node-RED] join 노드 사용법

join 노드는 분리된 메시지를 합치는데 사용할 수 있는 노드입니다. [{"id":"8e238616470ccf4f","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["3100d76a2e3f18d4","20a536fbcd19ba7e","a3b73dd3cc56701c","6b6437e3adcc9278","06bce1e167ce4f80","6926d1cd04763586","0b0332953de8e76f","06ab3502be85916e","5423f8bef081a0ed","5082b119b015a536"],"x":54,"y":1919,"w":812,"h":202},{"id":"3100d76a2e3f18d4","ty

Naver Blog

[Node-RED] sort 노드 사용법

sort 노드는 데이터를 sorting 하는데 사용하는 노드입니다. [{"id":"fd04def63e308641","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["c2a88ea0c05222b7","0e480a6e1c370012","5bc0b50bfcd81098","e0c76b112f5c13aa","a464c25b5f859491","32d3c24b546d346a","6cf754651d1c3c57","7c747b136b9b7451","fab2c845e631045e"],"x":64,"y":2159,"w":732,"h":202},{"id":"c2a88ea0c05222b7","type":"inject","z":"ba

Naver Blog

[Node-RED] status 노드 사용법

status 노드는 status 가 변경되는 것을 감지할 때 감지된 노드의 정보를 확인할 수 있는 노드입니다. [{"id":"14472ef2771707f9","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["4140bddbb0068055","d535df2bed8ba360","dd674854787c6a2c","143ffc3e3bb22636","5ebd7ef368366205","851d32c34031206c"],"x":64,"y":2419,"w":642,"h":202},{"id":"4140bddbb0068055","type":"status","z":"ba42afc1309d2bfd","g":"14472ef27717

Naver Blog

[Node-RED] delay 노드 사용법

delay 노드는 말 그대로 지정된 시간만큼 flow 의 delay 를 발생 시켜주는 노드입니다. [{"id":"f27dca005ecce2e4","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["fade337850917ab7","061a4b073b583867","481d89c79e185ef2","ab4ea099fc939bb4","d82a44a70fd8b2ba","d4c316735df5a35d"],"x":54,"y":3706.368421052632,"w":752,"h":202},{"id":"fade337850917ab7","type":"comment","z":"ba42afc1309d2bfd","g":"f27dc

Naver Blog

[Node-RED] trigger 노드 사용법

trigger 노드는 반복적인 trigger 동작과 1회성 trigger 동작을 수행할 수 있습니다. [{"id":"9b1395f4052b8769","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["96f8b8938ecc2651","ccc838f207e1e587","51dcfec6b8e01b41","3d15ad6758370d9b","08f730ed0c92191c","56f69f45f4dd1dc5","757b5a29b24f7939"],"x":54,"y":3936.894736842106,"w":732,"h":262},{"id":"96f8b8938ecc2651","type":"inject","z":"ba42afc1

Naver Blog

[Node-RED] batch 노드 사용법

batch 노드는 msg.part 의 index 에 지정된 숫자 간격으로 인덱스를 할당해 주는 기능을 수행하여 join 노드와 함께 사용할 수 있습니다. [{"id":"8cfa2488a3eefd22","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["33eb3faa4767bc03","20a110f2339edab7","e2331f586ac196e6","173c5c0a7ef79a02","49bed51b3c3a9ece","a5317daa54d381ba","6f24613f81a3ef96"],"x":44,"y":4239,"w":972,"h":142},{"id":"33eb3faa4767bc03","type":"comme

Naver Blog

[Node-RED] link 노드 사용법

link 노드는 flow 상에서 노드 간 길게 연결하면서 선들이 복잡해 지는 경우에 유용하게 사용할 수 있습니다. [{"id":"e09094d283301dfb","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["682fce91b29bc6f1","c80eeb26c57099c5","5e969e30e7444254","dc7e094bd8871237","d794ae40ffb8634e"],"x":54,"y":4608.473684210526,"w":402,"h":202},{"id":"682fce91b29bc6f1","type":"inject","z":"ba42afc1309d2bfd","g":"e09094d283301dfb

Naver Blog

[Node-RED] modbus slave(server)

node red 를 공부해보고자 했던 이유는 간단하게 modbus master 를 만들 수 있는 도구가 필요하였기 때문입니다. node red 는 modbus master 와 slave 기능을 모두 지원하는데 master 기능을 테스트 하기 위해서 이미 slave 가 준비되어 있다면 좋겠지만 아직 slave 도 개발 중이라면 아래와 같이 modbus flex server 를 이용해서 테스트용 slave 를 만들어 볼 수 도 있습니다. JSON 코드가 큰 관계로 네이버 블로그의 5000자 제한에 걸려서 예제는 파일로 첨부합니다. (5000자 제한 좀 없애주세요!) 첨부파일 modbus_slave.zip 파일 다운로드 좌측 상단 버튼 부터 우측 하단 순서로 노드 설정을 설명하겠습니다. 첫번째 inject 노드는 holding register 를 초기화 하기 위한 inject 입니다. 실행 시 초기화 수행이 필요하므로 inject once after 옵션을 사용합니다. 두번째 inject

Naver Blog

[STM32L4] Audio Player#QSPI + USB Mass Storage

※ 내용에 오류가 있을 수 있습니다. 오류에 대해서는 Feedback 부탁 드리겠습니다. GitHub - eziya/STM32L4_MOOC: STM32L4 MOOC Project Test STM32L4 MOOC Project Test. Contribute to eziya/STM32L4_MOOC development by creating an account on GitHub. github.com Reference: https://www.st.com/content/st_com/en/support/learning/stm32-education/stm32-moocs/stm32l4-hands-on-workshop.html STM32L4 workshop MOOC - STMicroelectronics Boost application performance with our ultra-low-power STM32L4 MCUs optimized to reduce power consumption and i

Naver Blog

[STM32L4] Audio Player#FreeRTOS + FatFS

※ 내용에 오류가 있을 수 있습니다. 오류에 대해서는 Feedback 부탁 드리겠습니다. GitHub - eziya/STM32L4_MOOC: STM32L4 MOOC Project Test STM32L4 MOOC Project Test. Contribute to eziya/STM32L4_MOOC development by creating an account on GitHub. github.com Reference: https://www.st.com/content/st_com/en/support/learning/stm32-education/stm32-moocs/stm32l4-hands-on-workshop.html 지난번 Mass Storage 기능에 이어서 이번 글에서는 FreeRTOS + FatFS 파트를 정리하고자 합니다. 지난 글은 아래 링크를 참조 부탁 드립니다. [STM32L4] Audio Player#QSPI + USB Mass Storage ※ 내용에 오류가 있을 수 있습

Naver Blog

[STM32L4] Audio Player#SAI(I2S)

※ 내용에 오류가 있을 수 있습니다. 오류에 대해서는 Feedback 부탁 드리겠습니다. GitHub - eziya/STM32L4_MOOC: STM32L4 MOOC Project Test STM32L4 MOOC Project Test. Contribute to eziya/STM32L4_MOOC development by creating an account on GitHub. github.com Reference: https://www.st.com/content/st_com/en/support/learning/stm32-education/stm32-moocs/stm32l4-hands-on-workshop.html [STM32L4] Audio Player#QSPI + USB Mass Storage ※ 내용에 오류가 있을 수 있습니다. 오류에 대해서는 Feedback 부탁 드리겠습니다. Reference: https://... blog.naver.com [STM32L4] Audio Pla

Naver Blog

[STM32L4] Audio Player#Joystick + LCD

※ 내용에 오류가 있을 수 있습니다. 오류에 대해서는 Feedback 부탁 드리겠습니다. GitHub - eziya/STM32L4_MOOC: STM32L4 MOOC Project Test STM32L4 MOOC Project Test. Contribute to eziya/STM32L4_MOOC development by creating an account on GitHub. github.com Reference: https://www.st.com/content/st_com/en/support/learning/stm32-education/stm32-moocs/stm32l4-hands-on-workshop.html [STM32L4] Audio Player#QSPI + USB Mass Storage ※ 내용에 오류가 있을 수 있습니다. 오류에 대해서는 Feedback 부탁 드리겠습니다. Reference: https://... blog.naver.com [STM32L4] Audio Pla

Naver Blog

[Node-RED] Inject & Debug

몇 개의 글에 걸쳐 아래와 같이 Node-RED 를 활용하는 방법에 대해서 정리해 보고자 합니다. 1) Node-RED 의 기본 노드들을 사용하는 방법 2) Modbus 데이터를 취득하는 방법 3) 취득한 Modbus 데이터를 Web GUI 를 통해 제공하는 방법 Node-RED 의 편리한 점은 예제를 손쉽게 Import 해 볼 수 있다는 점입니다. 인터넷에 공개되어 있는 여러 사람들의 예제는 JSON 형태로 되어 있고 문자열을 그대로 복사하여 Import 메뉴를 이용해서 자신의 Flow 에 Import 해서 구성을 확인할 수 있습니다. 제 예제도 그대로 전체 문자를 복사한 뒤, [{"id":"eb9d28e67b60e253","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-positi

Naver Blog

[Node-RED] node.status 함수를 사용한 상태표시

function 노드는 node.log(), node.warn(), node.error() 함수를 사용하여 메시지를 통해서 상태를 제공할 수 있지만 직관적으로 node 블럭에 상태를 표시하여 오류 발생을 확인할 수도 있습니다. [{"id":"2a6d07ca5c1a021d","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["ae6d03fd78082d90","d77470ae3365a6ce","dca1eb5d94e4a316","dfefc6108178acd0","6255d9b666d156a1","69fe69ca44873b14"],"x":714,"y":439,"w":572,"h":222},{"id":"ae6d03fd7

Naver Blog

[Node-RED] change 노드 사용법

change 노드는 편리한 기능을 제공하고 특히 function 시에 global 한 변수값을 필요로 할 때 유용한 노드입니다. [{"id":"559b34b3dcd3e5af","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["3964e577ed48c12c","b24b67e6d49b2815","bbcb91b50e3bde84","1e2ac9be508f7a0b","15541abc6f1640a6","4d6e35621d8a492d","0d9993502978be35","a172c73283dd4213"],"x":54,"y":699,"w":592,"h":262},{"id":"3964e577ed48c12c","type":"i

Naver Blog

[Node-RED] switch 노드 사용법

switch 노드는 조건에 따른 output 출력의 path 를 결정할 수 있도록 합니다. 실제 다양한 언어들의 switch 문과 유사한 기능을 수행할 수 있습니다. [{"id":"e73526fe649ce5ae","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["da033f7968b8c196","9fa7e6b7b3dd6783","afcc95755b6a10f4","782ede38fa424d12","cf779173812d423a","eec36997052e74a7","e210e9a266a21221","d5f0b55d7a4dc8db"],"x":54,"y":1039,"w":572,"h":222},{"id":"da033

Naver Blog

[Node-RED] template 노드 사용법

tempate 노드는 전달 받은 msg.payload 를 template 포맷에 맞춰 출력하는 기능을 제공하는 노드입니다. 본래 목적은 template 에 맞게 다시 메시지를 만들어서 전달하는 기능이지만 template 가 아닌 메시지 버퍼로 사용할 수도 있습니다. [{"id":"d52655a6d875993f","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["68feb0b35687e665","30f81651137ea14e","fca57a2439855262","4036778fac7e9ffc","7d9504a4e0535b1d","ddbf55ce2ab628ff","d63975eabed4b8e5"],"x":714,

Naver Blog

[Node-RED] complete 노드 사용법

complete 노드는 특정 노드의 동작 완료를 대기하는 용도로 사용할 수 있습니다. [{"id":"fee8f1dd267df183","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["376a031e198a2ddc","7b1b6a7245e1ee00","7494a25be69fb037","d6e76573675f2b6c","8b30b113d05ffc0e","344570a6c5b4fa9a","14c8225bdcf8c8aa","5a7941d70821d19c"],"x":74,"y":1319,"w":592,"h":202},{"id":"376a031e198a2ddc","type":"inject","z":"ba42afc1309

Naver Blog

[Node-RED] split 노드 사용법

split 노드는 이름 그대로 무엇인가 나눌 때 사용하는 노드입니다. 나눌 수 있는 대표적인 것들은 문자열, 배열, JSON 객체 같은 것들입니다. [{"id":"b251cd70236222bb","type":"group","z":"ba42afc1309d2bfd","style":{"stroke":"#999999","stroke-opacity":"1","fill":"none","fill-opacity":"1","label":true,"label-position":"nw","color":"#a4a4a4"},"nodes":["6793f9645b536128","994278810fccdec5","65df1b64163e6b30","ca59d1370e6a692b","4134895e2a6b7ea6","c447dfd7889eb515","97e5a64e05cd57b9","fa8c479a64650835","9c04e3c5a6a7505a","d30f0aad43a5fe57","8c95c4a4f05ca9bd"

Naver Blog

[STM32] X-CUBE-SBSFU# Call Graph 분석

※ 내용에 오류가 있을 수 있습니다. 오류에 대해서는 Feedback 부탁 드리겠습니다. STM32_SECURITY_LAB/TEST_PROJECTS/STM32F4_SBSFU at main · eziya/STM32_SECURITY_LAB https://www.st.com/content/st_com/en/support/learning/stm32-education/stm32-moocs/Introduction_to_security.html - STM32_SECURITY_LAB/TEST_PROJECTS/STM32F4_SBSFU at main · eziya/STM32_SECURITY_LAB github.com 첨부파일 SBSFU_CallGraph.drawio 파일 다운로드 9월에 작성하였던 X-CUBE-SBSFU 의 주요 함수들의 흐름을 정리해 놓은 파일입니다. 대략적으로 정리해 놓았고 실제 모든 흐름이 정리되어 있지 않고 제 생각에 중요한 함수들이라고 생각되는 것들만 표현해 넣었습니다.

Naver Blog

[STM32 HAL] I2S wav 파일 출력 테스트

※ 내용에 오류가 있을 수 있습니다. 오류에 대해서는 Feedback 부탁 드리겠습니다. Reference: (1) Mutex Embedded - YouTube https://youtu.be/QPmFvSFyIbs eziya/STM32F4_HAL_EXAMPLES Mastering STM32 Testing Examples. Contribute to eziya/STM32F4_HAL_EXAMPLES development by creating an account on GitHub. github.com ** 자료 해석에 오류가 있을 수 있습니다 ** 오랜만에 다시 글을 쓰는 것 같습니다. 개인적으로 여러가지 문제들이 생기다 보니 블로그에 자료를 남기는 것이 어려워서 한동안 정리하는 습관을 멀리한 것 같습니다. 오랜만에 STM32F4-DISCO 보드를 꺼내 보았는데 만지작 거리다가 안해본 것이 떠올랐습니다. I2S 관련해서 한번 해봐야지 하고 있었는데 음악은 즐겨하면서도 직업상 오디오와 관련된

Naver Blog

[STM32 HAL] LwIP + ENC28J60

※ 내용에 오류가 있을 수 있습니다. 오류에 대해서는 Feedback 부탁 드리겠습니다. Reference: https://youtu.be/DqaKZrx_E28 GitHub - eziya/STM32_HAL_LWIP_ENC28J60: STM32 + LWIP + ENC28J60 STM32 + LWIP + ENC28J60. Contribute to eziya/STM32_HAL_LWIP_ENC28J60 development by creating an account on GitHub. github.com 지난 주에는 제가 해 보았던 MII/RMII PHY 가 아닌 SPI 방식의 ENC28J60 ethernet controller IC 를 lwIP 에 Integration 시키는 작업을 해 보았습니다. 시작은 SNS 를 통해서 문의가 들어와서 저도 사용해 보지 않은 IC 이기 때문에 호기심에 작업을 시작해 보았는데 덕분에 ethernet 컨트롤러를 지원하지 않는 모델에서도 SPI 방식으로 네트

Naver Blog

[STM32 HAL] STM32H7 LwIP CubeMx 코드 생성 문제점 확인

※ 내용에 오류가 있을 수 있습니다. 오류에 대해서는 Feedback 부탁 드리겠습니다. GitHub - eziya/STM32H7_HAL_EXAMPLES: STM32H7 HAL Examples STM32H7 HAL Examples. Contribute to eziya/STM32H7_HAL_EXAMPLES development by creating an account on GitHub. github.com 근래에 STM32H7 LwIP 관련 질문이 있었지만 제가 STM32H7 관련한 제품을 다루지 않기에 보드를 갖고 있지 않아 테스트를 해볼 수가 없었습니다. 이번에 주문을 한 NUCLEO-H723ZG 보드가 들어와서 왜 CubeMx 로 생성한 프로젝트가 정상적으로 동작하지 않는지 테스트를 해 볼 수 가 있었습니다. 결론부터 말씀드리면 아래와 같은 문제들이 있었습니다. 1) LwIP 에서 사용하는 heap 영역에 대한 MPU 관련 설정은 직접해야 한다. 2) memp_memory_RX_

Naver Blog

[STM32] MOOC Security#Secure Boot#1

※ 내용에 오류가 있을 수 있습니다. 오류에 대해서는 Feedback 부탁 드리겠습니다. STM32_SECURITY_LAB/TEST_PROJECTS/STM32_HAL_SB_BL at main · eziya/STM32_SECURITY_LAB https://www.st.com/content/st_com/en/support/learning/stm32-education/stm32-moocs/Introduction_to_security.html - STM32_SECURITY_LAB/TEST_PROJECTS/STM32_HAL_SB_BL at main · eziya/STM32_SECURITY_LAB github.com STM32_SECURITY_LAB/TEST_PROJECTS/STM32_HAL_SB_APP at main · eziya/STM32_SECURITY_LAB https://www.st.com/content/st_com/en/support/learning/stm32-education/st

Naver Blog

[STM32] MOOC Security#Secure Boot#2

※ 내용에 오류가 있을 수 있습니다. 오류에 대해서는 Feedback 부탁 드리겠습니다. STM32_SECURITY_LAB/TEST_PROJECTS/STM32_HAL_SB_BL at main · eziya/STM32_SECURITY_LAB https://www.st.com/content/st_com/en/support/learning/stm32-education/stm32-moocs/Introduction_to_security.html - STM32_SECURITY_LAB/TEST_PROJECTS/STM32_HAL_SB_BL at main · eziya/STM32_SECURITY_LAB github.com STM32_SECURITY_LAB/TEST_PROJECTS/STM32_HAL_SB_APP at main · eziya/STM32_SECURITY_LAB https://www.st.com/content/st_com/en/support/learning/stm32-education/st

Naver Blog

[STM32] X-CUBE-SBSFU # 포팅

※ 내용에 오류가 있을 수 있습니다. 오류에 대해서는 Feedback 부탁 드리겠습니다. STM32_SECURITY_LAB/TEST_PROJECTS/STM32F4_SBSFU at main · eziya/STM32_SECURITY_LAB https://www.st.com/content/st_com/en/support/learning/stm32-education/stm32-moocs/Introduction_to_security.html - STM32_SECURITY_LAB/TEST_PROJECTS/STM32F4_SBSFU at main · eziya/STM32_SECURITY_LAB github.com 첨부파일 X-CUBE-SBSFU_포팅.pdf 파일 다운로드 한동안 분석해 보았던 X-CUBE-SBSFU 시큐어부트 & 업데이트 패키지의 포팅 관련 자료를 정리해 보았습니다. 개인적으로는 STM32L4 와 STM32F4 두 종류의 SBSFU 를 테스트를 해보았는데 제가 가장 많이 사용하는

1 2 3 4 5 6