본문 바로가기
반응형

분류 전체보기176

[Linux BSP] U-Boot Bootloader 빌드(ubuntu 호스트 크로스 컴파일) 개념을 이해하고 오자 [Linux] 부트 로더 Boot Loader란? Boot Loader의 역할? q타겟 시스템 초기화 v부트로더는 전원이 입력되면 타겟 시스템이 정상동작 할 수 있도록 하드웨어 및 소프트웨어 동작 환경을 설정 v불필요한 하드웨어의 동작 중지, 시스템 program-developers-story.tistory.com ubuntu@ubuntu8:~$ mkdir pi_bsp ; cd pi_bsp ubuntu@ubuntu8:~/pi_bsp$ sudo apt update ubuntu@ubuntu8:~/pi_bsp$ sudo apt-get install gawk git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat.. 2024. 2. 7.
[Ubuntu] TCP/IP Socket 통신 클라이언트->서버 파일 전송 C언어로 구현하기 서버측 코드 #include #include #include #include #include #include #include #include #include void error_handling(char *message); int main(int argc, char *argv[]) { int serv_sock; int clnt_sock; long int file_size; int out; struct sockaddr_in serv_addr; struct sockaddr_in clnt_addr; socklen_t clnt_addr_size; char message[]="Hello World!"; if(argc!=3){ printf("Usage : %s \n", argv[0]); exit(1); } serv_.. 2024. 2. 3.
[Ubuntu] TCP/IP Socket 통신 클라이언트->서버 메시지 전송 C언어로 구현하기 min@min-linux:~/linuxC$ cat hello_server.c #include #include #include #include #include #include void error_handling(char *message); int main(int argc, char *argv[]) { int serv_sock; int clnt_sock; struct sockaddr_in serv_addr; struct sockaddr_in clnt_addr; socklen_t clnt_addr_size; char message[]="Hello World!"; if(argc!=2){ printf("Usage : %s \n", argv[0]); exit(1); } serv_sock=socket(PF_INET,.. 2024. 2. 3.
[Ubuntu] TCP/IP Socket 통신 서버->클라이언트 메시지 전송 C언어로 구현하기 ubuntu@ubuntu8:~/linuxC$ cat hello_server.c #include #include #include #include #include #include void error_handling(char *message); int main(int argc, char *argv[]) { int serv_sock; int clnt_sock; struct sockaddr_in serv_addr; struct sockaddr_in clnt_addr; socklen_t clnt_addr_size; char message[]="Hello World!"; if(argc!=2){ printf("Usage : %s \n", argv[0]); exit(1); } serv_sock=socket(PF_INET.. 2024. 2. 2.
[C] C언어는 왜 쓰는가? 포인터, 즉 메모리 관리로 인한 빠른 실행 속도 때문에 쓴다고 해도 과언이 아니다. 실행 순간 HDD에서 bash를 통해서 SDRAM(SD MEMORY)에 잡힌다. 어떻게 잡히냐면 read에서만 sizeof를 해서 buffer의 크기만큼 효율적으로 읽어오는 거고, write할 때는 return된 read한 size인 n만큼만 써주면 되는 거임. 파일 위치 지시자라는게 있어서 마지막으로 읽고 나온 위치를 저장해줌. 파일 크기가 크다면 그런식으로 이어서 쓰면 되는거임. while의 종료 조건은 void pointer 를 통해 어떠한 포인터도 가리킬수 있다는 것이 장점임. 다만 사용할 떄 어떤 형의 변수를 가리킬 포인터인지 형을 알려줘야함. 2024. 2. 2.
[LINUX] LINUX 기초 상식 생성(created) 상태 : 커널 공간에 PCB등이 만들어지고 프로세스가 처음 생성되는 상태이다. 준비(ready) 상태 : 기억 장치 등 필요한 모든 자원을 할당 받은 상태에서 프로세서를 할당 받으려고 대기하는 상태이다. 즉, 프로세서를 할당 받게되면 즉시 실행이 가능한 상태이다. 실행(running) 상태 : 프로그램 코드가 프로세서에 의해 실행되고 있는 상태, 프로세스가 필요한 모든 자원을 할당 받은 상태이다. 대기(blocked) 상태 : 프로세스가 필요한 자원을 요청하고 이를 할당 받을 때까지 기다리는 상태이다. * 실행하다 I/O 등에 의해서 중단된 상태 지연 (suspended) 준비 상태 : 프로세스가 기억장치를 제외한 다른 모든 필요한 자원들을 보유한 상태이다. 지연 (suspended.. 2024. 2. 2.
[Ubuntu] Ctag 사용 ubuntu@ubuntu8:~/linuxC$ sudo apt install exuberant-ctags 라이브러리를 설치하면 /usr/ 안에 설치됨 안을 살펴보면 ubuntu@ubuntu8:~/linuxC$ cd /usr/ ubuntu@ubuntu8:/usr$ ls arm-linux-gnueabi arm-linux-gnueabihf bin games include lib lib32 lib64 libexec libx32 local sbin share src 구조체 자료형 변수 등도 다 include에 정의되어 있음. ubuntu@ubuntu8:/usr$ cd include ubuntu@ubuntu8:/usr/include$ ls EGL byteswap.h expat_external.h gnumake.h m.. 2024. 2. 2.
[Raspberry Pi] 작업한 이미지 복제하기 윈도우에 연결된 USB를 우분투에서 연결하고 싶기 떄문에. sdb가 usb 메모리 장치임. sd a,b,c,d,e 이런식으로 쭉 나옴. rootfs bootfs가 있으면 sd카드임. $ sudo apt install gparted pv dcfldd 장치를 언마운트 파티션 번호를 뺀 장치 전체를 백업받고 싶기 때문에 명령어를 칠때 sdb 뒤에 숫자를 안친다. ubuntu@ubuntu8:~$ sudo dd if=/dev/sdb of=sdimage_wcm.img status=progress dd는 블록 단위로 파일을 복사하거나 파일 변환을 할 수 있는 명령어 input file은 dev의 sdb 파티션 구분없이 전부 & output file은 sdbimage.img 이고 status는 progress로 해주고.. 2024. 2. 2.
반응형