VEDA 복습 (49) 썸네일형 리스트형 VEDA 50일차 - 리눅스 드라이버 fops > driver call back function 지금까지 한 것 : 모듈을 만들고, printk, gpio etc드라이버 제작을 위해서 알아야하는 기본적인 사항들 : 메모리 할당 : 힙(큰 용량 - 큰 변수들 할당, 메모리 할당은 여기를 이야기함)과 스택(작음 - 작은 변수들 할당, 아껴야 함) glibc(유저 영역에서 할당자, malloc), slab 할당자(kernel, data data > page, 2^N 단위로 페이지 할당), 프로세스 컨택스트에서 사용 페이지(page) : 메모리 매핑의 최소 단위, physical(frame) > virtual(page), usually 4KB PAGEOFFSET : 유저 영역과 커널 영역을 분리하는 경계 피지컬 영역에서.. VEDA 49일차 - 리눅스 드라이버 리눅스 커널모듈의 장점 : 컴퓨터를 리부트할 필요없이 바로 장치를 사용할 수 있다. 디바이스 종류 :char : io가 char(1 byte) 단위로 이루어짐, HIDblock : 대량의 바이트를 전송, storage(HDD, USBmem etc)network : 네트워크 장치, NIC...char 디바이스 특징 : 간헐적 데이터 발생, 바이트 데이터 발생캐릭터 디바이스 등록 : 디바이스를 등록하면 장치 배열에 저장, 이후 커널이 관리(struct cdev) Major 번호 : 장치의 종류를 구분하는 식별 번호, 드라이버를 찾아올 수 있게 하는 번호Minor 번호 : 동종 장치의 개별적 장치를 지정하는 고유 식별 번호, 문자 장치와 블록 장치는 독립적으로 사용cat /proc/devices/proc : .. VEDA 48일차 - 리눅스 드라이버 기본 : 유저 모드와 커널 모드로 분리되어 있다. > 커널 모드는 하드웨어 자원에 대한 권한이 있다. 어플리케이션(유저 모드)은 시스템 자원이 필요할 때 커널에 요청한다. 라즈베리 파이 SoCripi 1 BCM835ripi 2 BCM836ripi 3 BCM837ripi 4 BCM711 ripi 5 BCM712 리눅스 커널의 특징 : 모놀리틱 커널1. micro architecture kernel : 구조적(well defined), 체계적, 관리에 용이2. monolitic architecture kernel : 비구조적, 성능을 위한 최적화로 코드가 이상해짐(보기 어려워짐, 시대적 한계), 모듈(module)의 등장(비구조적인 시스템을 보 완 in kernel), 모듈 형태로 드.. VEDA 45일 ~ 47일 : 리눅스 프로그래밍 심화 실습 구현해야할 과제는 다음과 같다. 리눅스 프로그래밍을 학습하면서 배웠던 내용들을 종합적으로 수행할 수 있도록 실습이 구성되었다. 프로젝트를 완료했다!! 좀 더 깔끔하게 코드를 작성하고 싶었는데 다음에는 규칙을 좀 더 잘 정해봐야 할 것 같다. 코드는 많이 작성해 봐야할 듯 https://github.com/youngSeok0413/TCP-IPHardWareController.git GitHub - youngSeok0413/TCP-IPHardWareController: 라즈베리파이4(서버)와 Ubuntu PC(클라이언트)를 이용한 리눅라즈베리파이4(서버)와 Ubuntu PC(클라이언트)를 이용한 리눅스 프로그래밍 실습. Contribute to youngSeok0413/TCP-IPHardWareCon.. VEDA 44일차 - 하드웨어 제어 + TCP/IP 서버 -클라이언트 프로그래밍 오늘도 이어서 하드웨어 - 내일부터 실습이 들어갈 예정!! 스위치 - open circuit1) 디커플링 커패시터 : 스위치의 진동이 입력으로 들어가는 것을 방지2) 풀업/풀다운 레지스터 : 디폴트 값을 정해주는 역할, 풀업 레지스터는 디폴트를 HIGH로, 풀다운 레지스터는 디폴트를 LOW로 히스테리시스 : 시스템의 입력과 출력 관계가 시스템의 과거 상태에 의존하는 현상 오늘부터 실습이 들어간 거라 내용이 별로 없다. VEDA 43일차 - 하드웨어 제어 + TCP/IP 서버 -클라이언트 프로그래밍 42일차는 개인 일정으로 조퇴해서 기록한 내용이 없다. 실습 위주라서 이론적으로 기록할 내용은 별로 없다! 실습 목표 : TCP/IP 서버를 구축하여 웹 상에서 기기를 조작할 수 있도록 해보자!!아직까지는 user space 단1. LED2. CDS3. PWM : 밝기 조절(LED), 음계 조절(Buzzer)4. FND ( 7 SEG ) => diver chip 다음 주부터 커널 영역으로 넘어간다!! LED => Light Emitting Diode(빛을 내는 다이오드)다이오드는 P형 반도체와 N형 반도체가 접합되어 있는 소자다. P => N 방향으로 전압이 인가되어야 전류가 흐른다.LED 같은 소자는 일반적으로 active-low로 구성한다.(gpio의 전력을 사용하는 것보다 전원의 전력을 끌어쓰는 것.. VEDA 41일차 - POSIX 스레드, 스레드 동기화 1. C => HW(embedded) 1. firmware(= startup + main() ) 2. bootloader + RTos { = os + app } 3. u-boot + os(kernel) + drivers + (middleware) + apps 2. embedded system comprehension PC ====> BOARD (PC와 다르게 보드에서의 개발은 환경이 다르다!) 3. embedded c on bard. => "volatile" => "pointer --> devices(SFR)", "restrict" => bit operations 4. Datastructure and Algorithm : 실제로도 중요 + 코딩테스트 6. RTo.. VEDA 40일차 - 리눅스 프로그래밍(프로세스 간 통신) 세미나개발자가 일하는 법 : documentation이 중요함 = 정말 세세하게 기록하면 기록할 수록 좋음(남 좋은 것 뿐만 아니라 나의 책임 소재를 피할 수 있다.), documnetation을 자동화할 수 있으면 자동화해라(단 보안 정책을 고려해야 한다.) 별 거 없다. => 딥하게 파봐라!! 동기화두 개 이상의 프로세스가 동일한 자원에 접근할 때 잘못된 연산을 없애고 일관성을 유지배타적인 사용순차적인 사용동기화 객체 : semaphore, mutex, rwsem, rwmutex, completion 이름이 없는 경우와 이름이 있는 경우 : 전자는 부모-자식 프로세스 간 통신, 후자는 제한이 없음우선순위 역전 현상 방지 : 우선순위 상속, priority ceiling(우선순위를 아예 올려주는 것) .. 이전 1 2 3 4 5 ··· 7 다음 목록 더보기