기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요 ?

 

driver를 module(*.ko형식)로 적재하지 않고, kernel에 포함하여 building을 한 후에,

kernel이 booting시에 linux device driver들이 차례대로 실행됩니다.

 

<첫째 문의>

이 때, 수 많은 device driver이 실행되는 순서가 어떻게 되는지요 ?

, 그 순서를 결정하는 code(source file)은 어디에 있는지요 ?

 

<둘재 문의>

“sleep 후에 wake-up시에 실행되는 순서”는 “최초 booting시에 실행되는 순서”와는 다른 것 같더군요.

, sleep 후 wake-up시에는 mach-s5pv210.c(smdkv210일 경우) file에서

아래의 ‘구조체포인터 배열’의 원소 순서대로 실행(wake-up)이 되더군요.

제 경험은 이것이 맞는 것 같은데, 맞는지요 ?

static struct platform_device *smdkv210_devices[] __initdata = {

          &s5pv210_device_iis0,

          &s5pv210_device_ac97,

          &s3c_device_adc,

//…생략…

};

쾌도난마

2012.04.25 19:55:07
*.50.20.11

<첫째 문의>

->

http://flameco82.egloos.com/2778032

여기에 자세한 설명이 있습니다.


순서를 알고 싶으시면 kernel 이 빌드 되고 난 뒤 System.map file 을 여시고

__early_initcall_end 문자열을 찾으시면 그 밑으로 부터

__initcall_end 까지 차례대로 호출 됩니다.


__early_initcall_end

~~~

~~~

~~~

__initcall_end


ㅎㅎㅎ 여담으로 순서 조정은


include/linux/init.h 에 다음과 같이 define 되어 있는데

#define pure_initcall(fn) __define_initcall("0",fn,0)

#define core_initcall(fn) __define_initcall("1",fn,1)

#define core_initcall_sync(fn) __define_initcall("1s",fn,1s)

#define postcore_initcall(fn) __define_initcall("2",fn,2)

#define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s)

#define arch_initcall(fn) __define_initcall("3",fn,3)

#define arch_initcall_sync(fn) __define_initcall("3s",fn,3s)

#define subsys_initcall(fn) __define_initcall("4",fn,4)

#define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s)

#define fs_initcall(fn) __define_initcall("5",fn,5)

#define fs_initcall_sync(fn) __define_initcall("5s",fn,5s)

#define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs)

#define device_initcall(fn) __define_initcall("6",fn,6)

#define device_initcall_sync(fn) __define_initcall("6s",fn,6s)

#define late_initcall(fn) __define_initcall("7",fn,7)

#define late_initcall_sync(fn) __define_initcall("7s",fn,7s)

알 맞은 것으로 조절 하시면 될듯 합니다.


대게

#define device_initcall(fn) __define_initcall("6",fn,6)

#define device_initcall_sync(fn) __define_initcall("6s",fn,6s)

이거 두개로 조정하고


같은 level(?,번호) 대에서 조절하는 것은 Makefile 내에서 위치 조절로 합니다.


순서 조정에 관한 것은 

http://chlrbgh0.tistory.com/archive/20110819

여기에 설명 되어 있네요 ㅋ


둘째는 다른분께서.......... ㅎㅎㅎ







List of Articles
번호 제목 글쓴이 날짜 조회 수sort
5328 아이지 시스템 JTAG A1000 NAND Flash Loader (.axf) 파일 구... [5] 김진만 2009-03-18 1495
5327 안드로이드 dhcp 관련 질문드립니다. [5] 송형돈 2009-10-16 1495
5326 Exynos 5250 LCD 회전 [3] 윤동열 2013-02-08 1495
5325 무선랜 ?? <==완료 [3] 윤현승 2006-07-28 1494
5324 안드로이드 배터리 게이지 자동 업데이트 문의 [6] 이제현 2009-09-27 1494
5323 starting kernel 후 멈춥니다.. [15] kjh10101 2010-02-23 1494
5322 u-boot 관련 몇가지 질문이 있습니다. [3] Supsupi 2013-03-31 1494
5321 Android Booting시 screen mode(landscape/portlate) 변경 방법이 ... [2] yama 2011-10-08 1493
5320 동적라이브러리 링크 오류 [3] seokin 2012-01-03 1493
5319 제가 만든 모듈을 보드에 있는 커널에 삽입하려고 하니..아래와 같은... [1] 혜민아빠 2012-04-07 1493
5318 혹시 Android4.3에 들어온 Camera3 쪽 보고 계신분 없나요? EverydayMayday 2013-09-16 1492
5317 Arndale board 5250 용 커널 빌드시 에러 [5] realizeadream 2014-04-23 1492
5316 [완료]u-boot에서 tftp로 부트로더 올릴때 tftp에러 [3] 이재명 2007-06-21 1491
5315 삼성의 AP series 대리점에 대한 문의드립니다. [1] 어떤이의꿈 2012-11-26 1491
5314 [질문] jffs2 mount 에러 [2] 민세홍 2006-05-30 1490
5313 [완료] SMC91C111 driver 증상 한 번 봐주세요. [4] 강경완 2007-04-18 1490
5312 안드로이드 빌드, choosecombo 질문입니다. [1] 나노세컨드 2012-03-24 1490
5311 안드로이드 풀 빌드 시 구글 계정 사용할 수 있나요? [1] 코믹해커 2013-01-31 1490
5310 MAX8997 LDO15 관련 문의드립니다. [2] 혜정아빠 2013-06-12 1490
5309 qt 종료후 segmentation fault, Illegal instruction 오류. Supsupi 2012-04-26 1489

사용자 로그인