포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.

간단하게 작성해 보았습니다.

320x240 16bpp를 target으로 했는데, 제 동작할지는 의문이네요......ㅎㅎ

실제로 잘 동작하던 소스에서 발췌만 한 겁니다. 혹 컴파일 안되더라도 몇가지만 수정하시면 될겁니다.
raw format으로 capture가 되니, display쪽은 따로 작성해 주셔야 할겁니다.

s3c24x0 자료실의 logodisp 라는 프로그램이 아마도 있을텐데, 그거 참조하시면 도움이 될겁니다.

그럼....


#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <stdio.h>
#include <sys/mman.h>
#include <errno.h>
#include <math.h>

#include <linux/fs.h>
#include <linux/kernel.h>
#include <linux/videodev.h>


#if 1
    #define gprintf(fmt, x... ) printf( "%s: " fmt, __FUNCTION__ , ## x)
#else
    #define gprintf(x...) do { } while (0)
#endif


#define VID_WIDTH      320 /* Default Width */
#define VID_HEIGHT     240 /* Default Height */



#define FB_DEV0     "/dev/fb0" /* Device Name */
//#define FB_DEV2     "/dev/fb2" /* Device Name */

char fb_device[] = FB_DEV0;


int main (int argc, char *argv[])
{
    int fd_fb;
    struct fb_var_screeninfo fbvar;
    struct fb_fix_screeninfo fbfix;
    char *frame_buffer;
    int y, format;
   
   
    int captured = 0;

    fd_fb = open(fb_device, O_RDWR);
    if (fd_fb < 0)
    {
        perror("fbdev open");
        return 0;
    }
    memset(&fbvar, 0, sizeof(fbvar));
    memset(&fbfix, 0, sizeof(fbfix));
    ioctl(fd_fb, FBIOGET_VSCREENINFO, &fbvar);
    ioctl(fd_fb, FBIOGET_FSCREENINFO, &fbfix);

    frame_buffer = (char *) mmap(0, fbfix.smem_len, PROT_READ | PROT_WRITE,MAP_SHARED, fd_fb, 0);
   
    {
        unsigned char r, g, b;
        unsigned short *ghc, data;
        FILE *out;
        int i, j;
       
        out = fopen("./320x240_16bpp.raw", "wb");
        if( out == NULL )
        {
            printf("fopen errorn");
            exit(1);
        }
           
        fwrite(frame_buffer, 320*240*2, 1, out);                   
       
        fclose(out);
    }
               

    return 0;
}



고현철

2009.03.30 00:27:53
*.32.117.22

맨 밑에 return 0 하기전에 framebuffer umap이랑 fb close를 안 했네요......ㅎㅎ
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
33 Linux Networking How-To file 김재훈 2009-08-25 7422
32 error: array type has incomplete element type의 의미 [1] 김재훈 2009-04-17 7437
31 ARM 어셈블러 설명서 한글판. file [7] 유형목 2007-12-15 7697
30 ARM7 강좌를 PDF로 변환했습니다. start.S 분석자료 추가.. file [8] 유형목 2007-12-12 7721
29 mp4 container file format 고현철 2009-02-24 7818
28 ffmpeg x86 compile & cross compile howto file 고도리 2011-08-05 7832
27 PPP Daemon 포팅 가이드 file 김재훈 2009-05-17 7937
26 QT-Embedded 4.4.3 컴파일 방법 [1] 김재훈 2009-02-17 8043
25 나름 빡신 HDD 테스트 프로그램 file [1] 2009-07-24 8183
24 강좌(공식문서포함) 문서의 양식 포맷입니다. file [4] 고도리 2008-07-11 8774
23 virtualbox vdi image 두개 사용하기 고현철 2009-07-19 9824
22 GCC에서 지원하는 NEON SIMD 관련 함수 [1] 김재훈 2009-09-20 9944
21 리눅스 어셈블리 프로그래밍을 하자! [1] : ARM 아키텍쳐와 간단... file [4] 김재훈 2009-08-25 10401
20 oss를 이용한 read, write, read/write program file [2] 고도리 2011-01-25 10531
19 리눅스 어셈블리 프로그래밍을 하자! [2] : ARM 부트코드와 실전... file [2] 김재훈 2009-08-25 10596
18 uBuntu Linux - dash를 bash로 변경하는 방법 김재훈 2009-04-28 10975
17 I.MX Multimedia and Applications Framework 기술자료 ... file [2] 장석원 2009-10-26 11060
16 Useful Linux Wireless Commands [1] 김재훈 2009-06-05 11966
15 uBuntu 8.10 에서의 리눅스 개발 환경 설정 [6] 김재훈 2009-01-29 12618
14 GIT 사용법 (ProGIT) - 2.3. 위탁 이력의 열람 file [1] JhoonKim 2010-02-03 13308

사용자 로그인