韦东山第三期-电子相框
//查无此人
这个作者很懒,什么都没留下…
展开
-
02.点阵显示中文汉字
1.环境官方给的内核文件(linux3.4)和根文件系统、linux2.6和配套根文件系统不同的内核文件编译时用的交叉编译器不同,linux3.4用4.x的编译器,linux2.6用3.x的编译器,否则不能运行2.架构思路打开屏所对应的文件,调用fctl函数使可以用地址来操作文件获得屏的一些信息(如:屏幕一个像素点占用的位数,屏的分辨率等等)打开汉字库文件,调用fctl函数使可以...原创 2019-05-08 15:52:27 · 4838 阅读 · 0 评论 -
13.display文件夹分析
1.用到的结构体 /*确定一个图层的大小,用于对图标显示位置的解释*/typedef struct Layout { int iTopLeftX; //左上角xy坐标 int iTopLeftY; int iBotRightX; //右下角xy坐标 int iBotRightY; char *strIconName; //图标的名字,即用的哪张图片}T_Layout,...原创 2019-07-22 21:34:51 · 569 阅读 · 0 评论 -
12.数码相框的框架(文件说明)
./|-- display| |-- disp_manager.c 用于管理显示设备,所有显示设备都需要先向这个文件注册才可以使用,这个工程里显示设备只有LCD屏| |-- fb.c 控制显示屏的程序,包括打开对应的文件,把文件映射到一块内存地址,获取屏的信息等等。| |-- Makefile| `-- test 这个文件夹用来做测试,没有用| ...原创 2019-07-22 16:03:01 · 204 阅读 · 0 评论 -
17.render/render.c文件分析
这个文件主要是写了一些图片、文字的渲染,主要调用fonts、encoding、picfrm这几个文件中的函数所有函数的简单分析/* PT_VideoMem预先分配好的内存,刷到fb上,最终调用的是memcpy,在fb.c中,提供的一个ShowPage函数 */void FlushVideoMemToDev(PT_VideoMem ptVideoMem)/* 查看某一个文件是否支持bmp或...原创 2019-07-25 15:31:24 · 327 阅读 · 0 评论 -
16.render/fomat和operation文件夹分析
1.render/format文件夹这个文件夹主要是用来识别图片文件、从图片文件中提取数据像素,所用到两个结构体如下/* 用来描述一张图片的象素数据 */typedef struct PixelDatas { int iWidth; /* 宽度: 一行有多少个象素 */ int iHeight; /* 高度: 一列有多少个象素 */ int iBpp; /* 一个象...原创 2019-07-24 20:30:46 · 461 阅读 · 0 评论 -
15.file文件夹分析
这个文件夹里只有一个file.c文件,主要是获取文件系统中的目录信息以及文件信息,用到的一些库函数在以下博客中Linux目录操作函数 scandir目录项dirent详解及示例先分析file.h中的结构体 typedef struct FileMap { char strFileName[256]; /* 文件名 */ // int iFd; FILE * tFp; ...原创 2019-07-24 16:34:26 · 182 阅读 · 0 评论 -
18.数码相框总结
框架整体框架如上,我对他们的阅读顺序是按照博客发布的顺序来的,感觉还行,读起来不是特别困难page文件夹下的代码太多,就不一个一个拿出来粘代码了,关于page文件夹的阅读顺序**page_manager -> main_page -> browse_page -> manual_page -> setting_page ->interval_page ->...原创 2019-07-29 11:52:37 · 370 阅读 · 3 评论 -
11.bmp和jpg图片显示
1.libjpeg库的基本使用int main(int argc , char **argv){ struct jpeg_decompress_struct cinfo; struct jpeg_error_mgr jerr; FILE * infile; int row_stride; unsigned char *buffer; /*分配和初始化一个decompression结...原创 2019-07-12 10:51:16 · 353 阅读 · 0 评论 -
08.通用Makefile+Makefile基础
0.程序的编译过程(1)预处理C/C++源文件中,以"#“开头的命令被称为预处理命令,如包含命令、宏定义命令、条件编译命令等。预处理就是将要包含的文件插入到源文件中、宏定义展开、根据条件编译命令选择使用的代码,最后将这些代码输入到一个”.i"文件中等待进一步处理,预处理用到arm-linux-cpp工具。(2)编译把C/C++代码(或者.i)翻译成汇编,所用到的工具是cc1.(3)汇编...原创 2019-07-06 22:20:31 · 223 阅读 · 0 评论 -
07.libx86/svgalib库的安装问题+PC上显示电子书
1 库安装的问题1.库安装的流程解压库源文件和布丁进入源文件打补丁,或者执行配置文件.configmake编译源文件sudo make install安装源文件PC上安装动态库会自动把头文件和.so文件放到对应的目录下,但是有时头文件的目录并不是直接在/usr/include/下,所以在编译时要加-I /usr/include/**** //来指定头文件的路径这种情况一般...原创 2019-07-06 14:48:34 · 504 阅读 · 3 评论 -
10.网络打印DEBUG信息
1.debug_manager.c分析static PT_DebugOpr g_ptDebugOprHead;static int g_iDbgLevelLimit = 8;int RegisterDebugOpr(PT_DebugOpr ptDebugOpr); //注册可供打印debug的设备void ShowDebugOpr(void); //显示一下有哪些设备PT_D...原创 2019-07-11 12:22:41 · 201 阅读 · 0 评论 -
09.轮询、select、多线程--电子书输入模块+滑动切屏
0.tslib库基础用法1.初始化代码#include <stdlib.h> //不确定,如果只加下面的不行,就加上这个#include <tslib.h>char *pcTSName = NULL;static struct tsdev *g_tTSDev; //触摸屏设备的结构体,类似于文件句柄fdif ((pcTSName = getenv("TS...原创 2019-07-10 15:49:53 · 313 阅读 · 0 评论 -
06.在LCD上显示多行矢量字
1.目的及注意目的: 可以"居左"和"居中"显示多行文字注意:1、 居左显示: 显示的时候,应该从下面一条红线下面显示第二行,而不应该从第一条红线显示,这样就需要先把第一行文字的边框计算出来,以防第二行文字和第一行文字有串扰。先描边,再算边框2、居中显示: 先算出边框,再确定坐标,再描画...原创 2019-05-15 21:18:15 · 483 阅读 · 0 评论 -
00.数码相框框架分析
项目流程弄清需求:需要完成什么设计框架:怎么实现编写代码:怎么通过代码设计测试需求1.上电后LCD显示一副图片2.根据配置文件,决定停留当前界面还是自动显示下一张3.点击一下屏幕,出现一个框,选择手动显示、自动显示4.向上滑放大,向下滑缩小,左右滑切换图片5.左右滑动很快时,连续切换两张程序设计框架输入进程创建三个线程:触摸线程、按键线程、主控线程触摸线程:不停调...转载 2019-05-07 19:50:11 · 236 阅读 · 0 评论 -
01.各种编码方式
1.字体文件:包含字符数据和编码表UTF-8是unicode编码方式的一种实现,意思是unicode编码是确定的,一个数字对应一个符号,不同的是UTF-8是对这些数字做一些处理,当是单字节字符时,最高位为0,剩下七位和ascii码一样,多字节怎么处理的百度.GB2312 国标码GBK 国标扩展码BIG5 港澳台使用的繁体字符数据 就是对应的字符的点阵排列是什么样的.2.同一...原创 2019-05-07 14:49:24 · 1202 阅读 · 0 评论 -
05.LCD上显示一行矢量中文+交叉编译器库安装
1.安装交叉编译器freetype库#安装部分tar xjf freetype-2.4.10.tar.bz2cd freetype-2.4.10/ #docs/INSTALL.CROSS 是对交叉编译的一个说明文档#--host=arm-linux 交叉编译器时使用#--buid=i386-unknown-freebsd 这个是在pc使用时使用#--prefix=<prefi...原创 2019-05-09 21:42:07 · 250 阅读 · 0 评论 -
04.freetype显示中文
1.用unicode码显示中文int chin[] = {0x97e6,0x4e1c,0x5c71,0x0067}; //韦东山g定义要显示的中文,然后显示,这样的方法是可以的。中文在unicode编码中是两个字符,英文是一个字符,所以用以上方法是正确的,因为显示时是一个字符一个字符输入进去转换再显示的,而如果这样写:char chin[]="韦东山g";就会出现乱码,原因如下:...原创 2019-05-09 16:22:03 · 3985 阅读 · 0 评论 -
03.freetype显示英文
1.点阵字库的缺点点阵字库确定好了像素,如8x8,8x16等,字体定死,不能缩放2.矢量字体原理矢量字体由 若干条曲线的关键点 和 数学曲线(贝塞尔曲线)连接 组成。将汉字的笔划边缘用直线段描述成封闭的曲线,并将线段各端点的坐标经压缩存储,如下图所示:由于每个汉字的笔划不一样,从而每个汉字数据长度也不同,所以只能采用索引的方法。因而每种矢量字库都是由两部分组成,一部分是汉字的索引信息,...原创 2019-05-08 21:24:45 · 388 阅读 · 0 评论 -
14.encoding(附编码解释)/fonts/debug/input文件夹分析
1.encoding用到的结构体typedef struct EncodingOpr { char *name; /* 编码模块的名字 */ int iHeadLen; /* 文件头的长度: 一般在文件的开始用几个字节来表示它的编码方式 */ PT_FontOpr ptFontOprSupportedHead; /* 把能支持这种编码的"字体模块", 放在...原创 2019-07-23 15:13:17 · 235 阅读 · 0 评论