공부/Embedded
-
-
부트로더와 잡다한 것공부/Embedded 2025. 3. 4. 00:29
임베디드 시스템에서 커널이 장치에서 실행되기 전 실행되는 과정. 1. ROM Code제조 시 SoC에 저장된 코드 실행소량의 코드를 사전에 프로그래밍된 몇 개의 위치로부터 SRAM으로 로드 가능ROM Code 종료 시, SPL을 부르고 SPL코드의 시작으로 점프함 2. SPL, Secondary Program LoaderMMU나 TPL(Third program loader)등을 DRAM에 로드하기 위해 필요한 시스템의 필수적인 부분들을 시작 3. TPL, Tertiary Program Loader완전한 부트로더 실행가능 4. Linux Kernel 참고임베디드 리눅스 부팅 절차(https://makersweb.net/embedded/15562)U-Boot(https://github.com/u-boot/u..
-
-
컴퓨터 구조 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..