Embedded System12 U-Boot Sequence 및 구조 분석 u-boot의 entry point는 ENTRY(_start)로 기재한 것처럼 start.S파일의 _start이다. 해당 시퀀스에서는 reset을 통해, vector table을 세팅하고(세팅 전 boot params 저장), lowlevel_init 등을 수행하고 _main으로 jump. _main는 crt0.S에 작성되어 있는데 crt0.S의 목적은 C언어로 작성된 프로그램의 메인 함수를 호출하기 전에 필요한 초기화를 수행하는 루틴의 집합(crt == c runtime) 크게 board_init_f(), relocate_code(), board_init_r()로 나뉘어 수행한다. board_init_f() board_init_f() 호출 전에 stack address 및 gd(global data)에.. 2023. 12. 28. Bootloader(U-Boot) Overview 개요 전원 인가 시, 내부 ROM이 실행되어 Operation Mode에 맞게 Bootloader를 sram에 loading하고 실행되어 cpu 및 memory, hw 초기화 등을 수행하고 OS를 DRAM에 load하고 제어권을 넘기는 프로그램. U-boot 임베디드 장치에서 장치의 운영 체제 커널을 부팅하기 위한 지침을 패키징하는 데 사용되는 오픈 소스 기본 bootloader. ARM processor 기반 & 임베디드 Linux 시스템 경우 주로 u-boot를 사용 u-boot를 기반으로 자신의 system or board에 맞게 porting을 진행 directory 구성 arch: 주로 architecture에 dependency가 있는 code, start.S 코드가 위치 board: 보드 관.. 2023. 12. 28. 0. 공부를 시작하며... 해당 도서를 가지고 공부를 하기 전 공부하는 이유와 마음가짐에 대하여 끄적여보려고 한다. 이직 23년에 들어서면서 이직을 마음먹고, 이직을 하게되었다. 물론 연봉이나 좀 더 나은 환경을 원했던 것도 있지만 업무적, 커리어 적으로 발전이 필요하고 원했던 시점이었다. 이직하기 전 업무는 주로 HAL단과 SDK platform 일을 하다가 좀 더 H/W, SoC와 가까운 커널에 대한 업무를 하고 싶었다. 출근 첫 주 원래 하던거보다 한 단계 아랫단인 커널을 주 업무로 하여금 일을 할 줄 알았는데, 첫 출근하여 일주일 정도 업무 파악을 해보니, 좀 더 core하고 h/w적인 펌웨어 업무를 한다는 것을 알게되었다.(학생 때 좋아했던 마이컴 수업이 생각나는...!) 물론 학생때 마이크로프로세서 수업과, 이전 회사에.. 2023. 5. 16. [Case] 특정 프로세스가 실행되고 있는지 확인하는 script 특정 프로세스가 실행되고 있는지 확인을 위한 스크립트 ps 명령어를 통해 현재 실행되고 있는 프로세스 정보를 출력한다음, grep을 통해 원하는 프로세스를 검색 while true do check=`ps -ef | grep "sampleApp" | grep -v "grep"` if [ "$check" != "" ]; then echo sampleApp Running sleep 0.1 else echo sampleApp Quit break fi done 2022. 9. 14. [func] read 쉘 스크립트에서 read 명령을 사용하면 사용자 입력을 읽어올 수 있다. #!/bin/bash age=0 read -p "나이를 입력하세요: " -t 4 age echo "$age 살 입니다." 위의 예제를 살펴보면 -p 옵션의 경우 read의 입력할때 프롬프트 창에 띄울 문자열을 사용한다는 것이다. 위와 같이 입력에 대한 설명 등을 기재할 수 있다. -t옵션의 경우 뒤에 오는 숫자만큼 입력을 대기한다. 위의 예제의 경우 4초를 기다린다는 뜻이다. read 옵션 -t [seconds]: seconds 만큼 입력대기 -s: 시크릿 모드, 입력시 입력한 문자가 출력되지않는다. -n [num]: num만큼 입력 받는다. -r: 백슬래시(\) 기호를 이스케이프 문자로 인식하지 않는다. 2020. 3. 4. 조건문(If문) (작성중...) 기본적인 if ... elif ... else 식 # If문 기본 형태 if [ 조건문1 ];then 수행문1 elif [ 조건문2 ]; then 수행문2 else 수행문3 fi 조건문 양 옆의 '['와 ']' 사이에는 무조건 공백으로 띄어져있어야한다. (공백이 없으면 스크립트 실행시 에러!!!) 흔히 알고 있는 if문의 조건식(==, !=)과 다르게 쉘 스크립트에서는 다양한 조건을 옵션으로 제공한다 Shell Script 옵션 종류 문자열체크 [ string ] - 문자열이 널(NULL)인지 체크, Null이 아니면 참 [ -n string ] - 문자열의 사이즈가 0 이상인지 체크, 0 이상이면 참 [ -z string ] - 문자열의 사이즈가 0 인지 체크, 0이면 참 [ string1 = stri.. 2020. 2. 11. 이전 1 2 다음 728x90