手上有一块Micro2440+底板+3.5寸屏(240*320),使用Mini2440的2.6.32.2内核,加载后启动可以看到FriendlyARM那个图像。想自己做个简单的界面,能画线、显示中英文汉字即可。在网上查了资料,做法主要如下:
(1)fb_handle = open("/dev/fb0", O_RDWR));
(2)fb_buffer = (unsigned char *)mmap(0, fb_buffer_len, PROT_READ | PROT_WRITE, MAP_SHARED, fb_handle, 0;
(3)对fb_buffer操作。显示了几个字母、汉字,画了几根线,发现有几个问题:
(1)屏幕整体往左上偏移,左边估计偏移15像素左右,上边偏移2像素左右。假设左上坐标为(0,0),右下为(239,319),比如从(0,4)到(239,4)画一根线,不能到达屏幕最右边(大概差15像素),且显示在第三行像素上;在屏幕左边打印一个汉字,左边一部分被截掉(能显示的部分正常);注:画线和打印文字的程序裸奔是正常的;
(2)下载内核运行一段时间后(大概十分钟左右,时间很固定,期间与运行程序与否无关),屏幕被清空(上电后不进行写屏,则FriendlyARM那个图像被清掉);然后用上述的软件画屏没任何反应,不知是何原因?请版主、大侠指教,谢谢!