반응형 RaspberryPi12 [Raspberry Pi Kernel] Kernel의 시스템 콜 함수를 활용한 GPIO Button, LED 제어 [Raspberry Pi Kernel] Kernel의 시스템 콜 함수를 활용한 GPIO LED 제어 [Ubuntu-RaspberryPi] C언어로 U-Boot gpio제어를 통한 led 동작 및 버튼 제어 구현 목표는 led 0xff 명령어를 치면 이름 이니셜을 띄워주면서 led 작동시키고 button을 누르면 8개의 버튼 중 해당 버튼에 맞게 O program-developers-story.tistory.com 이전 글 먼저 하고 오세영~ 우분투로 넘어와서 이전 글에서 작성한 코드들 좀만 더 함수화하겠음. 커널 시스템 콜 함수 코드임. ubuntu@ubuntu8:~/pi_bsp/kernel/linux/kernel$ cp test_mysyscall.c test_mysyscall.c_v2 #include .. 2024. 2. 16. [Raspberry Pi Kernel] Kernel의 시스템 콜 함수를 활용한 GPIO LED 제어 [Ubuntu-RaspberryPi] C언어로 U-Boot gpio제어를 통한 led 동작 및 버튼 제어 구현 목표는 led 0xff 명령어를 치면 이름 이니셜을 띄워주면서 led 작동시키고 button을 누르면 8개의 버튼 중 해당 버튼에 맞게 O X를 출력해주고 해당 버튼에 맞는 led만 on시켜주기 + 8번 버튼 누르 program-developers-story.tistory.com 기존 코드를 수정하여 LED 제어 시스템 콜 함수로 구현하기 (U-Boot 부트로더 LED, 버튼상태 O,X 출력 예제 응용) *KERNEL에서 제공하는 GPIO API 우리가 사용할 API에 대해 나열하겠음. 이 함수들은 #include 에 있음. int gpio_request(unsigned gpio, const c.. 2024. 2. 16. [Raspberry Pi Kernel] Kernel menuconfig로 GPIO enable하고 다시 LCD 켜기 [RaspberryPi Kernel] Ubuntu에서 Raspberry Pi Kernel system call 함수 구현 시작 전에 배경지식부터 함양 시스템 콜 함수란 user mode process와 kernel간의 interface-> kernel의 자료구조 및 HW에 대한 접근 불가 user mode process가 kernel이 가지고 있는 시스템의 상태 정보를 열람하거 program-developers-story.tistory.com 저번 글에서 Kernel menuconfig로 GPIO disable해놔서 GPIO로 전원을 받는 7인치 LCD가 부팅 이후 안켜졌었는데 다시 키도록 하겠다. ubuntu@ubuntu8:~/pi_bsp/kernel/linux$ vi build.sh 1 #make A.. 2024. 2. 16. [RaspberryPi Kernel] Ubuntu에서 Raspberry Pi Kernel system call 함수 구현 시작 전에 배경지식부터 함양 시스템 콜 함수란 user mode process와 kernel간의 interface-> kernel의 자료구조 및 HW에 대한 접근 불가 user mode process가 kernel이 가지고 있는 시스템의 상태 정보를 열람하거나 HW에 접근하여 HW를 통제하기 위해서는 kernel과의 communication channel이 필요함. *POSIX API (Application Programming Interface) 유닉스 운영체제에 기반을 두고 있는 일련의 표준 운영체제 인터페이스. application이 시스템에 각 서비스를 요청할 때에 어떠한 함수를 사용해야 하는지 지정한 것. 표준을 두어 각각 다른 시스템에 응용 프로그램을 porting하는 것이 용이하게 하기 위한.. 2024. 2. 15. [RaspberryPi4 Kernel] Ubuntu에서 BCM2711 커널 빌드해서 올리기 현재 사용하는 커널의 버전을 확인하고, 직접 커널을 빌드해서 올려보자 우선 현재 사용중인 커널의 버전 확인 pi@pi08:~$ uname Linux pi@pi08:~$ uname -a Linux pi08 6.1.0-rpi7-rpi-v7l #1 SMP Raspbian 1:6.1.63-1+rpt1 (2023-11-24) armv7l GNU/Linux 운영체제 호스트명 커널버전 순으로 나옴. 고로 커널버전은 6.1.0 이 커널 버전 소스를 찾아보자..! 시스템 콜 함수를 만들어서 배포하는건 비표준이라서 노우.. 그저 이해해보기 위해 시스템 콜 함수를 해보는거임. ubuntu로 가서 새로운 폴더 만들고 들어가주면서~ ubuntu@ubuntu8:~/pi_bsp$ mkdir kernel ubuntu@ubuntu8:.. 2024. 2. 15. [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. [Raspberry Pi] PC와 USB로 SERIAL 연결하기 HW 결선을 먼저 해준다. 이런 선이고 usb는 컴퓨터에 gpio 핀은 라즈베리파이의 gpio핀에 꽂아주면됨. USB 케이블 흰색선(RXD)-> 라즈베리파이 TXD(GPIO 14) USB 케이블 초록색선(TXD)-> 라즈베리파이 RXD(GPIO 15) USB 케이블 흑색선(GND)-> 라즈베리파이 GND 윈도우 장치관리자의 포트 봐보면 드라이버 설치 전에는 이렇게 뜬다. 마우스 오른쪽 클릭으로 디바이스 제거 재부팅하면 뜨죠? putty 설정 변경 serial로 선택하고 이름 쓰고 저장 다시 load하고 좌측의 serial 들어가서 flow control none 으로 변경!! 이제는 라즈베리파이 설정해야됨 sudo vi /boot/config.txt enable_uart=1 추가해주고 sudo vi /b.. 2024. 2. 2. [Raspberry Pi] tag 사용해보기 pi@pi08:~/gpio.d $ sudo apt install ctags 코드 상에 header 파일을 데이터베이스화 하고 ctrl 하고 대괄호 닫기를 하면 정의되어 있는 헤더파일이 열리고 코드로 복귀할 때는 ctrl t 2024. 2. 1. 이전 1 2 다음 반응형