Framd Buffer Driver를 작성 중인데 fb_setcolreg() 함수가 잘 이해가 안갑니다.
ARM에서 320x240x16bpp LCD용 FB Driver를 작성중입니다.
어느정도 진척이 되어 http://sourceforge.net/projects/linux-fbdev/에서 받은
fbtest 유틸리티로 제가만든 드라이버를 체크중에 있습니다.
혹시 드라이버를 만들어보신 분이라면 이 체크유틸을 아실지도 모르겠습니다.
이 유틸리티로 체크를 하던중 총 12항목중 2항목정도가 fail이 뜨는데,
원인을 찾아보려고 Linux FB 소스와 이 유틸소스등을 참조해 보던중에
color map이란걸 세팅하는 부분이 좀 의심스럽습니다.
그런데 이 부분 소스만으로는 잘 이해가 되질 않습니다. 관련자료도 잘 검색이 안되구요.
구체적으로 아래의 함수인데요.
$(LINUX)/driver/video/fbcmap.c 의 fb_set_cmap()
이 함수는 Driver상에서 operation을 등록(Driver자신의 color map 설정함수)해두면
이 함수내의 info->fbops->fb_setcolreg() 부근에서 호출이 되게 되는데요.
이러면 fbinfo->pseudo_palette 이 변수에 FB_VISUAL_TRUECOLOR모드의 경우
32bit 정수형 값들을 16개 저장하는데요. 이 값들이 무슨 의미이고 어떤 식으로 사용되는지
잘 모르겠습니다.
테스트 유틸에서도 이런 '파레트'랄지 등의 정보를 매우 자주 사용하는 듯 한데요.
이런 개념파악에 필요한 정보랄지 설명을 좀 부탁드리겠습니다.
긴 글 읽어주신 것만으로도 감사합니다 ;;
이미 아시련지 모르겠지만
아래 페이지를 가시면 Framebuffer에 대한 기본적인 개념은 잡을 수 있습니다.
http://kelp.or.kr/korweblog/stories.php?topic=29&page=2
혹시 s3c6400을 사용하시는 건가요?
EP9202라는 칩을 사용중입니다.
근데 이건 S3C* 시리즈랑은 다르게 LCD 컨트롤러가 없어서 좀 까다롭네요.
뭐 있다고해도 잘 모르는건 마찬가지지만요 ^^;
알려주신 사이트는 전에 한번 훑어보고 따라해봤는데 다시 보니 팔레트 개념이 더 나와있네요.
님 덕분에 다시 읽어보고 좀 개념이 잡혔습니다!
답글 감사합니다 ^^
댓글 달기