전체 글1084 터미널 특수 키의 이스케이프 시퀀스 (+ 테라텀의 Backspace/Delete 키 설정) 먼저 키보드의 Tab, Enter, Backspace, Space 같은 키들은 ASCII 코드표에 이미 정의된 단일 바이트 값이 있다. KeyHexASCII 문자Tab0x09TABEnter0x0D 또는 0x0ACR 또는 LFBackspace0x08 또는 0x7FBS 또는 DELESC0x1BESCSpace0x20SP 반면 방향키, Delete, Home, End 같은 키들은 ASCII 코드표에 자리가 없다. 이런 키들을 표현하기 위해 터미널은 멀티바이트의 이스케이프 시퀀스를 사용한다. 터미널 특수 키 이스케이프 시퀀스 표모든 이스케이프 시퀀스는 첫 번째 바이트가 0x1B (ESC 문자의 ASCII 코드)로 시작하며, 테라텀 등 터미널에서 다음 키를 누르면 아래 바이트 시퀀스가 연달아 전송된다. Ke.. 2026. 7. 4. STM32 VS Code Extension 개발환경 구축 STM32CubeIDE for Visual Studio Code 3.9.0 버전 기준 참고로 이전 버전에서는 STM32CubeCLT를 별도 설치해줘야 했지만, 3.9.0 버전에서는 STM32 프로젝트 빌드/다운로드/디버깅에 필요한 명령줄 도구를 번들로 같이 설치하므로 STM32CubeCLT를 따로 설치할 필요가 없다. 1. STM32CubeMX 설치 (최소 6.11.0 이상 버전)STM32CubeMX는 핀 설정, 클럭 설정 등을 하고 CMake 기반의 프로젝트 코드를 생성해 주는 역할을한다. 2. VSCode에서 STM32 확장 프로그램 설치 먼저 확장프로그램을 설치하기 전에 STM32 개발용 프로파일을 새로 만들어두는게 낫다. VSCode New Window 열때마다 STM32 확장프로그램.. 2026. 7. 1. 전기차 관리 방법 1. 평소 배터리 잔량을 20% ~ 80% 사이로 유지리튬 이온 배터리는 충전량이 80%를 넘거나 20% 미만인 상태, 즉 셀 전압이 너무 높거나 낮은 상태로 오래 방치되면 배터리 셀 내부에 가해지는 물리적, 화학적 스트레스가 커져 수명이 단축될 수 있다. 따라서 평상시 충전 상태를 20% ~ 80% 구간으로 유지하는 것이 좋다. 20%까지 떨어질 때까지 기다렸다가 충전하기보다는, 해당 구간에서 일정량 남아 있을 때 80%까지 자주 충전해주면 된다. 2. 한 달에 한 번은 완속으로 100% 충전한 달에 한 번 정도 잔량이 20% 수준일 때 완속으로 100%까지 채워주는 것이 배터리 셀 밸런싱에 좋다. 7kW 수준의 낮은 전류로 천천히 충전하면, BMS가 먼저 100%에 도달한 셀은 대기 상태로 두고.. 2026. 6. 28. VSCode ] 인코딩 변경 VSCode의 기본 인코딩은 UTF-8이며, 개별 파일의 인코딩을 변경하여 저장하거나 새로 열려면 우측 하단의 Select Encoding 버튼을 눌러서 수행할 수 있다. 전체 파일의 인코딩 기본값을 변경하려는 경우 단축키 Ctrl + , 를 눌러 설정을 연다. 검색창에 encoding을 입력한다. Files: Encoding 항목에서 원하는 인코딩 방식(UTF-8, EUC-KR 등)을 선택한다. 2026. 6. 28. Windows/Linux ] 파일의 무결성 검사 도구 해시 알고리즘해시 알고리즘은 임의의 크기를 가진 데이터를 고정된 크기의 고유한 값(해시값)으로 변환하는 일방향 함수다. 입력값이 1비트만 달라져도 완전히 다른 결과를 반환하기 때문에 무결성 검증과 보안(암호화)에 필수적인 요소로 사용된다. 흔히 무결성 검사 기법으로 함께 언급되는 체크섬과 CRC가 네트워크 상의 전송 오류를 걸러내기 위해 설계되었다면, 해시는 연산 속도는 느리지만 악의적인 위변조와 해킹 시도로부터 데이터를 안전하게 보호하기 위해 존재한다. 핵심 특징고정된 출력 길이 : 입력 데이터의 크기와 상관없이 항상 일정한 길이의 해시코드를 출력한다. MD5는 16진수 32자리(128비), SHA256은 16진수 64자리(256비트)를 가진다.일방향성(One-way): 해시값으로 원본 데이터를 복구할.. 2026. 6. 27. Ubuntu에서 Google Chrome 설치하기 Ubuntu 배포판에는 Firefox가 기본 웹 브라우저로 제공된다. 하지만 Firefox는 snap 패키지 형태로 탑재되어 있어서 사용하기엔 좀 불편한 요소가 있다. ✓ snap이란? snap은 우분투 개발사인 캐노니컬(Canonical)이 만든 리눅스 패키징 시스템이다. 애플리케이션과 실행에 필요한 모든 라이브러리, 의존성 파일을 하나의 패키지로 묶어 의존성 충돌 없이 설치할 수 있다는 장점이 있다. 하지만 Sandbox라고 불리는 독립된 가상 환경에 애플리케이션을 격리하여 실행하는 방식이라 처음 앱을 시작할 때 구동 시간이 오래 걸리고, 실행 중 반응속도도 느리며, 종료 후에도 잠시 백그라운드에서 자원을 정리하는 작업이 남는다. 오픈소스 브라우저인 Chromium도 apt 명령어로 간단하게 설치할 .. 2026. 6. 24. Linux PCIe Driver 학습 프로젝트 다음은 QEMU 가상환경에서 커스텀 PCI 장치를 직접 만들고, 그 장치를 제어하는 리눅스 커널 드라이버와 유저 애플리케이션을 작성하는 학습 프로젝트이다. https://github.com/joeteo/pci-vip GitHub - joeteo/pci-vipContribute to joeteo/pci-vip development by creating an account on GitHub.github.com 2026.01.18 - [임베디드 개발/임베디드 리눅스] - Linux 호스트에서 QEMU 빌드 Linux 호스트에서 QEMU 빌드대부분 리눅스 배포판 저장소에는 이미 QEMU 바이너리 패키지를 제공하기 때문에 sudo apt install qemu-system-arm 등으로 간단히 설치할 수 있.. 2026. 6. 21. LDD ] PCIe 디바이스 드라이버와 유저앱 작성하기 - DMA & MSI 이번엔 지난 글에서 다룬 PCI 장치를 제어하기 위한 드라이버와 유저 앱을 작성해 보겠다. 편의상 MMIO + INTx 방식의 장치를 v1, DMA + MSI 방식의 장치를 v2로 구분한다. 드라이버와 유저 앱을 설계할 때 고려한 것은 크게 두 가지다. 1. zero-copy* 구현2. 유저 앱까지 이어지는 파이프라이닝 구조 ✓ Zero-copy란? 데이터를 주고받을 때, CPU가 개입해서 복사하는 횟수를 0회로 만든다는 뜻이다. 먼저 1번. 지난번에 작성한 v1은 zero-copy가 아니었다. 드라이버 단에서 mmap을 사용해 커널과 유저 스페이스 사이의 메모리 복사(copy_to_user, copy_from_user)는 없앴지만, mmap한 대상이 시스템 RAM이 아닌 장치의 BAR 공간으로, 애플.. 2026. 6. 21. TMS320F28388D] Q. M0, M1 외에 다른 공간을 스택으로 써도 되는가? 관련글 :https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1228631/tms320f280039c-can-stack-be-placed-outside-m0-m1 예제 프로젝트의 링커 커맨드 파일(.cmd)을 보면 기본적으로는 M0, M1 RAM을 스택 공간으로 지정하고 있는데, 이는 Mx RAM이 CPU와 Tightly coupled된 메모리라서 성능과 속도 면에서 최적이기 때문일 것이다. 하지만 하드웨어 제약 조건을 충족하기만 하면 다른 RAM 영역도 스택으로 사용할 수 있다. 먼저 스택 영역을 옮길 때 고려해야할 점은 C28x CPU의 스택 포인터(S.. 2026. 6. 20. PER (Price Earning Ratio, 주가수익비율) PER (Price Earning Ratio, 주가수익비율) PER(주가수익비율)은 현재 주가를 주당순이익(EPS, Earnings Per Share)으로 나눈 값으로, 기업의 현재 주가가 1년치 순이익 대비 몇 배로 거래되고 있는지를 나타내는 평가 지표다. 계산공식은 다음과 같다.PER = 주가 ÷ 주당순이익(EPS)주당순이익(EPS) = 당기순이익 ÷ 총 발행 주식 수혹은 다음과 같이 계산할 수도 있다.PER = 시가총액 ÷ 당기순이익 PER이 낮으면 기업의 이익 대비 주가가 저렴하여 상대적으로 주식이 저평가되었음을 의미하고, PER이 높으면 주당순이익에 비해 주가가 비싸지만 시장에서 해당 기업의 미래 성장 잠재력을 높게 평가하고 있음을 의미하기도 한다. 참고로 PER은 업종과 기업의 성격에 .. 2026. 6. 15. QEMU 기반 커스텀 PCIe 장치 에뮬레이션 - (4) DMA + MSI 이전 글에서 작성한 커스텀 PCIe 장치의 기본 구조와 기능은 유지한채로, 데이터 전송 방식과 인터럽트 방식을 변경하였다.데이터 전송 : 장치의 RAM을 BAR1 영역에 할당하던 방식에서 DMA(Direct Memory Access) 전송 방식으로 변경인터럽트 : 레거시 INTx 방식에서 MSI(Message Signaled Interrupt) 방식으로 변경 PCI DMA의 이해PCI DMA는 CPU의 개입 없이 하드웨어가 시스템 메모리에 직접 접근한다는 점에서 일반적인 생각하는 DMA와 동일하지만, DMA 엔진의 위치와 작동 방식에서 차이가 있다. 보통 임베디드 환경에서 말하는 DMA는 SoC/MCU 내부에 DMA 컨트롤러가 존재한다. 그래서 CPU가 초기 설정만 해두면 이후에는 DMA 컨트롤러.. 2026. 6. 14. 1553B (MIL-STD-1553) 개요MIL-STD-1553은 군용 항공기 내부의 전자 장비 간 통신을 위해 설계된 차동 직렬 데이터 버스 프로토콜이다.1970년대 항공기 내 다양한 서브시스템 간 통신 방식을 표준화하고, 체계 수준에서 데이터 흐름을 예측 가능하게 관리하기 위해 도입되었다.초기 버전인 MIL-STD-1553A가 발간된 이후, 개정된 MIL-STD-1553B가 현재까지 사용되는 표준으로 자리 잡았기 때문에, 통상적으로 짧게 1553B라고도 부른다. 이중화 (Redundancy)1553B는 단일 버스의 고장이 발생하더라도 통신의 연속성과 데이터의 무결성을 확보하기 위해 이중화 구조를 채택하고 있다.Primary Bus (Bus A)Backup Bus (Bus B)두 버스는 전기적으로 완전히 독립되어 있으며, 동일한 네트.. 2026. 6. 7. TL16C752C, Dual UART (16550 호환 칩) 일단 이 칩은 16550 아키텍처를 기반으로 64-Byte FIFO를 탑재한 Dual UART 컨트롤러 칩이다. 16550이 무엇인가?1980년대 시절 PC의 Serial Port 구현을 위한 외장 UART 컨트롤러로 널리 쓰이던 칩이 National Semiconductor사에서 출시한 8250, 16450, 16550 시리즈였다. 8250, 16450 계열은 데이터 레지스터를 제외한 송수신 버퍼가 따로 없어서 인터럽트 부담이 컸고, 16550에서 16-Byte FIFO가 최초 도입되면서 실사용성이 크게 좋아졌다. 이후 여러 제조사에서 "16550 compatible"을 표방하는 호환 칩이 대량으로 나오며 레지스터 구조가 사실상 표준처럼 굳었다. 현재에도 16550 IP가 널리 쓰이고 있고, 리눅스 .. 2026. 5. 31. Git ] fatal: detected dubious ownership in repository at '경로' 이 에러는 여러 사람이 함께 사용하는 컴퓨터 환경에서 발생할 수 있는 보안 문제를 막기 위해, Git에 새롭게 추가된 검사 로직 때문에 생긴 것이다.예를 들어, 해커가 공용 폴더나 상위 디렉토리에 몰래 .git 폴더를 만들고 config 파일에 악성 코드를 심어두면, 이후 해당 폴더나 하위 폴더에서 git status 같은 명령어만 실행해도 내 권한으로 악성 코드가 실행될 위험이 있다. 이를 막기 위해 Git은 현재 명령어를 실행하는 로그인한 사용자와 해당 디렉토리의 소유자(Owner) 가 다를 경우 의도적으로 이 에러를 발생시켜 실행을 차단한다. 해결 방법은 다음과 같다. 해결 방법 1. 특정 폴더만 예외 등록하기이 폴더는 신뢰할 수 있는 폴더이니 검사하지 말라고 예외 설정하는 방법이다. git c.. 2026. 5. 27. UART 흐름제어 (RTS/CTS, DTR/DSR, XON/XOFF) UART 컨트롤러는 자체적으로 흐름 제어(Flow Control) 신호를 처리할 수 있는 기능을 포함하고 있다. 여기서 흐름제어란 데이터가 수신 측의 처리 속도보다 너무 빠르게 들어와서 버퍼 오버플로우가 발생하는 걸 막는 매커니즘을 말한다. 1. 과거의 UART 흐름제어과거 RS-232 통신 규격이 정립되던 시기에는 DTE 장치(PC)가 DCE 장치(모뎀)에 연결되는 것이 기본이었다. 데이터 송수신 자체는 DTE, DCE 모두 할 수 있지만 데이터 전송을 시작하고 종료하는 쪽은 DTE 였으며, 이러한 역할 구분에 따라 TXD, RXD를 포함한 각 신호 핀의 용도가 정의되었다. DTE (Data Terminal Equipment) : 단말기, 컴퓨터DCE (Data Circuit-terminating .. 2026. 5. 24. 인터넷 안되는 폐쇄망 PC에서 Local LLM으로 클로드 코드 무료로 쓰기 (Gemma4 + Ollama) 얼마 전 구글이 Gemma 4를 공개하면서 꽤 화제가 됐다. 그리고 유튜브에서 "Gemma 4를 활용해 로컬에서 무료로 AI 돌리는 법"에 대한 영상이 쏟아져 나왔는데 대부분은 인터넷이 되는 환경에서 손쉽게 설치한 뒤 퍼포먼스를 테스트하는 내용이었다. 나는 업무 특성상 인터넷이 차단된 환경에서 작업할 일이 많기 때문에, 폐쇄망 PC에서도 Local LLM으로 코딩 어시스턴트를 쓸 수 있다면 상당히 유용하겠다 싶었고, 직접 시도해본 뒤 그 과정을 정리한다. Gemma 4는 왜 화제가 됐나?첫 번째는 오픈소스 라이선스다. Gemma 4는 Apache 2.0 라이선스로 공개됐는데, 소스코드 공개 의무가 없고 상업적 사용이 자유로우며 2차 가공 후 라이선스 변경이나 특허 출원도 가능하다는 점 때문에 개발자들.. 2026. 5. 17. 클로드 코드 (Unable to connect to API) - USB 이더넷 어댑터 연결 시 통신 오류 Wi-Fi로 클로드 코드를 사용하던 중 PC에 특정 USB 이더넷 어댑터를 꽂는 순간 API 연결이 끊기는 일이 있었다. 당시 브라우저로 claude.ai에 접속하면 채팅기능은 멀쩡히 쓸 수 있는데 클로드 코드 사용 시에만 네트워크 오류가 발생하는 것이다. 원인을 확인해보니 라우팅 테이블 문제였다. 원인Windows에서 네트워크 어댑터가 여러 개 연결되면 각 어댑터에 default route(0.0.0.0/0)가 생길 수 있다. 이 경우 메트릭이 낮은 쪽이 우선으로 트래픽을 처리하는데, '자동메트릭'으로 설정되어 있으면 어댑터의 Link speed(대역폭)을 기준으로 메트릭이 설정되기 때문에 Wi-Fi보다 유선 연결이 더 낮은 메트릭 값을 할당받는 경우가 많다. 즉, USB 이더넷 어댑터 쪽의 메트릭이.. 2026. 5. 16. 리셋 신호가 Low Active인 이유 리셋 신호가 99% 이상 Low Active로 설계되는 이유는? 회로 안정성과 구현의 용이성, 그리고 역사적인 배경 때문이다. 구체적으로 다음과 같다. 1. 전원 인가 시의 안정성회로에 처음 전원이 공급될 때, 전압이 0V에서 목표 전압까지 올라가는 불안정한 구간에서는 신호가 자연스럽에 'Low' 상태에 머문다. 이 때 리셋 신호가 Low Active이면 칩은 전압이 완전히 안정될 때까지 안전하게 리셋 상태를 유지할 수 있다. 반면 칩이 High에서 리셋상태가 되고 Low에서 리셋이 해제된다면, 전원이 불안정한 초기 단계에서 리셋이 제대로 걸리지 않아 칩이 오작동할 위험이 있다. 2. 노이즈 내성디지털 회로에서 일반적으로 GND(0V)는 회로의 기준 전위로 사용되며, High 레벨보다 전기적으로 더 .. 2026. 5. 14. PCA9555, I2C 16-bit I/O Expander PCA9555는 I2C 인터페이스를 지원하는 16채널 I/O Expander이다. 이전에 올린 TCA9538(PCA953x 계열)칩과 기본 구조와 제어 방식이 상당히 유사한데, 가장 큰 차이는 I/O 포트 수가 두 배인 16bit(2 x 8bit)로 확장된 것이다. 2025.03.03 - [임베디드 개발/임베디드 리눅스] - TCA9538 데이터시트 및 리눅스 드라이버 분석 (Tested on Raspberry Pi 4) 지난번에 올린 TCA9538 칩과의 차이와 해당 글에서 언급하지 않았던 주요 특징을 중심으로 정리해 본다. 1. 공급 전압공급 전압은 2.3V ~ 5.5V이다. 2. 3개의 하드웨어 주소 핀 제공 A0, A1, A2의 3개의 하드웨어 주소 핀이 있어 최대 8개의 디바이스를.. 2026. 5. 10. LDD ] PCIe 디바이스 드라이버 작성하기 - Char with ioctl & mmap (2/2) 테스트파일 준비테스트용 이미지 파일은 GPT한테 컬러풀한 코딩하는 펭귄 이미지 그려달라고 해서 준비했다. RAW 파일 생성과 뷰어로는 ffmpeg를 사용한다. # ffmpeg 설치$ sudo apt update && sudo apt install ffmpeg# PNG to RGB24 RAW 변환$ ffmpeg -i -f rawvideo -pix_fmt rgb24 # PNG to BGR24 RAW 변환$ ffmpeg -i -f rawvideo -pix_fmt bgr24 RAW 변환 시 출력 로그로 파일 사이즈가 나오는데 이부분도 잘 기억해둔다. 나의 경우 1024x1536 이었다. QEMU 호스트와 게스트 간 파일 공유 설정이제 호스트에서 개발한 드라이버와 앱을 게스트로 옮겨야 하고, 테스트.. 2026. 5. 3. LDD ] PCIe 디바이스 드라이버 작성하기 - Char with ioctl & mmap (1/2) 이전 글에서 작성한 가상의 커스텀 PCI 장치를 다룰 디바이스 드라이버를 작성해본다. 설계 요건은 이렇다.캐릭터 디바이스(Character Device) 드라이버 형태로 구현한다.여러 장치를 동시에 지원할 수 있어야한다.제어 명령은 ioctl로, 대용량 이미지 데이터는 mmap으로 주고받는다.장치의 처리 완료 신호는 PCI 레거시 INTx 방식 인터럽트로 받아서 유저 스페이스 통지하는 식으로 구성한다.개발 환경가상화 환경 : QEMU호스트 : x86_64 Ubuntu 22.04게스트 : ARMv7 32-bit BusyBox 기반 최소 Linux 실행 환경에뮬레이션 보드 : virt-11.0with 커스텀 가상 PCI 장치 (Virtual Image Processor) 우선 구현에 필요한 개념에 대해 하.. 2026. 4. 26. QEMU 기반 커스텀 PCIe 장치 에뮬레이션 - (3) 커스텀 PCI 장치 설계QEMU에서 커스텀 디바이스를 에뮬레이션하려면 QOM(QEMU Object Model) 프레임워크에 맞춰 소스코드를 작성해야 한다. 처음부터 모든 구조를 직접 구현할 필요는 없고, qemu/hw/misc 안에 다양한 예제들이 있기 때문에 이를 참고해 수정해 나가면 된다.공부 목적이라면 교육용 예제 장치인 edu가 기본 제공되어 그대로 써도 되긴 하지만, 이 장치는 단순히 팩토리얼 연산 기능만 있고 레지스터 구조가 단순해서 드라이버를 작성하는 재미가 없을 것 같았다. 이러한 이유로 보다 그럴듯한 PCI(e) 리눅스 드라이버를 개발해보기 위해 커스텀 PCI 장치 설계부터 시작하기로 한다. 장치 이름은 Virtual Image Processor라는 뜻으로 pci-vip로 정했다. 동작 .. 2026. 4. 19. QEMU 기반 커스텀 PCIe 장치 에뮬레이션 - (2) qemu 소스 설치 경로의 miscellaneous를 모아둔 hw/misc 경로로 이동하면 Custom PCI 장치를 만들 때 참고할만한 소스들이 있다. $ cd $ ls qemu/hw/misc/pci-testdev.c$ ls qemu/hw/misc/edu.c pci-testdev.c는 간단히 게스트 OS에서 PCI I/O 기능을 테스트해 볼 수 있는 간단한 장치고, edu.c는 DMA, IRQ의 기능까지 테스트해볼 수 있는 교육용 장치다. 일단 비교적 간단한 pci-tesdev 장치를 살펴보자 pci-testdev.c 소스 분석먼저 *_register_types 함수로 PCI 장치를 QEMU 타입 시스템에 등록하고, *_class_init 함수에서 해당 PCI 장치가 시스템에서 어떻게 인식될지를 설.. 2026. 4. 12. 한글에서 그림/표 번호가 이어지지 않고 새로 시작할 때의 해결법 한글 프로그램에서 그림/표 번호가 이어지지 않고 1로 다시 시작되는 이유는 대개 특정 지점에 번호를 새로 매기도록 하는 조판부호가 삽입되어 있기 때문임 보기 > 조판 부호 체크 본문에 주황색 글씨로 [새 * 번호]이라는 표시가 있는지 확인하고 삭제함 해당 방법으로 해소되지 않는 경우 그림/표 번호가 새로 시작하는 쪽이 이전 그림/표와 다른 구역에 있는 지 확인하고, 쪽 > 구역설정에서 개체 시작 번호가 '이어서'가 아닌 다른 옵션으로 선택되어 있으면 '이어서'로 바꿀 것 2026. 4. 7. VxWorks 셸에서 부트 파라미터 확인 및 설정 방법 1. 부트로더 셸에서의 확인 및 변경기본 부트 프롬프트([VxWorks Boot]:) 상태에서 기본 명령어 사용해 확인/변경 하는 법은 다음과 같다.? : 부트로더에서 지원하는 전체 명령어 리스트를 확인p : 현재 저장되어 있는 부트 파라미터 정보를 화면에 출력c : 부트 파라미터를 단계별로 수정 2. VxWorks 셸에서 부트 파라미터 확인bootParamsShow는 VxWorks 셸에서 부트로더의 p 명령어와 동일하게 부트 파라미터를 출력해주는 함수로, 이때는 부트 정보 문자열이 저장된 주소인 sysBootLine을 인자로 넘겨줘야한다. -> bootParamsShow sysBootLine 3. VxWorks 셸에서 부트 파라미터 변경VxWorks 셸에서 bootChange 함수를 사용하면 부트.. 2026. 4. 6. QEMU 기반 커스텀 PCIe 장치 에뮬레이션 - (1) x86 리눅스 호스트 PC AArch32(ARMv7) 타겟을 대상으로 QEMU 기반 가상 개발환경을 만들고 커스텀 PCI 장치를 에뮬레이션하는 방법에 대해 정리한다. 준비물ARM 머신 에뮬레이션을 위한 QEMU크로스 컴파일을 위한 툴체인리눅스 커널 소스루트 파일 시스템을 만들기 위한 busybox QEMU 설치2026.01.18 - [임베디드 개발/임베디드 리눅스] - Linux 호스트에서 QEMU 빌드 툴체인 다운로드https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads Downloads ->Arm GNU Toolchain Downloads ->최신 버전 -> aarch64 Linux hosted cross toolchain.. 2026. 4. 5. Linux 호스트에서 QEMU 빌드 대부분 리눅스 배포판 저장소에는 이미 QEMU 바이너리 패키지를 제공하기 때문에 sudo apt install qemu-system-arm 등으로 간단히 설치할 수 있다. 단, 저장소 버전보다 최신 버전을 사용하고 싶거나 커스텀 하드웨어를 추가하는 등 소스 코드를 수정해야 하는 경우 직접 빌드 해야 한다. 이번 글에서는 QEMU 소스를 다운받고 직접 빌드하는 방법에 대해 정리한다. 참고:https://wiki.qemu.org/Hosts/Linux Required Package 설치sudo apt-get install git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev ninja-build Recommended Package 설치sudo apt-.. 2026. 3. 29. QEMU (Quick Emulator) QEMUQEMU는 Quick Emulator의 약자로, 오픈소스 머신 에뮬레이터이자 가상화 프로그램이다.잘 알려진 VMware나 VirtualBox 같은 가상화 도구와의 가장 큰 차이점은 머신 에뮬레이션 기능이다. VMware나 VirtualBox는 호스트 PC가 Intel x86 CPU라면 가상 머신 역시 동일한 Intel x86 아키텍처로 동작해야 한다. 반면, QEMU는 호스트 시스템과 다른 아키텍처(ARM, RISC-V 등) 머신을 가상으로 에뮬레이션하고, 그 위에서 해당 아키텍처용 운영체제를 실행할 수 있다는 장점이 있다. QEMU 가상화 방식공식 문서에서 소개하는 QEMU의 가상화 방식은 크게 두 가지로 나뉜다. 1. System Emulation (qemu-system-*)Syst.. 2026. 3. 22. Eye Opening Monitor (EOM) Eye Opening Monitor(EOM)는 고속 직렬 통신 IC에 내장된(On-Chip) 신호 품질 모니터링 기능이다. EOM을 이해하려면 먼저 Eye Diagram에 대해 알고 있을 필요가 있다. Eye Diagram이란?아이 다이어그램(Eye Diagram)은 오실로스코프 등 계측기를 이용해 고속 디지털 신호를 기준 클록에 동기화하여 샘플링한 뒤 1 비트 구간(Unit Interval)의 파형들을 화면에 중첩해 표시한 것이다. 파형이 마치 사람의 눈 모양과 비슷해 보인다해서 붙여진 이름이다. 신호의 품질, 지터, 노이즈, 상승/하강 시간 등을 한눈에 파악하고 평가하기 위해서 사용한다. 눈의 개방도(Eye Opening)눈이 크게 열려 있을수록 신호의 품질이 좋고 비트 오류율(BER, Bit Er.. 2026. 3. 15. ARM 아키텍처의 발전 ARM 아키텍처 버전의 발전과 주요 변화를 정리함 1. ARMv7 (2005)32비트 아키텍처 : 모든 범용 레지스터가 32비트이며, 32비트 데이터 처리와 주소 공간(최대 4GB)을 지원Thumb-2 명령어 지원 : 16비트 Thumb 명령어와 32비트 ARM 명령어를 혼합해 사용함으로써 코드 밀도를 높이고, 메모리 자원이 제한적인 초기 임베디드 기기에서의 효율성 크게 향상 시킴NEON (Advanced SIMD) 기술 도입: 64비트 또는 128비트 레지스터를 사용해 정수 및 단정밀도 부동 소수점(float) 연산을 병렬로 처리하는 기술로, MP3 인코딩, 비디오 가속, 2D/3D 그래픽 등 멀티미디어 처리 성능을 크게 개선함TrustZone : 하드웨어 차원에서 ‘일반 영역’과 ‘보안 영역’을 .. 2026. 3. 14. 이전 1 2 3 4 ··· 37 다음 반응형