/***************************************** 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) |