2009年8月11日星期二
编译directfb
export CFLAGS="-I/opt/usr/include"
export LDFLAGS="-L/opt/usr/lib"
export PKG_CONFIG_PATH="/opt/usr/lib/pkgconfig"
./configure --host=arm-linux --build=i686-pc-linux-gnu --prefix=/opt/usr --exec-prefix=/opt/usr --enable-zlib --disable-x11 --enable-fbdev --disable-sdl --disable-vnc --disable-jpeg --disable-gif
2009年8月2日星期日
Value too large for defined data type
"Value too large for defined data type"错误。
这时候,可以通过调用open64, lseek64函数,可以解决这个问题。
编译时候需要添加下面两个选项:
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
2009年7月29日星期三
fedora11 flash插件安装
http://get.adobe.com/flashplayer/ 网站上下载install_flash_player_10_linux.tar.gz文件.
2.复制到mozilla插件文件夹
将下载的文件解压 后,将libflashplayer.so文件复制到/usr/lib/mozilla/plugins/文件夹下.
2009年7月27日星期一
2009年7月20日星期一
mount kvm disk image
1. kpartx -av disk.img
add map loop0p1 (253:0): 0 1863477 linear /dev/loop0 63
add map loop0p2 (253:1): 0 224910 linear /dev/loop0 1863540
add map loop0p5 : 0 224847 linear 253:1 63
2. mount /dev/mapper/loop0p1 /mnt/
通常image的根文件系统都被映射到loop0p1
卸载
1. unmount /mnt
2. kpartx -dv diks.img
del devmap : loop0p5
del devmap : loop0p2
del devmap : loop0p1
2009年7月13日星期一
linux 动态连接加载器 ld-linux用法
间接调用时,连接器会把ld-linux的执行路径嵌入到可执行文件中,如elf文件时,ld-linux被放在.interp段中。
直接调用时,在命令行下输入/lib/ld-linux-so.* [选项] [可执行程序] [程序参数]
ld-linux按照如下顺序搜索可执行程序需要的共享库:
1. (只针对elf文件) 可执行程序中如果有DT_RPATH或DT_RUNPATH段,则使用这两个段中指定的搜索目录。
2.使用环境变量LD_LIBRARY_PATH指定的搜索目录
3.使用/etc/ld.so.cache中的搜索目录,但如果可执行程序在连接时候添加了-z nodeflib选项,则不使用。
4.使用默认的库目录,/lib /usr/lib,如果添加了-z nodeflib,则不使用。
编译可执行程序时,可以安如下方法指定共享库的目录
gcc -Xlinker -rpath=DIR -o exe exe.c
编译完后,运行readelf -d exe可以看到如下段
0x0000000f (RPATH) Library rpath: [DIR]
2009年7月8日星期三
TFT LCD 接口时序计算
1.VSYNC: 帧频率 一秒钟处理的帧的数目 (Frame Frequency)
2.HSYNC: 行频率 一秒钟处理的行的数目
3.DOTCLK: 像素频率 一秒钟处理的像素数目
同时,还有如下接口参数:
VBP: vertical back porch 垂直方向后端没使用的行数
VFP: vertical front porch 垂直方向前端没使用的行数
HBP: horizonal back porch 水平方向后端没使用的像素数目
HFP: horizonal front porch 水平方向前端没使用的像素数目
DOTCLK = FrameRate(VSYNC) * 行总数 *行中的像素总数
行总数 = LCD 高 + VBP + VFP
行中的像素总数= LCD宽 + HBP + HFP
(注:有些LCD,还需要在行总数中加上VSYNC宽度,在行中像素总数中加上HSYNC宽度)
以LMS430HF02这款LCD为例
帧频率是60帧/秒
LCD高度是272行
LCD宽度是480个像素
VBP= 12.0 # line
VFP= 4.0 # line
HBP= 45.0 # pixel
HFP= 8.0 # pixel
DOTCLK = VSYNC* (lcd_width + hbp + hfp) * (lcd_height+ vbp + vfp)
/1000000 = 9.21024Mhz
和LCD datasheet中提供的接口时序说明基本一致。