목록2025/06 (14)
printf("ho_tari\n");

2025.06.30 Vivado와 Vitis에 대해서 Vivado와 Vitis는 모두 Xilinx가 FPGA(Fiel-Programmable Gate Array) 개발을 위해 제공하는 도구. 각 도구의 주요 사용 용도와 차이는 다음과 같다.Vivado: Xilinx의 FPGA 디자인 및 논리 합성 도구. 이 도구를 사용하면 디자인을 직접 FPGA에 구현하고, 논리를 합성하며, 타이밍 분석을 수행하고, FPGA의 물리적 배치를 정의할 수 있다. 또한, RTL(RTL, Register Transfer Level) 설계를 위한 하드웨어 설명 언어, 예를 들어 VHDL이나 Verilog를 사용하여 사용자가 직접 하드웨어 로직을 설계 할 수 있다.Vitis : Xilinx의 소프트웨어 설계 스택으로, FP..
2025.06.11 리눅스의 파일파일은 리눅스에서 가장 근본적이고 기본적인 추상화-"Every thing is a file"상호작용은 상당부분은 파일 읽기와 파일 쓰기로 발생파일에 접근하려면 먼저 파일을 열어야한다 - 읽기와 쓰기 목적으로 파일열기가 가능열린 파일은 고유한 fd(file descriptor)설명자를 통해 참조되며, 열린 파일과 연관된 메타 데이터와 특정 파일 자체로 다시 매핑Linux 커널 내에서 해당 설명자는 file descriptor(fd)로 불리는 정수(C 유형int)에 의해 처리fd는 사용자 공간과 공유되며 사용자 프로그램이 파일에 액세스하기 위해 직접 사용함Linux 시스템 프로그래밍의 대부분은 파일을 열어서 fd를 할당받고 fd를 이용하여 파일을 조작하고, 닫고 사용하는 것으..

Socket Driver Arcade Project # Socket_Driver_Arcade실행 방법Ubuntu 환경1. vim lcd1602.c2. vim Makefile3. make -j12 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-4. scp lcd1602.ko pi@ip주소:/home/piRaspi 환경1. sudo insmod lcd1602.ko2. sudo chmod 666 /dev/lcd16023. dmesg | tail로 lcd1602 register 확인4. sudo mknod /dev/lcd1602 c $MAJOR $MINOR (dmesg | tail로 확인)5. vim server_final.c6. gcc server_final.c -o serve..

2025.06.24 BMP180 i2c라이브러리를 이용해서 기압 측정bmp180_i2c.c#include #include #include #include #include #include #include #include #include // BMP180 I2C 주소 및 레지스터#define BMP180_ADDRESS 0x77#define BMP180_REG_CAL_AC1 0xAA#define BMP180_REG_CONTROL 0xF4#define BMP180_REG_RESULT 0xF6#define BMP180_CMD_READ_TEMP 0x2E#define BMP180_CMD_READ_PRESSURE 0x34// 보정 계수 전역 저장static s..

2025.06.23 ctags$ sudo apt-get install universal-ctags$ sudo apt-get install cscope#linux 폴더에서 실행ctags -Rcscope -R$ vi ~/.vimrc 로 .vimrc 파일을 연다.set hlsearchset autoindentset cindentset nuset tabstop=4 set shiftwidth=4set titleif has("syntax") syntax onendifif filereadable("./tags") set tags=./tagselseif filereadable("../tags") set tags=../tagselseif filereadable("../../tags") set t..
2025.06.20 리눅스 디바이스 드라이버 ⇒ 임베디드에서 관심 영역 역할디바이스 드라이버는 하드웨어를 사용 가능하게 만들어 줄 뿐 하드웨어를 어떻게 사용 할지에 대한 결정은 응용 프로그램에게 넘겨야 한다.고려사항최대한 유연하고 많은 기능을 사용자에게 제공하려고 할 수록 디바이스 드라이버 제작자는 많은 부분을 구현 해야한다.동기식, 비동기식 모두 지원할 것인가?장치를 여러 번 열 것 인가?정책 독립성을 제공할 것인가?제공되는 디바이스 드라이버 유틸리티디바이스 제어와 구성을 도울 목적으로 간단한 유틸리티와 디바이스 드라이버를 같이 출시하는 경우가 있다.모놀리식 방식초기 리눅스 커널은 모놀로딕 방식으로 커널에 모든 디바이스 드라이버를 포함 시켜야 했다.이런 방식은 디바이스가 바뀔때마다 커널 컴파일을 다시..

2025.06.19 개발 환경 구축리눅스에서 사용하는 컴파일러는 GCC를 주로 사용하며 디버거로 는 GDB를 사용하고 있다. 타깃 보드가 ARM 계열 프로세서를 사용하고 있으면 ARM용 GCC 컴파일러를 설치하고, 타깃 보드가 x86 계열 프로세서를 사용하고 있으면 x86용 GCC 컴파일러를 설치하여 사용하면 된다. 브이엠웨어(VMWare), 버추얼 박스(VirtualBox), Xen 하이버 바이저 크로스 개발환경 구축개발 시스템 구축Download Linux ISO Image - 로그인 필요 없음.https://ubuntu.com/download/desktopWindow + VM + Linux 개발 시스템 구축VM - memory 4GB이상, HD 30GB 이상Download VMPlayer - 로그..

2025.06.18 01.thread_create.c#include #include #include #include #define _GNU_SOURCE /* See feature_test_macros(7) */#include #include void *thread_function(void *arg);int main() { int status; pthread_t tid; pthread_attr_t attr; void *thread_result; int i; pthread_attr_init(&attr); status = pthread_create(&tid, &attr, thread_function, "hello thread"); // status = pthread_create(&tid, NU..