Chinaunix首页 | 论坛 | 博客
  • 博客访问: 285043
  • 博文数量: 91
  • 博客积分: 1772
  • 博客等级: 上尉
  • 技术积分: 930
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-17 19:49
文章分类

全部博文(91)

文章存档

2012年(1)

2011年(36)

2010年(50)

2008年(4)

我的朋友

分类: LINUX

2010-06-03 17:19:02

 
/***************************************** LCD 测试 **************************************************/
基于mini2440测试,需要framebuffer支持
jpegsrc.v6b.tar.gz
fbv-1.0b.tar.gz
gcc :/gcc-3.4.5-glibc-2.3.6/基于 crosstool arm-softfloat制作
(仅测试了jpg.bmp图像,bmp不支持32bit)
///////////////////////////////////////////////////////////
//安装 libjpeg  jpegsrc.v6b.tar.gz
1. 首先要 在你安装的目录下建立4个文件目录 :/bin    /include  /lib /man/man1.如果你 没有建立这4个文件目录的话.在make
install的时候你会遇到下面的 问题:
/usr/bin/install -c -m 644 ./cjpeg.1 /home/jpeg/jpeg/man/man1/cjpeg.1
/usr/bin/install: 无法创建一般文件‘/home/jpeg/jpeg/man/man1/cjpeg.1’: 没有那个文件或目录
make: *** [install] Error 1
2. 关于配置安装的 几点意见:
#  export CC=arm-linux-gcc
# ./configure --host=arm-unknown-linux --prefix=/home/jpeg/jpeg   --enable-shared  --enable-static
分别对动态链接库和静态链接库的支持
下面是jpeg库的交叉编译方法for arm
下载jpegsrc.v6b.tar.gz
解压
[root@monahans jpeg]#tar -xzf jpegsrc.v6b.tar.gz
[root@monahans jpeg]#mv jpeg-6b jpeg
[root@monahans jpeg]#cd jpeg
[root@monahans jpeg]# ./configure --host=arm-linux --prefix=/home/jpeg/jpeg   --enable-shared  --enable-
static /*./configure --enable-shared*/
修改生成的Makefile文件:
prefix = /home/jpeg/jpeg
CC= /usr/local/arm/3.4.1/arm-linux/bin/arm-linux-gcc    //这里看着不舒服,但是对初学者了解是看的很清楚的。
AR= /usr/local/arm/3.4.1/arm-linux/bin/arm-linux-ar rc
AR2= /usr/local/arm/3.4.1/arm-linux/bin/arm-linux-ranlib
[root@monahans jpeg]# make
在这里出现make: ./libtool: Command not found
错误分析:由于libtool版本过低导致的,重新下载新版本的libtool以默认方式安装,执行以下命令安装libtool:
libtool-1.5.26.tar.gz  //是我下载的版本
./configure
注意这里是gcc不是arm-linux-gcc编译
make
make install
再回来:
[root@monahans jpeg]# make
最后:
[root@monahans jpeg]# make install
make install后安装至/usr/local/arm/libjpeg
拷贝lib目录下文件之目标板 /lib目录下(注意连接文件)

///////////////////////////////////////////////////////////
//安装fbv fbv-1.0b.tar.gz
export CC=arm-linux-gcc
export AR=arm-linux-ar
export LD=arm-linux-ld
export RANLIB=arm-linux-ranlib
export STRIP=arm-linux-strip
./configure --prefix=/usr/local/arm/fbv  --without-libungif  --without-libpng
//根据交叉编译器与libjpeg库位置 修改 Makefile
1)  CC    = arm-linux-gcc
2)  CFLAGS  = -O2 -Wall -D_GNU_SOURCE -I/usr/local/arm/libjpeg/include -L/usr/local/arm/libjpeg/lib
3)  LIBS    =  -L/usr/local/arm/libjpeg/lib  -ljpeg
$make
我使用的是arm-none-linux-gnueabi-gcc-4.2.3, 在make的过程中发现fb_display.c include 了 , 而fb.h又include linux/i2c.h。造成dev_t定义冲突。
解决方法,到/usr/loca/arm/..../ 中暂时不include linux/i2c.h 则可以编译过去。
make 生成fbv可执行文件 拷贝至目标板后可直接运行!支持jpeg.
(打开图片后 输入n 可以旋转90度 :)直接输入fbv不加参数会提示使用方法。)

如须支持32bit bmp 需要修改bmp.c:fh_bmp_load函数
在switch中添加分支:
 case 32: /* 32bit RGB */
            skip = fill4B(x*4);
            lseek(fd, raster, SEEK_SET);
            for (i=0; i                for (j=0; j                    read(fd, buff, 4);
                    *wr_buffer++ = buff[2];
                    *wr_buffer++ = buff[1];
                    *wr_buffer++ = buff[0];
                }
                if (skip) {
                    read(fd, buff, skip);
                }
                wr_buffer -= x*6; /* backoff 2 lines - x*2 *3 */
            }
            break;
 
阅读(1346) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-09-03 19:01:43

我也遇到了同样的问题,请问是如何解决的,能说一下吗

chinaunix网友2010-07-19 10:26:40

你好 我的libjpeg是能正确编译和安装的 在/usr/sbin/jpeg-6b 里面有lib include bin man/man1 然后我在编译fbv-1.0的时候出错 如下 我的编译器是EABI4.3.3 路径是 /opt/EmbedSky/4.3.3 1) CC = arm-linux-gcc 2) CFLAGS = -O2 -Wall -D_GNU_SOURCE -I/usr/sbin/jpeg-6b/include -L/usr/sbin/jpeg-6b/lib 3) LIBS = -L/usr/sbin/jpeg-6b/lib -ljpeg [root@localhost fbv-1.0b]# make /opt/EmbedSky/4.3.3/bin/arm-linux-gcc -O2 -Wall -D_GNU_SOURCE -I/usr/sbin/jpeg-6b/include -L/usr/sbin/jpeg-6b/lib -c -o fb_display.o fb_display.c In file