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

exynos 4412 를 사용한 보드를 제작하였습니다. 

여기에 cmos 카메라를 붙여서 실험을 하고 있습니다. 


삼성에서 제공하는 기본적인 fimc 관련 device driver 는 포팅을 했고,

V4L2 도 삼성에서 기본적으로 제공한 것을 사용하고 있습니다. 

화면 capture, preview 도 잘 됩니다. 

참고로 preview 를 위해 어플에서 pthread 하나 돌리고 있고요.

어플은 C++ 로 만들었습니다. 


그런데, 한가지 문제가 있더군요.


어플단에서 camera open 을 한 다음 close 를 하면 정상적으로 잘 됩니다. 

그러나 open -> preview start -> preview stop -> close 를 하면

close 는 정상적으로 됐다고 return 값이 오는데, 실질적으로 kernel 단의

camera release 함수가 호출이 안됩니다.


좀더 확인해 봤더니 V4L2 의 ioctl 함수를 한번이라도 호출하게 되면,

close 가 안되는 현상이 발생하더군요. 

물론 close 하기전에 open -> preview start -> preview stop -> preview start

-> preview stop 은 잘 됩니다.


카메라 초짜라 이래저래 맨땅에 헤딩하면서 하고 있는데, 위의 문제는 당췌 

모르겠네요. system call 에서 문제가 있는 것인지, 아니면 V4L2가 문제인지 

이런 경우는 처음입니다. 

당근 close 시 memory 도 free 했고요.



혹시 유사한 경험을 가지고 계신분은 조언 좀 부탁드립니다. 


고도리

2017.02.04 23:03:14
*.200.239.210

linux에서 테스트하신건가요?

아니면 안드로이드인가요?


다른 프로세스에서 열고 있지 않나도 확인해 보시는게 좋습니다.

칼마

2017.02.06 02:20:08
*.90.129.146

리눅스에서 테스트 했습니다. 


근데 다른 프로세서에서 열고 있는지 확인을 할 수 가 있나요?

일일이 소스로 뒤지는 수 밖에는 없는 건지..


커널단에서 카메라 캡쳐 이미지를 가져오기 위해 pthread  하나 돌리는게 있는데 이게 문제가 될까요?



칼마

2017.02.06 03:43:56
*.90.129.146

방금 확인한 건데, 카메라 캡쳐할 때 캐쳐이미지를 저장할 메모리를 잡습니다. 

그리고 바로 close 해보니 close 가 안되는 현상이 나오네요. 

아마도 문제는 mmap 으로 잡은 메모리가 해제가 안되어서 그런거 같기는 한데, 

코드상에서는 제대로 해제를 하도록 코딩한거 같거든요.



메모리 잡을 때 

=======================================

   struct v4l2_requestbuffers req;


   buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;

   buf.memory = V4L2_MEMORY_MMAP;

   buf.index = 4;


   ioctl(fd, VIDIOC_REQBUFS, &req) 

            ....

   mmap 으로 처리했고요.

=======================================


이렇게 잡았고......


close 하기 전에 

=======================================

   buf.count               = 0;

   buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;

   buf.memory = V4L2_MEMORY_MMAP;


   if (ioctl(m_hCameraHandle, VIDIOC_REQBUFS, &req) < 0)

               .......

   munmap 으로 처리.

=======================================


위와 같이 메모리를 해제 해주었습니다. 


근데도 close 가 안되네요. 뭔가 메모리를 해제해줘야 되는 다른방법이 있는건가요?





이동희

2017.02.06 22:46:58
*.169.189.40

문제가 없어 보이는데요. 기본 Samsung BSP를 사용했다면 아마도 fim을 open한 후에 camera select를 하지 않고 close를 하면 문제가 되던 것 밖에 없었습니다.

특히나 Preview와 Capture 모드의 경우에는 Sensor Device Driver에서만 영향을 받기 때문에 모드에 대한 영향이라면 Sensor Device Driver에서 잘못되었을 경우이네요.

IOCTL의 return 값을 모두 검사 해 보세요. 특히 Sensor Device Driver에서 V4L2 함수에서 0이 아닌 값을 return하는지 확인 해 보세요.

고도리

2017.02.07 03:18:22
*.200.239.210

Kernel 버전이 어떻게 되나요?


버전에 따라서도 차이가 있을 수 있습니다.

칼마

2017.02.07 18:23:57
*.90.129.146

3.0.51 버전을 사용하고 있습니다. 


그리고 참고로 cross toll 은 다음과 같습니다. 

gcc version 4.7.3 20121001 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2012.10-20121022 - Linaro GCC 2012.10) 


고도리

2017.02.08 07:43:39
*.200.239.210

오드로이드 커널인가 보네요.


오드로이드 보드는 usb cam만 동작하지 않나요?

일반 카메라면 삼성에서 정식으로 릴리즈된 커널을 쓰시는게 맞을겁니다.


제가 알기로는


3.0.15 :ICS 버전의 경우

3.5.0-R6 : Android 4.2.2_r1

3.4.39: Android 4.2.2_r1


이 세개버전이 공식인 것으로 알고 있습니다.


그나마 가장 안정적인 버전이 3.0.15이고, 나머지 버전은 코드가 3.0.15랑은 꽤 차이가 있습니다.

List of Articles
번호 제목 글쓴이 날짜sort 조회 수
6308 현철님의 Root Filesystem 질문이요~ <= 완료 [8] 안정섭 2006-05-10 1415
6307 아직도 비디오 디코딩으로 해매고 있습니다. <--완료 [2] 박영학 2006-05-10 1154
6306 SD Card속도 문제 [5] 정창환 2006-05-10 1799
6305 [질문] Nand Flash 128MB에 관련해서. [3] 이재훈 2006-05-11 1165
6304 H.264의 CAVLC 구현방법에 대한 자료를 구합니다. [1] 장석원 2006-05-14 1243
6303 ffplay에 libmad 붙이기 방법 또 질문[완료] [2] 오용석 2006-05-14 1346
6302 SD 카드 인식 문제.[미해결] [3] 오용석 2006-05-15 1158
6301 이솝보드 u-boot의 cs8900과 관련한 port 세팅에 관한 질문..--> ... [7] 임동관 2006-05-15 1444
6300 커널 소스에 있는 드라이버에 대해서...<--완료 [1] 박현진 2006-05-16 5189
6299 Qtopia 2.1.1 ARM용으로 컴파일시 에러...ㅡ.ㅡ; <--[완료] [5] 이용휴 2006-05-18 1188
6298 올리신 Toolchain 으로 busybox 가 컴파일이 안돼네요. [5] 임현 2006-05-18 1200
6297 ffplay sync 문제[미해결] [1] 오용석 2006-05-20 1087
6296 QT문서 정리하면서 테스트하고있는데 또 안되는..ㅡ.ㅡ;이에러 좀 봐... [4] 이용휴 2006-05-23 1194
6295 보드를 서버로 돌리려면..?<==ㄹ완료 [6] 윤현승 2006-05-25 1189
6294 커널컴파일중 오류입니다. -> 완료 [6] 서연석 2006-05-25 1052
6293 nand 제어부에 있는 NCON 핀 질문. < 완료. 한지훈 2006-05-26 1347
6292 [re] nand 제어부에 있는 NCON 핀 질문. [1] 고현철 2006-05-26 1409
6291 2440이 PLL을 세팅 못하고 죽어버리네요.. <<== 완료 [2] 양재석 2006-05-26 1050
6290 무선랜 올리신적 있지 않은가염..? <==완료 [1] 윤현승 2006-05-27 1046
6289 노트북에 사용할 USB to Parallel 포트 추천요 [2] 조준동 2006-05-27 1259

사용자 로그인