2024/05 15

Docker in i.MX

0.  Intro 이 설정은 docker를 사용하여 격리된 환경에서 i.MX BSP를 구축하는 데 도움이 됩니다.    1.  사전 설정   1.1  Install Docker  docker를 설치하는 방법에는 docker 스크립트를 사용하는 등 다양한 방법이 있습니다.  $ curl -fsSL https://get.docker.com -o get-docker.sh$ sudo sh get-docker.sh    1.2  Run Docker without sudo  sudo 없이 docker를 더 잘 사용하려면 사용자를 docker 그룹에 추가하세요.$ sudo usermod -aG docker    그룹 멤버십을 재평가하려면 로그아웃했다가 다시 로그인하세요.    1.3  Set Docker to wor..

Raspbian - 리눅스 커널 소스코드 다운로드, 빌드, 설치

1.  리눅스 커널 소스 코드 다운로드   1.1  git clone​리눅스 커널 소스 코드를 다운로드 받는 방법을 소개합니다. 터미널에서 다음 명령어를 입력하면 라즈비안 최신 커널 소스를 내려 받을 수 있습니다.(물론, git은 사전에 설치되어있어야 합니다.) root@raspberrypi:/home/pi/RPi_kernel_src# git clone --depth=1 https://github.com/raspberrypi/linuxCloning into 'linux'...remote: Enumerating objects: 85646, done.remote: Counting objects: 100% (85646/85646), done.remote: Compressing objects: 100% (657..

MCU Bootloader

대부분의 임베디드 시스템은 온보드 부트로더와 함께 제공된다. 부트로더(Bootloader)는 컴퓨터 시스템 또는 임베디드 시스템을 시작하는 데 사용하는 프로그램이다. 부트로더는 JTAG과 같은 특수 하드웨어를 사용하지 않고도 시스템을 업데이트할 수 있도록 도와준다. 이를 통해 소프트웨어 업데이트시마다 서비스 센터를 찾아가지 않아도 되는 이점이 있다. 부트로더는 임베디드 시스템의 무결성을 확인하는 가장 빠른 시점이 될 수도 있다. 이는 부트로더가 시스템 이미지를 관리하기 때문이다.   임베디드 부트로더는 다양한 크기와 특징을 가지고 있다. 요구사항에 따라 부트로더 상태도 UART, CAN, I2C, Ethernet, USB와 같은 다양한 프로토콜을 통해 통신할 수 있으며, 두 개 이상의 어플리케이션 이미지..

MCU : DIE, PAD, Drive Strength, Pad Level, Hysteresis

MCU : DIE, PAD, Drive Strength, Pad Level, Hysteresis   DIE “DIE”는 일반적으로 반도체 패키지 또는 칩 내부에 있는 실리콘 칩, 집적회로(IC)이다. 웨이퍼 디스크의 한 조각이었던 Die는 ‘칩’에 장착되고 연결되면서 아래 사진처럼 에폭시로 덮이게 된다.    PAD “PAD”는 Die에서 외부로 나가는 Wire bonding을 붙이는 연결판과 pin(또는 ball)으로 연결되는 접점을 포함하는 부분으로, 상당히 큰 크기를 가지고 있고 보통 Die의 맨 바깥쪽 4면에 놓여진다. 반도체 칩이 다른 시스템 내의 다른 칩과 실질적으로 연결되는 부분이다. 이러한 PAD는 내부 Die 공간에서 Power Source에 따라 부분적으로 나누어져 있으며, 각각에 PA..

시스템 소프트웨어 개발 프로세스

1.  프로젝트 단계     스펙 검토 → 브링업 → 시스템 안정화(버그수정)    2.  스펙 검토   2.1  하드웨어 부품 검토       *  제품의 특징에 따라 부품 선정      *  가격 경쟁력을 위해 부품 교체     2.2  소프트웨어 스펙 검토       *  리눅스 커널 버전      *  디바이스의 스펙을 맞출 수 있는지 검토     3.  브링업      *  한번도 부팅이 된 적이 없는 디바이스를 살리는 작업      *  시스템 소프트웨어 개발에서 가장 중요한 단계      *  여러 소프트웨어, 하드웨어 부품(칩, 메모리, 페리퍼럴)을 초기화하는 과정     3.1  브링업의 종류      *  소스 브링업      *  타겟 브링업 (보드 브링업, 페리퍼럴 브링업)     ..