공부/Embedded
-
[Linux] Dynamic Loading공부/Embedded 2025. 1. 27. 02:21
동적 라이브러리 사용 이유- 정적 라이브러리는 컴파일 타임에 실행 바이너리에 포함되어야 하지만, 동적 라이브러리는 실행 파일에 포함되지 않아도 된다.- 따라서 동적 라이브러리는 앱의 컴파일과 별개로 동작할 수 있고, 앱의 실행 파일에 포함되지 않기 때문에 앱의 초기 실행시에 메모리에 로드될 필요가 없다.- 따라서 앱 실행 속도나 메모리 사용량을 줄일 수 있다. 동적 라이브러리 로드- shared library라는 형식으로 라이브러리를 제작- 실행 시점에 사용할 라이브러리를 연결하여 사용- 라이브러리의 확장자는 . so(shared object), 동적 라이브러리- 대상 프로그램 컴파일 시 -ldl 옵션를 줘서 컴파일 dlfcn.h#include 로 사용 void *dlopen(const char *fil..
-
[Zephyr] Workqueue공부/Embedded 2025. 1. 7. 00:40
https://academy.nordicsemi.com/courses/nrf-connect-sdk-fundamentals/lessons/lesson-7-multithreaded-applications/topic/exercise-3-7/ Exercise 3 - Nordic Developer AcademyWorkqueue creation and work item submission Since threads of higher priority have the ability to starve other low priority threads, it is good practice to offload all non-urgent execution in these threads into lower-priority thre..
-
[Zephyr] System Thread공부/Embedded 2025. 1. 7. 00:15
시스템 스레드는 커널이 시스템을 초기화하는 동안 자동으로 생성하는 스레드 메인 스레드커널 초기화를 수행한 다음, 애플리케이션의 main()함수를 호출한다. (main()이 정의 되어 있다면) 기본적으로 메인 스레드는 가장 높은 선점형 스레드 우선순위(우선순위:0)를 가진다.main()이 정의되지 않았거나, 실행한 다음 정상적인 반환을 수행하면 메인 스레드가 정상적으로 종료되고 오류가 발생하지 않는다. 유후 스레드시스템에서 할 다른 작업이 없을 때 실행된다.가능하다면 보드의 전원 관리 지원을 활성화하여 전원 절약을 돕거나, loop(아무것도 하지 않음)를 수행한다.시스템이 실행되는 동안 계속 존재하고 종료되지 않는다.항상 가장 낮은 스레드 우선순위를 사용한다.
-
[Zephyr] Thread공부/Embedded 2025. 1. 6. 01:10
Zephyr OS Docs를 읽고 적당히 메모하는 글... https://docs.zephyrproject.org/latest/kernel/services/threads/index.html Threads — Zephyr Project DocumentationA thread that has no factors that prevent its execution is deemed to be ready, and is eligible to be selected as the current thread. A thread that has one or more factors that prevent its execution is deemed to be unready, and cannot be selected as the ..
-
AMBA Bus Protocol공부/Embedded 2024. 12. 8. 22:34
프로세서, 주변 장치, 메모리 등은 연결되어야 하고, 이 연결 규약 중 하나가 AMBA Protocol이다. ARBA Protocol?- ARM사의 Advanced Microcontroller Bus Architecture Protocol이다.(= 그냥 ARM사의 구조.)- Soc(System on chip)에서 고성능 16/32bit MCU 프로세서/주변장치 설계 표준- AMBA, 2, 3, 4 등 다양한 종류가 있음 AMBA BusAdvanced System Bus(ASB): APB에 비하여 전력과 주파수가 높고, 고속, 양방향 구조Advanced Peripheral Bus(APB): 낮은 주파수, 저전력, 저속Advanced High-performance Bus(AHB): ASB의 업그레이드 버전,..
-
[Renode] .repl(Platform description format)공부/Embedded 2024. 12. 1. 23:16
.repl?repl(Renode Platform)은 Platform description format 이다.주변 장치를 쉽게 구성하여 완전한 플랫폼 정의를 만들 수 있게 yaml과 파일이 필요해서 만들어졌다. 기본적인 작성 규칙- 의미 있는 들여쓰기가 사용되고 (), {}, 를 사용함(Python과 비슷)- 들여쓰기는 공백만 허용하고, 공백 수는 반드시 4의 배수- 중괄호 내부의 들여쓰기는 의미가 없음- 의미 있는 들여쓰기가 사용되는 경우, 이를 indent mode라고 부름- 비들여쓰기에서 구분하려면 세미콜론으로 구분함- 주석은 /* */ 를 사용 ### Ex1line1line2 line3 line4 line5 line6 ### Ex2line1line2 { line3;..
-
-
Zephyr공부/Embedded 2024. 11. 20. 00:46
Zephyrhttps://zephyrproject.org/ Zephyr Project – A proven RTOS ecosystem, by developers, for developersThe Zephyr RTOS is trusted by commercial products in market today.zephyrproject.org Zephyr OS 란?임베디드 기기 같은 장치를 구동하기 위해 고안된 실시간 운영체제 RTOS의 일종 The Zephyr OS is based on a “small-footprint” kernel designed for use on resource-constrained and embedded systems즉, 제퍼는 임베디드 시스템을 고려한 적은 메모리를 지향하는 커널 디..