안녕하세요.

At91sam9g45 Ek board를 이용해서 TFT LCD 를 가지고 study 중인 회사원입니다.

일단 LCD device driver를 이용하여 선 긋기까지는 되는데요.

한가지 문제점? 이상한 점이 있어서 질문올렸습니다.

 

커널 부팅시 부팅로고를 펭귄이미지에서 다른 이미지로 변경을 했습니다

 EK board에 기본으로 달려있는 LCD 해상도가 480x272이기 때문에 full size로 이미지를 올려봤습니다.

jpg image를 ppm iamge로 변경하여(color:223으로 변경) /video/logo/logo_linux_clut224.ppm file (펭귄) 대신에 넣어서 커널 재컴파일후 동작시켜보면

image는 정상적으로 올라가는데 문제가 발생합니다.

 

문제는 booting 시간이 너무 오래 걸립니다.

펭귄 image를 (default image) 사용할때에는 Welcome to BuildRoot 출력이 나오는데 7초 정도 걸린다면

480x272 image를 사용하면 20초 이상걸리고 그 후에도 전체적인 system이 느리게 동작합니다.

 

그래서 iamge size를 줄여봤더니 예료 200x100 같이 작은 image를 올렸더니 정상적으로 동작함을 확인하였습니다.

 

혹시 LCD의 출력 가능 범위? 가 제한이 LCD의 해상도보다 작게 설정이 되어 있는것은 아닌지...

atmel에서 제공하는 BSP 그대로 사용하는데...

몇일째 삽질 중이네요...

혹시 이런 현상에 대해서 아시는 분이 있으시면 답변 부탁드립니다.

 

현재 LCD 설정 부분입니다.

static struct fb_videomode at91_tft_vga_modes[] = {
 {
  .name           = "LG",
  .refresh = 60,
  .xres  = 480,  .yres  = 272,
  .pixclock = KHZ2PICOS(9000),

  .left_margin = 1,  .right_margin = 1,
  .upper_margin = 40,  .lower_margin = 1,
  .hsync_len = 45,  .vsync_len = 1,

  .sync  = 0,
  .vmode  = FB_VMODE_NONINTERLACED,
 },
};

static struct fb_monspecs at91fb_default_monspecs = {
 .manufacturer = "LG",
 .monitor        = "LB043WQ1",

 .modedb  = at91_tft_vga_modes,
 .modedb_len = ARRAY_SIZE(at91_tft_vga_modes),
 .hfmin  = 15000,
 .hfmax  = 17640,
 .vfmin  = 57,
 .vfmax  = 67,
};

 

/* Driver datas */
static struct atmel_lcdfb_info __initdata ek_lcdc_data = {
 .lcdcon_is_backlight  = true,
 .default_bpp   = 32,
 .default_dmacon   = ATMEL_LCDC_DMAEN,
 .default_lcdcon2  = AT91SAM9G45_DEFAULT_LCDCON2,
 .default_monspecs  = &at91fb_default_monspecs,
 .guard_time   = 9,
 .lcd_wiring_mode  = ATMEL_LCDC_WIRING_RGB,
};