반응형

Linux_Device_Driver 6

[Linux Device Driver] Device Driver 에서의 지연함수 (sleep / delay) 개념정리

다음의 내용은 오렐리 리눅스 디바이스 드라이버(개정3판) 의 내용을 정리한다. 단기지연 함수종류 Type1 함수종류 Type2 단기지연 함수종류 Type1 void ndelay(unsigned log nsec); void udelay(unsigned log usec); void mdelay(unsigned log msec); 일단 위의 함수들은 아키텍쳐에 의존적이다. 아키텍쳐에서 제공하지 않을때는 에서 기본버젼을 제공한다. 위의 함수들은 SW loop 를 사용한다. 위의 함수로 최대로 delay 시킬수있는 값은 제한되어있다. (__bad_udelay ) 실행대기 함수들로, 위의 함수들을 실행하는 동안에는 다른 TASK 를 실행하지 않는다. (contex switching 이 안일어나는듯;;) delay ..

SW 개발 2013.04.04

[Linux_kernel] generic usb serial 드라이버 추가, 사용하기

Step1. 커널에 해당 usb serial 모듈 추가. Setp2. usb serial 모듈을 enable 시키기 Step1. 커널에 해당 usb serial 모듈 추가. 커널의 menuconfig 의 device driver -> usb 를 들어가면 아래와 같은 메뉴가 쫙나온다. | | |----------------------------------------------------------------------------------------------------------| x lqqqqqqqqq^(-)qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x x x Driver Mode (Both host and..

SW 개발 2011.05.17

[Linux Device Driver] Platform Device Driver 등록, 해제

이전 2.6 커널기준 이며, 최신커널에서는 해당내용들에 해당하지 않습니다. Linux Device Module platform device와 platform_drier의 선언 및 등록 Linux Device Module Linux Device Driver를 작성하다보면 드라이버를 모듈로 작성하여 관리할 때가 있다. 혹은 초기 작성 및 테스트 시 모듈로 컴파일하여 Test를 진행해야 할 때도 있을 것이다. Linux의 버전이 2.6.xx대로 접어들면서 생긴 가장 큰 변화중의 하나가 platform device driver라는 개념이다. 임베디드 환경에서 대부분의 경우 platform device는 정적으로 할당되어 커널의 시작과함께 계속적으로 메모리내에 상주하다가 단말기의 전원 차단과 함께 종료된다. 하지..

SW 개발 2010.10.04

[Linux Device Driver] Rebis 보드 리눅스 콘솔 tty0 에서 tty1로 바꾸기

Rebis 보드 기준.. 1.menuconfig에서... 수정하기 2.struct platform_device 수정 3./dev/tts/0 -> /dev/tts1로 바꾼다. 이전 2.6 커널기준 이며, 최신커널에서는 해당내용들에 해당하지 않습니다. 1.menuconfig에서... 수정하기 console=ttySAC1 로 바꾼다. (음..하지만 별로 영향을 안미치는듯.) 2.struct platform_device 수정 그리고 drivers/serial/s3c2410.c 에 있는 s3c24xx_serial_initconsole()에서 struct platform_device *dev = s3c24xx_uart_devs[0] -> [1]로 바꾼다.(원래 코드자체에 변수가아닌 숫자가 들어가있다.) 그다음 ra..

SW 개발 2010.08.12

[Linux Device Driver] kernel 2.4 리눅스 네트워크 드라이버

출처 : 마소 기타사항 : 마소의 꽤 오래전 자료입니다. 해당 기사를 백업할 목적으로 포스팅합니다. 그리고 보기좋게 약간 손봤습니다.혹시나 문제가된다면 자삭하겠습니다.. 자료구조 소켓 버퍼 - sk_buff 구조체 네트워크 장치 - net_device 구조체 간단한 소켓 프로그래밍 예제 소켓의 생성과 연결 socket() 시스템 콜 connect() 시스템 콜 패킷의 전송 응용 계층 - Echo client 전송 계층 - TCP 네트워크 계층 - IP 데이터 링크 계층 - pci-skeleton 패킷의 수신 데이터 링크 계층 - pci-skeleton 네트워크 계층 - IP 전송 계층 - TCP 응용 계층 계층별 패킷 흐름 정리 데이터 링크 계층 네트워크 계층 - IP 전송 계층 - TCP 커널 해커가 ..

SW 개발 2010.08.10

[Linux Device Driver] 레비스보드용 2.6 커널 디바이스 드라이버 제작하기..

먼저 makefile 작성 드라이버 예제소스코드 먼저 makefile 작성 make file CC = arm-linux-gcc obj-m+=button_dev.o // 만들 목적파일!!!!! KDIR=/root/my_kernel_test/my_kernel_source/linux-2.6.17.13-rebis // 커널 소스!!!! PWD:=$(shell pwd) default : $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules 흠;;; 기본적으로 CC 하고 obj-m 으로 등록한다음 MAKE 옵션으로 컴파일!!! 그담에 소스코드작성. 먼저 2.6 커널용 드라이버를 작성하기 위해서 꼭 포함시켜야 할 해더 파일들입니다. (귀찮으니 그냥 다 붙여서 코딩추천ㅋㅋ) #include #in..

SW 개발 2009.02.26
반응형