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

안녕하세요

 

안드로이드의 안자도 모르면서 개발 시작했다가 여차저차 여기까지 오게되었네요

 

현재 제가 Android PM (Power Manager) 해서 진행하고 있는데요, Suspend 및 Resume 기능 자체는 구현이 끝났습니다.

 

그런데 한 가지 문제점이 Suspend 상태에서 깨어나야 하는데 깨어 났다가 바로 다시 잠드는 현상이 발생하더군요

 

즉 WakeUP Source를 설정해 줘서 해당 인터럽트로 깨어나긴 하지만 Wakelock 상태는 변하지가 않더라구요

 

깨어났을때 키를 눌러주거나 화면을 터치하고 있으면 상위 안드로이드 프레임웍에서 커널 파워 state 를 변경해 줘서 다시

 

suspend에 들어가지는 않습니다.

 

처음엔 RTC 타임이 Suspend 상태에서 흘러가지 않는 문제때문에 그런가 보다 했는데 관련된 문제를 수정해도 마찬가지더군요

 

제 생각에는 Android 프레임웍에서 Suspend Event를 커널에 줘서 suspend 상태로 들어가면서 커널 Power state를 바꿔주지만

 

커널이 깨어나서도 상위 프레임웍이 이 사실을 모르는 듯 한데.. 따로 상위로 보내야하는 Resume Notification이 있는 것인지.

 

아니면 RTC 타임의 변화로 suspend에서 깨어난걸 처리해서 Wakelock 상태를 바꿔버리는건지....-_-;;;

 

코드를 보아서는 후자 같은데..혹시 이 부분을 해보 신 분들의 의견을 듣고 싶습니다.

 

정말 미치겠네요 ㅠ_ㅠ


최종환

2009.09.08 22:59:49
*.207.130.159

제가 Android PM (Power Manager) 해서 진행하고 있는데요, Suspend 및 Resume 기능 자체는 구현이 끝났습니다.

-> 따로 구현 하신건가요..저도 6410할때 보긴했는데 suspend/resume은 원래 커널에 들어있어서 전 특별히 구현해 준

부분은 없었습니다.  구현 하셨다는게 어떤건지 궁금합니다~

 

제가 6410할때 suspend/resume은 잘 동작했구요 키쪽 인터럽트가 왜 그런지 suspend/resume하면 인터럽트가 동작을 안해서 타이머 방식으로 바꿔준 기억은 납니다.

커널단에서 한번 찍으 보시죠...printk넣어서 실제로 suspend까지 들어가는지요..

 

이종민

2009.09.08 23:35:19
*.117.180.62

예 전 suspend/resume 관련 코드는 따로 작성해서 platform_suspend_ops 로 pm 쪽에 연결했습니다.

 

딴건 아니고 사용하는 칩셋에 대한 레지스터 백업 및 복원에 대한 것들입니다.

 

suspend /resume에 대한 기능 확인은 끝난 상태인데요.. 문제는 resume 시 wakelock 이벤트같은게 없다면 다시 suspend로 들어가버린다는 것입니다.

 

로그를 본다면
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.12 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
Suspending console(s) (use no_console_suspend to debug)
PM: suspend devices took 0.040 seconds

wakeup wake lock: alarm_rtc
soc-audio soc-audio: scheduling resume work
PM: resume devices took 0.560 seconds
Restarting tasks ... <6>soc-audio soc-audio: starting resume work
soc-audio soc-audio: resume work completed
done.
suspend: exit suspend, ret = 0 (2009-09-08 14:22:09.564768000 UTC)

 

이고 말씀드린 이벤트들.(키입력, 터치)등으로 wakelock 이벤트를 걸어주면

 

done. --> 이전에 request_suspend_state: wakeup (3->0) at 49717403000 (2009-09-08 14:22:20.600834000 UTC)

 

와 같이 커널의 power state를 바꿔줘서 suspend 재진입은 안됩니다.

 

 Resume 시 thaw_processes()와 같이 윗단의 프로세스들을 깨워주는 데 문제가 있는 것인지 정확한 포인트를 잡질 못하고 있네요 ...에혀..

 

최종환

2009.09.09 06:46:42
*.195.234.181

저도 그쪽 하는데 같이 이야기 해보시죠^6

[email protected]

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
5348 미디어 플레이어의 네트워크 스트림 구현에 대한 문의 [6] whiterub 2012-10-05 1512
5347 노트 PC에 grub rescue> prompt가 뜨는데??? [3] 요셉 2010-07-08 1511
5346 안드로이드에서 Socket데몬 실행시 퍼미션 문제 [2] 사당 2013-02-16 1511
5345 Exynos4(S5PV310) Module loading 문제. [2] 준성아빠 2012-01-02 1510
5344 uart... CTS/RTS TEST에 대해서 의견 부탁드립니다. [2] 이성호 2009-11-27 1508
5343 libmpfr.so.1 : cannot open shared object file: No such f... [4] 하민근 2010-11-17 1508
5342 USB Device속도 관련 [8] lyreisis 2012-06-16 1508
5341 Framework 개발 서비스 연동? 질문 드립니다. [3] Supsupi 2014-01-17 1508
5340 Platform_device와 Platform_driver로 probe 등록,커널 드라이버단... [2] cellius 2010-01-12 1505
5339 WinCE 상에서 SoftAP(HostAP) [3] 신현호 2012-05-10 1505
5338 V310 관련 질문 [6] 신현호 2012-08-24 1505
5337 리눅스 카메라 드라이버 관련..(MT9D111) [2] 김광석 2009-06-03 1504
5336 bootloader 에서 usb device 인식( usb ethernet adator ) [3] 황기천 2008-01-10 1503
5335 [완료]2440보드에 logitech quickcam messenger를 물리려하고있습니다.[... [3] 김성민 2007-11-16 1503
5334 s3c6410에 ucos를 올릴려고합니다. [7] Supsupi 2012-07-31 1503
5333 엑시노스 5250 RESET 문제?? [2] 윤동열 2013-01-30 1502
5332 안드로이드 파일시스템 부팅시 에러 file [2] 훌러덩 2011-12-01 1501
5331 Android system image에 파일 추가 / init.rc 수정 임성혁 2011-07-21 1501
5330 HDMI 연결시 제품에 화면 출력 여부 설정 방법 문의 [2] 현쓰 2012-05-18 1501
5329 자료실에 현철님이 올려주신 rootfs 부팅에러...[완료] [13] 이홍석 2006-05-04 1500

사용자 로그인