android移植 十之一 lcd课题
来源:互联网 发布:excel为防止数据丢失 编辑:程序博客网 时间:2024/06/06 00:07
当第一次移植android的时候,最最欣慰的现象就是lcd上有所显示。
但事与愿违,我的第一次做android1.6移植的时候,就遇到了麻烦。
电路板的cpu是freescale的 imx35。网上有好多此核心的 bsp,可不幸的,我的bsp在 framebeffer上,跟android不太兼容。
我的使用的内核,跑qt的rootfs是没有问题的,显示一切正常,可用android的rootfs时,就显示错误。感觉好像是双缓冲出现了问题。
lcd上只显示出一个buffer的东西,另一个buffer没有数据,所以lcd上就是android的图像和黑屏交替出现。
搞了很长时间也没有从代码上解决这个问题,毕竟要重新搭建一个framebuffer的驱动不是简单的事。 一天,索性把framebuffer的驱动换成其他bsp包中的代码,重新编译后,奇迹出现了。困扰4天的问题终于解决了。
接踵而来的是,颜色空间的问题。lcd的屏幕不再闪烁了,但是颜色出了问题。从现象上看,是驱动的颜色空间出了问题。查验了android的关于显示部分的代码,发现,android使用的是565的配色方式。可是我的电路板使用的888的lcd。这就不可避免的,出现了串色的问题。
修改驱动,把888的驱动,硬生生的改成了565的方式,最终搞定了这个问题。
还有一个额外的话题。开发一个独立于android系统的使用framebuffer的程序,那么就必须注意android的双缓冲。否则,就会看到android每次刷新屏幕,你的程序就跟着闪烁。
android使用屏幕的大小,是从framebuffer中获取的,如果要改变android的显示区域,可以修改那个部分的ndk代码。这样,所有的android程序显示都会跟着改变。
android的 surface的使用是排他的,比如在开机启动动画的时候使用了surface,那么同时就不能再运行同样使用surface的进程。
所以,大家看到的是开机启动动画结束以后,才看到了第一个画面。
- android移植 十之一 lcd课题
- android移植 十之一 lcd课题
- LCD移植
- LCD驱动移植笔记
- LCD 移植过程
- 移植LCD驱动
- LCD 移植过程
- LCD 移植过程
- S3C2410之LCD移植
- 6410 LCD驱动移植
- 6410 LCD驱动移植
- 【转】LCD移植记录
- LCD驱动的移植
- Tiny6410 lcd的移植
- LCD驱动移植
- LCD 背光驱动移植
- OK6410 LCD驱动移植
- LCD驱动移植
- ACE_Message_Queue
- java中无符号类型处理
- 正则表达式30分钟入门教程
- VC 连接sql数据库, CreateInstance失败的原因
- Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(二)
- android移植 十之一 lcd课题
- Java Web获取Web应用根路径(转)
- android 移植 之二 触摸屏
- Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(三)
- 摄像头性能
- js面向对象思想
- LayoutParams.***
- js总结
- Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(四)