본문 바로가기

전체 글

(199)
공유 폴더 설정하고 사용하기 1. 공유 폴더 설정VirtualBox 관리자에서 설정버튼을 누르고 공유 폴더 탭을 선택한다. 그리고 머신 폴더를 더블 클릭하여 공유 편집에 들어가 아래 그림처럼 입력한다. 2. CD 이미지 삽입아래 그림처럼 장치 -> 게스트 확장 CD 이미지 삽입을 선택한다. 그러면 아래 그림처럼 media -> 사용자 이름 directory -> VBox_GAs_6.1.28 directory가 생성된다. 3. Bzip2 설치sudo apt updatesudo apt install -y bzip2 4. Guest Additions 설치sudo ./VBoxLinuxAdditions.run 5. 사용자 그룹 추가 6. 재부팅sudo reboot 7. 공유 폴더 생성 확인아래 그림처럼 media에 sf_0A라는 공유 폴더가..
Tftpboot directory 설정 1. TFTP 서버 설치sudo apt install tftp-hpa tftpd-hpa 2. Tftpboot directory 생성sudo mkdir tftpboot 3. Directory 권한 설정TFTP 서버가 Tftpboot directory에 접근할 수 있도록 권한을 설정한다.sudo chown -R tftp:tftp /work/release/tftpbootsudo chmod -R 777 /work/release/tftpboot 4. Tftp 설정 파일 수정TFTP 서버의 설정 파일 /etc/default/tftpd-hpa를 수정하여 tftpboot directory를 사용할 수 있도록 한다.sudo vi /etc/default/tftpd-hpa 파일 내용 중 TFTP-DIRECTORY를 아래와 ..
Oracle VM VirtualBox에 Ubuntu 24.04 LTS 설치하기 1. 아래의 Ubuntu 공식 웹사이트에서 Ubuntu 24.04 LTS의 ISO 파일을 다운로드 합니다.https://ubuntu.com/download/desktop https://ubuntu.com/download/desktop ubuntu.com 2. Oracle VM VirtualBox에서 새로 만들기 버튼을 클릭하여 이후 과정을 진행합니다. 1) 이름 및 운영 체제 2) 메모리 크기 3) 하드 디스크 4) 하드 디스크 파일 종류 5) 물리적 하드 드라이브에 저장 6) 파일 위치 및 크기 3. Oracle VM VirtualBox에서 설정 버튼을 클릭하여 이후 과정을 진행합니다. 1) 저장소에서 컨트롤러 IDE 밑에 비어있음을 클릭합니다. 2) 광학 드라이브의 아이콘을 눌러 가상 광학 디스크 선..
UART 직렬 통신의 기본 개념과 데이터 전송 구조 직렬 통신에서 송신기는 데이터를 1비트씩 순차적으로 전송합니다. 수신기는 이 비트들을 1비트씩 받아들이고, 이를 프레임 단위로 해석합니다. 이는 UART 통신이 비동기 방식으로, 송신기와 수신기가 공통의 클럭 신호 없이 통신하기 때문에, 수신기에서 Start bit와 Stop bit를 통해 데이터의 시작과 끝을 확인하고 동기화해야 하기 때문입니다.  UART 통신에서의 프레임은 아래와 같은 구조를 가집니다.1. Start bit(1bit)데이터 전송의 시작을 알리는 신호로, UART 통신 프로토콜에 따라 항상 ‘0’으로 고정되어 있습니다. UART 통신에서 대기 상태일 때 기본 신호는 ‘1’로 유지되는데, 이 상태에서 Start bit로 ‘0’이 전송되면 수신기는 데이터 전송이 시작되었음을 인식하게 됩니..
UART 데이터 전송 과정 UART(Universal Asynchronous Receiver-Transmitter)는 데이터를 직렬로 전송하는 통신 프로토콜이며, UART 컨트롤러는 이 프로토콜을 처리하는 하드웨어 모듈입니다.1. 데이터 쓰기 - DAT 레지스터데이터를 UART 컨트롤러로 전송하기 위해서는 UART_WRITE 함수를 호출하여 전송할 데이터를 UART의 DAT 레지스터에 기록합니다. 예를 들어, UART_WRITE(84)와 같이 84라는 값을 DAT 레지스터에 기록할 수 있습니다. 2. 송신 FIFO로 데이터 이동DAT 레지스터에 값이 기록되면, 이 데이터는 자동으로 송신 FIFO로 이동합니다. 송신 FIFO는 여러 데이터 패킷을 일시적으로 저장하여 순차적으로 전송할 수 있도록 대기열을 형성하는 역할을 합니다. 3...
오픈 소스 분석 방법 1. 소스 개념 파악소스가 어떤 환경에서 돌아가는지, 어떤 형태로 구성되어 있는지, 어떤 용도인지 등을 파악한다.예를 들면 어떤 소스를 열어보니 아래와 같은 파일이 있었다고 가정해보자.예시1)abcdefg.jspowerdeng.jsIndex.js예시1의 소스는 node.js 런타임에 돌아가는 소스이다. 여기까지 파악하기 위해 node.js, 런타임, 컴파일 방법 등을 찾아보면서 개념을 정리해야 한다.예시2)powerdeng.cMakefile예시2의 소스는 리눅스에서 돌아가는 c파일이다. 마찬가지로 makefile 등을 찾아보면서 개념을 정리해야 한다. 2. 환경 구축파일 및 크로스 컴파일을 통해 소스가 돌아갈 수 있는 환경을 만들어야 한다. 3. 실제 기기에 PortingBreak point를 찍을 수 ..
Node.js Node.js란? Node.js는 JavaScript 언어로 만든 프로그램들을 실행할 수 있는 환경이다. 즉, Node.js는 JavaScript 런타임(=실행 환경)이다. ● JavaScript HTML에 종속되어 있는 언어로 HTML 조작과 변경을 위해 사용한다. ● HTML HyperText(웹 페이지에서 다른 페이지로 이동할 수 있도록 하는 것)기능을 가진 문서를 만드는 언어이다. ● 런타임 특정 언어로 만든 프로그램들을 실행할 수 있는 환경 Node.js는 어디에 사용되는가? Node.js는 서버를 만드는데 주로 사용된다. 특히 크기가 작은 데이터를 실시간으로 주고 받는데 적합해서 실시간 채팅이나 주식 차트 등에 많이 사용된다. 반면에 비디오나 대규모 데이터 처리 같이 CPU를 많이 사용하는 작..
String에 무한히 값을 넣어도 될까? String str; char value = 'a'; while(1) { str += value; } 위와 같은 코드는 이론적으로는 str 문자열에 문자를 계속 추가할 수 있다. 하지만 메모리 제한으로 인해 문제가 발생한다. while문이 계속 실행됨에 따라 str 문자열의 크기가 계속 증가하여 결국 시스템에서 사용 가능한 모든 메모리를 소비하게 된다. 시스템에 메모리가 부족해지면 프로그램이 충돌하거나 오류가 발생할 수 있다. 결론적으로 이 코드는 이론적으로 str 문자열에 무한한 수의 값을 넣으려고 하지만 실제로 프로그램에서 사용할 수 있는 메모리 양에 의해 제한된다.