U-Boot 내장 환경 변수 구현 및 적용 실험

내장 환경 변수의 목적 CFG_ENV_IS_IN_FLASH 또는 CFG_ENV_IS_IN_NAND가 정의된 경우에만 ENV_IS_EMBEDDED 기능이 활성화됩니다. 본 실험에서는 NOR 플래시를 기준으로 설명합니다. U-Boot 바이너리(100KB+)와 환경 변수 저장에 필요한 섹터 크기 간 차이에서 발생하는 문제를 해결합니다. 일반적으로 플래시 전반부에는 8KB 섹터가 존재하나 후반부는 64KB 섹터로 구성됩 ...

6월 17일 20:24에 게시됨

U-Boot 부팅 시퀀스 분석: init_sequence 배열과 핵심 초기화 함수 구현

U-Boot의 초기 부팅 단계에서 하드웨어와 소프트웨어 환경을 설정하는 핵심 메커니즘은 init_sequence라는 함수 포인터 배열을 통해 이루어집니다. 이 배열은 시스템이 본格的인 OS 부팅을 수행하기 전에 반드시 거쳐야 하는 초기화 작업들을 순차적으로 정의하고 있습니다. 본 글에서는 S3C2410 기반의 ARM9 보드를 예시로 들어, init_sequence의 구성 요소와 각 함수의 ...

6월 11일 02:29에 게시됨

U-Boot find_cmd 함수 동작 원리와 명령어 검색 메커니즘

명령어 테이블 구조체 U-Boot에서 각 명령어는 cmd_tbl_s 구조체로 표현되며, 명령어 이름, 인자 개수, 실행 함수, 도움말 등을 포함한다. struct cmd_tbl_s { char *cmd_name; /* 명령어 이름 */ int arg_max; /* 최대 인자 수 */ int auto_repeat; /* 자동 반복 가능 여부 */ int (*exec)(struct cmd_tbl_s *, int, int, ...

6월 7일 21:48에 게시됨

U-Boot 환경 변수 초기화 메커니즘 분석

환경 변수의 역할과 저장 구조 환경 변수는 시스템 부팅 시 사용되는 전역 설정 정보를 의미하며, 영구 저장 장치(예: NOR/NAND 플래시)에 저장되어야 하며, 실행 중에 조회 및 수정이 가능해야 합니다. 부팅 과정에서 먼저 환경 변수를 메모리에 로드한 후, 하드웨어 초기화 및 운영체제 시작에 활용됩니다. 환경 변수 저장 위치와 로드 위치 결정 플래시 메모리에 저장 ...

6월 6일 02:07에 게시됨

ARM GCC에서 전역 레지스터 변수 활용하기

U-Boot 소스에서 register volatile gd_t *gd asm ("r8")와 같은 구문을 마주쳤을 때, 단순한 변수 선언으로 보이지만 실제로는 CPU 레지스터를 직접 활용하는 고급 기법이다. 이 글에서는 ARM 아키텍처에서 레지스터 변수를 정의하고 활용하는 방법을 살펴본다. 레지스터 변수의 개념 일반적인 변수는 메모리에 저장되어 접근 시마다 메모리 버스를 통한 트랜잭션이 발 ...

5월 22일 19:37에 게시됨

Uboot RGB LCD 스크린 지원 수정하기

1. Uboot 디바이스 트리 수정 Tina-SDK 디렉터리에서 device/config/chips/t113/configs/100ask 폴더로 이동한 후, uboot-board.dts 파일을 찾습니다. 이 파일은 uboot에서 사용하는 디바이스 트리 설정 파일이며, 여기에 7인치 RGB 디스플레이에 해당하는 디바이스 트리 노드를 추가해야 합니다. ubuntu@ubuntu1804:~/tina-d1-h/device/config/chips/t113/configs/100ask$ ...

5월 22일 05:39에 게시됨