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

안녕하세요 ?

 

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 [질문] 3G 동작안됨 - Nexus S custom ROM [1] 최문석 2011-04-19 561
5327 럽타임 상태에서 코드영역이나 데이터영역의 주소를 알 수 있나요? just4you 2011-06-23 561
5326 embedded linux관련 교육을 받고 싶은데요. [1] 푸른하늘 2009-10-15 562
5325 오드로이드 디버깅보드 관련 질문 [1] 팅이파파 2010-04-07 562
5324 C100 개발보드 NFS 마운트 할때 맥어드레스.... [2] 현쓰 2010-05-14 562
5323 가속도 센서를 이용한 Rotate에서 초기화면은 rotate가 안되나요? [1] 정낙주 2010-07-26 562
5322 Odroid-t 에서 SD Card eject 질문입니다~ [1] 안드로이드시티 2010-09-23 562
5321 rc.local 파일은 어떻게 호출 가능한가요? [1] 성빈아빠 2010-02-11 563
5320 s3c6410 opengl es glMapBuffer함수 본체가 라이브러리에 있나요? s1004 2010-05-30 563
5319 pc에서 usb드라이버 사용과 관련된 질문입니다 [1] 솔솔 2010-09-06 563
5318 오드로이드-T 무선랜 작동에 관하여 [1] trumpetYK 2010-11-18 563
5317 [odroid] 에서 android죽이고 linux kernel만 남겨둘수 있나요? [4] 나쁜_남자 2011-01-19 563
5316 CONFIG_PM & CONFIG_SUSPEND & CONFIG_PM_SLEEP & CO... hotpjs 2011-01-23 563
5315 개발용 디버그 보드 어찌 사용하나요? [2] 네오딜리 2009-11-07 564
5314 cat zImage > /dev/mtdblock1 실행후 시스템 홀딩... [1] 이학남 2009-11-13 564
5313 uboot source download 및 linux-dltool.zip download 관련 건 [2] 건방돌이 2009-12-18 564
5312 파일시스템을 RAMDISK로 설정하려면 [1] 전룡 2010-03-12 564
5311 adb를 이용하여 쉘 사용시 파이프 입력에 관한 문의 호야상인 2010-08-27 564
5310 Odroid-7 WIFI 테더링 구성 [1] o2less 2011-01-06 564
5309 v210 에서 mmc clock 변경 방법 문의 [고수님들.. 도와주세요. ] [1] 은찬민 2011-03-17 564

사용자 로그인