新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于PXA270的LCD显示系统的设计与实现

基于PXA270的LCD显示系统的设计与实现

作者: 时间:2011-01-06 来源:网络 收藏

  这些宏操作都在/drivers/video/pxafb.h文件里。

本文引用地址:https://www.eepw.com.cn/article/151121.htm

  #if defined(CONFIG_FB_LB064v02)

 #define LCD_PIXCLOCK 250000//54000//150000

  #define LCD_BPP 16

  #define LCD_XRES 640

  #define LCD_YRES 480

  #define LCD_HORIZONTAL_SYNC_PULSE_WIDTH 46

  #define LCD_VERTICAL_SYNC_PULSE_WIDTH 1

  #define LCD_ BEGIN_OF_LINE_WAIT_COUNT 96

  #define LCD_BEGIN_FRAME_WAIT_COUNT 35

  #define LCD_END_OF_LINE_WAIT_COUNT 4

  #define LCD_END_OF_FRAME_WAIT_COUNT 0

  #define LCD_SYNC (FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT)

  #define LCD_LCCR0 (LCCR0_OUC | LCCR0_CMDIM | LCCR0_RDSTM | LCCR0_OUM | LCCR0_BM | LCCR0_QDM | LCCR0_PAS |LCCR0_EFM | LCCR0_IUM | LCCR0_SFM | LCCR0_LDM )

  #define LCD_LCCR3 (LCCR3_PCP | LCCR3_HSP | LCCR3_VSP)

  #endif

  最后是通过register_framebuffer()进行各项登记,使帧缓冲区与控制台设备驱动的高层相连。参数fbi是一个指向fb_info数据结构的指针,通过这个数据结构使帧缓冲区与文件系统连接起来。

  3.2 帧缓冲区的操作

  对帧缓冲区的操作,应用程序首先要打开代表帧缓冲区的设备文件,帧缓冲区的file_operations数据结构是fb_fops。

  static struct file_operations fb_fops = {

   owner: THIS_MODULE,

   read: fb_read, // 读操作

   write: fb_write, // 写操作

   ioctl: fb_ioctl, // 控制操作

   mmap: fb_mmap, // 映射操作

   open: fb_open, // 打开操作

   release: fb_release, // 关闭操作

  #ifdef HAVE_ARCH_FB_UNMAPPED_AREA

   get_unmapped_area: get_fb_unmapped_area,

  #endif

  };

  应用程序层对帧缓冲设备的访问同对文件的访问操作类似。在应用程序中,对帧缓冲设备(dev/fb)的操作只需调用文件层的操作函数。首先打开/dev/fb设备文件;随后用ioctl操作取得屏幕的分辨率和bpp值,从而计算出屏幕缓冲区的大小,并将屏幕的缓冲区映射到用户空间;最后就可直接对屏幕缓冲区进行图片显示。对帧缓冲区的打开文件操作是由fb_open()完成等。

  驱动程序编写完成后,开发者可以将其编译为动态加载模式,或静态地编译入内核中。

  4 结束语

  随着后PC时代的到来,嵌入式系统得到了越来越广泛的应用。现在的嵌入式系统一般都需要提供图形化的人机界面。本文所设计的系统运行良好,性能稳定。在实际产品中取得了比较满意的经济效益。

  参考文献:

  1. 陈文智《嵌入式系统开发原理与实践》清华大学出版社 2005.8

  2. 许庆丰 嵌入式Linux下彩色LCD驱动的设计与实现 电子产品世界 2003.Z2

  3. 王同洋,熊伟 嵌入式Linux中图形用户界面的研究与设计 微计算机信息 2006年第3-2期

  4. 深圳市亿道电子技术有限公司内部资料


上一页 1 2 3 下一页

关键词: 收发器

评论


相关推荐

技术专区

关闭