技术标签: linux嵌入式 path 算法 ubuntu 测试 图形 嵌入式
DirectFB是一个轻量级的提供硬件图形加速,输入设备处理和抽象的图形库,它集成了支持半透明的视窗系统以及在LinuxFramebuffer驱动之上的多层显示。它是一个用软件封装当前硬件无法支持的图形算法来完成硬件加速的层。DirectFB是为嵌入式系统而设计。它是以最小的资源开销来实现最高的硬件加速性能。
主机环境:32位Ubuntu 10.10
交叉编译工具:arm-linux-gcc-4.5.1
DirectFB版本:DirectFB-1.5.0.tar.gz
下载地址:http://www.directfb.org/index.php?path=Main%2FDownloads
DirectFB测试用例版本:DirectFB-examples-1.5.2.tar.gz
下载地址:http://www.directfb.org/index.php?path=Main%2FDownloads&page=1
DirectFB依赖库:freetype-2.4.4.tar.gz,jpegsrc.v8c.tar.gz,libpng-1.2.44.tar.gz,zlib-1.2.5.tar.gz
freetype-2.4.4.tar.gz下载地址:http://download.csdn.net/source/3214785
jpegsrc.v8c.tar.gz下载地址:http://download.csdn.net/source/3567307
libpng-1.2.44.tar.gz下载地址:http://download.csdn.net/source/3567317
zlib-1.2.5.tar.gz下载地址:http://download.csdn.net/source/3567321
环境变量配置:
export PREFIX=/usr
export DEST_DIR=/home //以上两个环境变量的是移植后库生成的位置,最好是把以后有提到的库都存放到/home目录下
export PATH=$PATH:/home/opt/FriendlyARM/toolschain/4.5.1/bin
export CC=arm-none-linux-gnueabi-gcc
export LDFLAGS=-L$DEST_DIR$PREFIX/lib
export CFLAGS="-g -I$DEST_DIR$PREFIX/include"
export PKG_CONFIG_PATH=$DEST_DIR$PREFIX/lib/pkgconfig
export FREETYPE_CFLAGS="-I${DEST_DIR}${PREFIX}/include/freetype2 -I${DEST_DIR}${PREFIX}/include"
export PKG_CONFIG_PATH=${DEST_DIR}${PREFIX}/lib/pkgconfig
export PKG_CONFIG_LIBDIR=$PKG_CONFIG_PATH
export CFLAGS="-I${DEST_DIR}${PREFIX}/include/"
export LDFLAGS="-L${DEST_DIR}${PREFIX}/lib"
export LIBPNG_CFLAGS="-I${DEST_DIR}${PREFIX}/include/libpng12"
export LIBPNG_LIBS="-L${DEST_DIR}${PREFIX}/lib -lpng12"
export FREETYPE_CFLAGS="-I${DEST_DIR}${PREFIX}/include/freetype2 -I${DEST_DIR}${PREFIX}/include"
export DIRECTFB_CFLAGS="-I${DEST_DIR}${PREFIX}/include/directfb -I${DEST_DIR}${PREFIX}/include"
export FREETYPE_LIBS="-L${DEST_DIR}${PREFIX}/lib -lfreetype"
移植步骤:
1.
#Make zlib
cd $ZLIB
./configure --prefix=$PREFIX
make
make DESTDIR=$DEST_DIR install
2.
cd $LIBPNG
./configure --prefix=$PREFIX --host=arm-none-linux-gnueabi
make
make DESTDIR=$DEST_DIR install
3.
cd $LIBJPEG
./configure --prefix=$PREFIX --host=arm-none-linux-gnueabi
make
make DESTDIR=$DEST_DIR install
4.
cd $FREETYPE
./configure --prefix=$PREFIX --host=arm-none-linux-gnueabi
make
make DESTDIR=$DEST_DIR install
5.
cd $DFB
./configure --host=arm-none-linux-gnueabi --prefix=$PREFIX --disable-x11 --with-gfxdrivers=none --enable-jpeg --enable-png --enable-freetype --with-inputdrivers=linuxinput
make
make DESTDIR=$DEST_DIR install
错误及解决办法:
1. ../../lib/direct/atomic.h:188:70: error: expected ',' or '...' before 'new'
解决办法:进入到atomic.h文件,把关键字 new 改成new_1等任意不是关键词。
2. ../../lib/direct/serial.h:112:14: error: invalid conversion from 'void*' to 'volatile int*'
../../lib/direct/serial.h:112:14: error: initializing argument 2 of 'int _D__atomic_add_return(int, volatile int*)'
解决办法:进入到atomic.h文件,把有这方面的调动, 通过强制转换把(void *) -> (volatile int *)
6.
cd $DFBEXAMPLE
./configure --prefix=$PREFIX --host=arm-none-linux-gnueabi
make
make DESTDIR=$DEST_DIR install
这样就完成了基本的DirectFB的移植,把/home/usr目录下的全部文件拷贝到开发板的/usr下,运行测试用例就知道成不成功了。
环境说明:这么加速你有移植成功了DirectFB,且你的开发板支持硬件加速功能。不同的硬件平台有不同的配置,我这里就说说我的配置。这里所说的目录都是/home/usr下。
步骤:
编译你的硬件加速模块,会生成相应的库文件。把生成的所有库放到/home/usr/lib下。
在/home/usr/lib/directfb-1.5-0目录下,创建目录gfxdrivers,并把编译硬件模块的有关DirectFB的库放到此目录下,我这里的库文件是libdirectfb_gal.so.
在/home/usr目录下,创建目录etc
进入到/home/usr目录下,在终端输入:no-software>>directfbrc
完成以上步骤后DirectFB就可以支持相应的硬件加速了。
文章浏览阅读4.6k次。此处我们使用的是AES的基础加密模式,即:电码本模式 ECBJAVA代码如下: //创建AES加密实例 SecretKeySpec skeySpec = new SecretKeySpec(keyBytes, "AES"); Cipher cip = Cipher.getInstance("AES/ECB/NoPadding");//算法/模式/补码方式 cip.init(C_botan c++ aes java 互通
文章浏览阅读2.5k次,点赞5次,收藏17次。2018年3月,我与张老师就这么在微信上聊了起来,起初我并没有写书的打算,我们之间只是通过讨论、交流的形式聊聊关于出书的方方面面。最终,敌不过张老师超强的专业能力、细致的解说与盛情相邀,我答应张老师写一本Linux系统运维的图书并由人邮出版。由此,我踏上了漫漫2年多的写书之路。为什么写这本书写书一方面是我对自己所学知识的查漏补缺过程,另一方面也可以向即将进入或已经入行的Linux系统运维同..._linux系统运维指南:从入门到企业实战 pdf
文章浏览阅读2k次,点赞6次,收藏5次。tf.reduce_sum()函数深度解析从矩阵,数组,数据存储的角度 解析axis参数的意义_tf.reduce_sum
文章浏览阅读9.8k次,点赞4次,收藏29次。adb获取app包名的方法_adb获取包名
文章浏览阅读913次,点赞16次,收藏10次。总之,要做好虾皮店铺,不仅需要明确的定位和优质的产品,还需要精心的运营和持续的改进。通过不断优化店铺形象、制定有效的营销策略、提供优质的客户服务以及加强供应链管理等手段,您将能够在激烈的竞争中脱颖而出,实现店铺的长足发展。1.稳定的网络环境是基石,它需要经过技术手段的洗礼,将电脑或手机的底层硬件参数伪装成国外数据,以躲避平台通过IP进行的深度检测。这种真实性高的评价能够帮助商家获得更多的信任和认可,从而提升产品的排名和流量的分配。您可以关注行业动态,学习先进的经营理念和技术,以提高店铺的运营水平。
文章浏览阅读5k次,点赞11次,收藏43次。统计检验_统计测试 cd diagrams
文章浏览阅读2.9k次,点赞3次,收藏37次。1. IIS1. PUT漏洞用户配置不当,exp:https://github.com/hackping/HTTPMLScan.git2. 短文件名猜解IIS的短文件名机制,可以暴力猜解短文件名,访问构造的某个存在的短文件名,会返回404,访问构造的某个不存在的短文件名,返回400。exp:https://github.com/WebBreacher/tilde_enum3.远程代码执行(CVE-2017-7269))**exp**:https://github.com/zcgonv_hrs中间件
文章浏览阅读368次。DB2支持以下两种类型的表空间: 1、 系统管理存储器表空间(SMS-SYSTEM MANAGED STORAGE) 2、 数据库管理存储器表空间(DMS-DATABASE MANAGED STORAGE) SMS、DMS用户表空间的特性对照 特性 ..._db2
文章浏览阅读84次。正在开发中的游戏有个全屏功能--可以在window桌面背景上运行,就像一些视频播放器在桌面背景上播放一样的,花了个上午整了个Demo放出来留个纪念。实现功能:显示图标,双击图标执行相应的程序,右击图标弹出该图标对应得菜单,点击非图标区则弹出桌面菜单。需要完整工程可以点此下载:DesktopWindow.rar。程序效果图如下:在这个程序里,定义了一个XShellItem..._模拟实现windows桌面效果
文章浏览阅读944次。https://www.byhy.net/tut/webdev/django/01/_byhy.net
文章浏览阅读5.8k次,点赞13次,收藏57次。业务场景介绍:H5移动端支持微信支付 [ 微信支付分为微信内支付(JSAPI支付官方API)和微信外支付(H5支付官方API)] && 支付宝支付 [手机网站支付转 APP 支付 官方API ]订单生成逻辑:前端请求后端提交订单,后端去和微信或者支付宝对接生成订单(后续支付都是这个逻辑进行的对接)一、移动端微信支付,vue中如何玩?在移动端微信支付分为微信内支付和微信外支付。1.在订单组件中选择支付方式之后在支付页面先去判断是否是在微信内://判断是否微信 is__移动端支付宝微信支付vue项目怎么写
文章浏览阅读2k次,点赞5次,收藏9次。深度学习编译器主要为解决不同框架下训练的模型部署到指定的某些设备上时所遇到的一系列复杂的问题,即将各种深度学习训练框架的模型部署到各种硬件所面临的问题;_tvm编译器