디버깅(6)
-
Makefile - 요약 정리
📌 Makefile 요약 정리Makefile은 프로젝트의 빌드(컴파일, 링크 등) 과정을 자동화하는 파일입니다.대규모 프로젝트에서는 여러 소스 파일을 컴파일하고 의존성을 관리하는 과정이 복잡해지므로,Makefile을 사용하여 자동화된 빌드 시스템을 구축하면 효율적입니다.1. Makefile이란?✅ Makefile은 make 명령어와 함께 사용되며, 프로젝트의 컴파일 및 빌드 과정을 정의하는 스크립트입니다.✅ 주요 역할여러 소스 파일을 자동으로 컴파일 및 링크변경된 파일만 증분 빌드(Incremental Build) 수행의존성(Dependency) 관리자동화된 빌드 시스템 구성 가능✅ 기본 실행 방법make➡ 현재 디렉토리의 Makefile을 찾아 규칙을 실행.✅ 특정 목표(Target) 실행make c..
2025.03.11 -
Makefile - 5. Makefile 최적화 및 실전 프로젝트 적용 (5-2. Makefile 디버깅 (Debugging Makefiles))
📌 5-2. Makefile 디버깅 (Debugging Makefiles)Makefile을 작성할 때, 빌드 과정에서 예상치 못한 오류가 발생할 수 있습니다.이때 디버깅 기능을 활용하면 빌드 과정과 실행될 명령을 쉽게 추적하여 문제를 해결할 수 있습니다.특히, 다음과 같은 디버깅 기법이 유용합니다.make -n을 사용하여 실행 없이 명령만 출력 (Dry Run)make VERBOSE=1을 활용하여 자세한 명령어 출력1. make -n을 활용한 실행 시뮬레이션 (Dry Run Mode)📌 1-1. make -n의 개념make -n을 실행하면 실제 빌드를 수행하지 않고, 어떤 명령어가 실행될지 출력됩니다.Makefile을 실행하기 전에 어떤 작업이 수행될지 확인할 수 있는 디버깅 도구입니다.✅ 활용 사례..
2025.03.11 -
U-Boot 포팅 (7. U-Boot 디버깅 및 문제 해결 / 부팅 실패 시 해결 방법)
부팅 실패 시 해결 방법임베디드 시스템에서 U-Boot가 정상적으로 부팅되지 않는 경우 다양한 원인이 있을 수 있습니다.이를 해결하려면 로그 분석, 보드 설정 확인, 환경 변수 초기화 등을 수행해야 합니다.이 문서에서는 부팅 실패 시 문제 해결 방법, DEBUG 로그를 활용한 분석, 보드 설정 수정, 환경 변수 리셋 방법을 설명합니다.1. U-Boot가 멈추는 지점 분석 (DEBUG 로그 활용)🔹 부팅 로그 분석 방법U-Boot가 부팅 과정에서 멈춘다면, 시리얼 콘솔(UART) 출력을 확인하여 어디서 멈췄는지 분석해야 합니다.📌 시리얼 콘솔에서 부팅 로그 확인sudo minicom -D /dev/ttyUSB0 -b 115200또는sudo picocom -b 115200 /dev/ttyUSB0📌 부팅..
2025.03.05 -
U-Boot 포팅 (7. U-Boot 디버깅 및 문제 해결 / JTAG 디버깅)
JTAG 디버깅 (U-Boot 디버깅을 위한 설정 및 활용법)JTAG(Joint Test Action Group)은 임베디드 시스템에서 하드웨어 디버깅을 위한 표준 인터페이스입니다.U-Boot에서 JTAG을 사용하면 CPU 레지스터 값 확인, 메모리 접근, 중단점 설정 및 코드 실행 흐름 분석이 가능합니다.이 문서에서는 **JTAG 설정 방법 및 활용법(OpenOCD, GDB 연동 포함)**을 설명합니다.1. JTAG 개요 및 필요성🔹 JTAG이란?JTAG은 SoC, 마이크로컨트롤러(MCU), FPGA 등에서 디버깅, 프로그래밍 및 테스트를 수행하는 표준 인터페이스입니다.✅ 운영체제가 실행되지 않아도 CPU 및 메모리를 직접 디버깅 가능✅ CPU 레지스터 값 확인 및 수정 가능✅ U-Boot 실행 흐름..
2025.03.05 -
U-Boot 포팅 (7. U-Boot 디버깅 및 문제 해결 / U-Boot 디버깅 방법)
U-Boot 디버깅 방법U-Boot를 디버깅하는 것은 부팅 과정에서 발생하는 문제를 해결하고, 하드웨어 동작을 검증하는 중요한 과정입니다.U-Boot 디버깅 방법에는 시리얼 콘솔 로그 분석, 메모리 값 확인 및 수정, 비교하는 기능이 포함됩니다.이 문서에서는 시리얼 콘솔 로그 분석(printk 활용), U-Boot 내부에서 메모리 확인(md, mw, cmp 명령어 사용) 방법을 설명합니다.1. 시리얼 콘솔 로그 분석 (printk 활용)🔹 시리얼 콘솔을 이용한 로그 출력U-Boot는 기본적으로 시리얼(UART) 콘솔을 통해 디버깅 로그를 출력합니다.이를 통해 부팅 과정에서 어디서 문제가 발생했는지 확인할 수 있습니다.📌 시리얼 콘솔 설정 (minicom 또는 picocom)sudo minicom -D..
2025.03.05 -
C++ 초급 - 2. 기본 문법 (4 - 주석 (Comments))
2.4 주석 (Comments)C++에서는 코드에 설명을 추가하거나 특정 코드의 실행을 막을 때 주석을 사용한다.주석은 프로그램의 실행에 영향을 주지 않으며, 코드의 가독성을 향상시키고, 다른 개발자가 코드를 이해하기 쉽게 도와준다.(1) 한 줄 주석 (//)한 줄 주석은 // 기호 뒤에 작성되며, 그 줄의 끝까지 주석으로 처리된다.📌 기본 사용법#include int main() { // 이 줄은 주석 처리됨 (컴파일러가 무시함) std::cout 🔹 출력 결과Hello, C++!💡 한 줄 주석은 주로 다음과 같은 경우에 사용된다.코드 설명 추가int age = 25; // 사용자의 나이 저장디버깅을 위해 특정 코드 비활성화// std::cout 임시로 코드 변경int x = 10;//..
2025.02.12