공부/Embedded
-
-
컴퓨터 구조 for 임베디드공부/Embedded 2025. 2. 17. 02:28
컴퓨터 구조를 읽으면서 적당히 끄적거리는 페이지 1. 명령어 실행 기본적인 내용들CPU의 내부 구성 요소: 산술논리연산장치(ALU), 레지스터 세트, 제어 유닛...버스들: 주소 / 데이터/ 제어CPU, 주기억장치, I/O장치들은 시스템 버스로 서로 연결됨 ARM 버스 구조(https://wikidocs.net/159026) 버스 마스터(bus master)버스 중재(bus arbitration) - 병렬 중재, 직렬 중재, 폴링 방식 등 동기식 버스 / 비동기식 버스 I/O 장치의 연결I/O장치는 속도가 CPU보다 느리고, 제어 방법도 다르고, 데이터 형식의 길이도 다를 수 있음흔히 I/O장치를 시스템 버스에 접속하기 위해 ~~ 컨트롤러, ~~ 인터페이스를 사용함-> 상태/제어 레지스터 주소 지정 I..
-
[Gaisler IP] GRETH공부/Embedded 2025. 2. 16. 18:38
가이슬러 IPhttps://www.gaisler.com/products/ethernet Ethernet 10/100 | GaislerReceive and transmit data is autonomously transferred between the Ethernet MAC and the AMBA AHB bus using DMA transfers. Through the use of receive and transmit descriptors, multiple ethernet packets can be received and transmitted without CPU involvement.www.gaisler.com GRETH - Ethernet Media Access Controller (MAC) with ..
-
[Zephyr OS] LLEXT공부/Embedded 2025. 2. 2. 23:18
https://docs.zephyrproject.org/latest/services/llext/index.html Linkable Loadable Extensions (LLEXT) — Zephyr Project DocumentationThe LLEXT subsystem provides a toolbox for extending the functionality of an application at runtime with linkable loadable code. Extensions are precompiled executables in ELF format that can be verified, loaded, and linked with the main Zephyr binary. Extedocs.zephyr..
-
[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 ..