thaiqi 发表于 2004-5-26 00:51:00

help: armlinux的lcd

我试装了一下armlinux for linux2.4.18-rmk7和armlinux for linux2.4.13-patched-for-ep7312(要感谢ksh大虾和halfyear),目前能做到这样的结果:前者只能使用ksh大虾提供的skyeye.conf和initrd.img,后者只能使用testsuit中的skyeye.conf和ywcromfs1.img。

但是我自己编译的加入了lcd功能的内核的后者还是有问题。我编译出来的vmlinux不能正常显示图象,虽然能显现窗口和绘图,但图象不正确,比如企鹅图象显现条形竖纹。而使用的testsuit中的vmlinuxcolor则正常显示(bin中的示例)。请问大虾们对这种情况的原因和解决有什么意见?

halfyear 发表于 2004-5-26 11:41:04

由于lcd仿真一直在做优化,lcd驱动程序也一直在改动,所以基于老版本的demo程序在新版本的skyeye上运行时不正常是很正常的事,你还是下载最新的
armlinux4skyeye-v0.2.3.tar.gz,照着里面的installguide.txt从头来一遍吧

thaiqi 发表于 2004-5-27 00:54:40

在halfyear的鼓舞下,我又把armlinux编了几遍,:-)。首先是不clean重编,然后是clean重编,然后是重解源码包重编……,:-(。效果还是一样。
只有斑竹的vmlinuxcolor屹立不倒,我的纷纷倒下阵来。哪怕最后我把installguide中以前忽视的kernel setting挖出来,make menuconfig,把lcd support选中,结果好象也没有更好一些。
在问之前,我总算用b lcd_kernel_clear处看了一下,看出斑竹的vmlinuxcolor中的lcd_display结构与我编的vmlinux中的该结构成员不同,前者只有{x1,y1,x2,y2,codes,color},后者多出了lcd_buf,lcd_buf_size,lcd_row,所以好象是否赋值时有问题。比如我的color是一个乱数,buf_size为0,lcd_row也是一个乱数。
我使用的是armlinux4skyeye-v0.2.3(这个不会还有新旧之分吧?),其中的lcd_struct.h中定义了这个结构,加进去的成员是ywc大侠加的,应该比没有时更新,但为什么我编译出来会有问题呢?
当然,原因还是halfyear指出的那样,是驱动变动的问题。

chyyuu 发表于 2004-5-27 01:09:56

halfyear就是ywc。有其它人编译成功过吗?我都有点怀疑了 :(

halfyear 发表于 2004-5-27 10:03:02

首先向大家道歉,由于工作做得不够仔细,给大家造成了一些麻烦。
就thaiqi提出问题做一些说明,
    (1)
       skyeye-0.7.0.tar.bz2,
         skyeye-binary-testutils-1.0.3.tar.gz,
         armlinux4skyeye-v0.2.3.tar.gz,
         skyeye-v0.7.0.rh9.bin
         是一起发布的,只保证它们中的demo,lcd驱动,skyeye能够在一起正常运行
       不保证老版本的demo在新版lcd驱动,新版的skyeye正常运行
       由于这一点事先没有说明,给大家带来不便,请原谅。
    (2)
      demo程序和lcd驱动都用到了lcd_struct.h
            新版比老版做了如下改动:
      1)    typedef unsigned short COLOR
                ---> typedef unsigned int COLOR
             2)   结构体lcd_display中增加了如下成员
            unsigned char * lcd_buf;
                     int lcd_buf_size;
                     int lcd_row;

          thaiqi遇到的问题都可以从上面的说明中找到解释。

       再次向大家道歉,今后发布新版本时,我们会把readme写得尽可能详细一些。

thaiqi 发表于 2004-5-29 00:15:29

客气了,:-)。感谢大虾们所做的,skyeye进展迅速。我安装还跟不上开发,:-)。
我希望能从源码中自己编出来,不喜欢只使用现成demo和binary,以便需要学习源码时有一个感觉可靠的基点。
ywc大虾提供的版本文件簇隐含了linux-2.4.13-patched-for-ep7312,我前面碰到的问题是为什么我从源码中编得有问题。科学实验应该是可以重复的,:-)。

我下载skyeye-0.7.0准备试验。此时所用的软件簇基本上符合ywc大虾给出的版本。噢,此刻还剩一个疑问:我使用的demo中的vmlinucolor无新增成员,但新增lcd头文件中有。所以这就是此刻我唯一不能肯定的:我使用的testsuit中demo的版本。
开始试了一下,不行。然后,因为demo中的vmlinuxcolor中的没有新增成员嘛,所以我反过来,把文件还原成老的了:改回unsigned short,注释掉lcd_buf等,注释掉c中的一个大概是记录语句。然后编译可以成功运行vmlinux中示例,又试了以前用的skyeye0.6.8,也可以。只是背景色有些不同而已。那么以及从文件中看来,这几个新增成员现在并没有广泛使用而起到很重要的作用。

现在唯一的差别在于根文件了。不过能够工作了,这个问题倒不重要。
感谢大侠们的工作。昨天斑竹说“有其它人编译成功过吗?我都有点怀疑了 ”,把我吓了一下,:-)

halfyear 发表于 2004-5-31 10:25:39

目前在对lcd仿真进行进一步的优化,显示一副320X240X4的bmp文件的时间减少到
<2秒,暂时还不成熟,所以没有发布出来,用到了那三个新增的成员,不过可能会更改
,一起期待skyeye的新版本吧!
另一方面,正在编写能在skyeye让转起来的framebuffer驱动程序,这将为移植基于framebuffer的嵌入式gui到skyeye上奠定基础,也为用户编写基于framebuffer的
的应用程序提供统一的接口,好像很有诱惑力喔!

感兴趣的话,大家可以一起来做啊!

thaiqi 发表于 2004-6-6 00:29:30

感谢halfyear的帮助和指引。虽然比较感兴趣,但在嵌入式方面还只是新手,对skyeye开发内容和所需还都感到比较陌生。没准我还没弄明白,大虾们已经做出来了,平时一忙,所以还不敢应承阿。
页: [1]
查看完整版本: help: armlinux的lcd