第三期第一个项目--数码相框
第 1 课第 1 节_数码相框之系统框架_P
第 1 课第 2.1 节_数码相框_字符的编码方式_P
第 1 课第 2.2 节_数码相框_字符的点阵显示_P
第 1 课第 2.3.1 节_数码相框_freetype 理论介绍_P
第 1 课第 2.3.2 节_数码相框_在 PC 上测试 freetype_P
给定字符大小,计算一个字符用多少像素表示:
字符旋转:
下面想要在 PC 上显示中文:
宽字符:
深入理解:
打 印 xMin , xMax , yMin , yMax :
第 1 课第 2.3.3 节_数码相框_在 LCD 上显示一个矢量字体_P
1.1:交叉编译 freetype 库
先看看编译出来的头文件应该放在哪个目录:
再看看编译出来的库文件应该放在哪里呢?
在 LCD 上面显示矢量字体
在 LCD 上面显示文字并显示一个角度代码见:
第 1 课第 2.3.4 节_数码相框_在 LCD 上显示多行文字_P
b. 居中显示两行文字
第 1 课第 3.1 节_数码相框_额外项目_电子书之效果及框架_P
显示一个文本文件:
在 MINI2440 下体验编译:
显示一本国标码编码方式保存的电子书:
在 TQ2440 下体验编译:
下面开始讲解电子书程序:
电子书程序框架:
模块分图:
字体点阵模块:
提取文件编码模块:
第 1 课第 3.2 节_数码相框_额外项目_电子书之代码阅读及编写_P
显示器模块实现大致思路 :
字体点阵模块大致思路:
下面先讲 freetype 单色图 MONO 是怎么根据编码值得到字体的点阵: 详见代码:
提取文件编码模块大致思路:
分 析 main.c :
分 析 Draw.c :
第 1 课第 3.3 节_数码相框_额外项目_电子书之指针的操作_P
第 1 课第 3.4 节_数码相框_额外项目_电子书之链表的操作_P
第 1 课第 3.5 节_数码相框_额外项目_电子书之在 PC 上显示_P
给 svgalib 源码打补丁: 解压:
第 1 课第 4 节_数码相框_编写通用的 Makefile_P
方 法 b. 写 Makefile
如何自动生成依赖文件并且将自动生成的依赖文件包含到 Makefile
b.怎么把自动生成的依赖文件包含进 Makefile:
下面仔细分析第四个 Makefile:
修改 Makefile,让其能够支持一个工程
子目录 Makefile
注意:
下面重新写 show_files 工程的 Makefile
第 1 课第 5.1 节_数码相框_使用多种方法支持多输入_框架及轮询方式_P
关于stdin.c部分:
关于touchscreen.c部分:
1:初始化函数TouchScreenDevInit:
2:关于获取时间的函数: TouchScreenGetInputEvent
3:向上注册结构体
关于input_manager.c部分:
关于修改main.c
关于makefile
如何查看 CPU 占用率
疑惑
第 1 课第 5.2 节_数码相框_使用多种方法支持多输入_select 方式_P
如何查看 CPU 占用率
第 1 课第 5.3 节_数码相框_使用多种方法支持多输入_多线程_P
三种输入方式的流程比较:
修改代码的步骤:
对于主线程我们要做的是:
下面分析子线程的代码:
如何查看 CPU 占用率
第 1 课第 6.1 节_一小时学会网络编程_两个简单例子_tcp_udp_P
1:为何引入网络编程
2:网络通信介绍
3:普通程序和网络程序流程对比
4:编写网络程序之前的函数使用的说明
4.1:Socket函数原型及参数:
4.2:bind函数:
4.3:listen:
4.4:accept函数:
4.5:connect函数:
5:创建子进程介绍
6:写TCP的server端的代码:
7:编译TCP server端代码
8:写TCP客户端程序
9:编译TCP 客户端程序
10:UDP的服务器和客户端的流程
客户端不写 connect 函数
疑惑:
第 1 课第 6.2 节_修改电子书源码支持远程打印 1_P
我们要实现的功能需求:
框架分析:
代码修改步骤
关于debug_manager.h
关于debug_manager.c
关于stdout.c
关于netprint.c
环形缓冲区自己的理解:
关于debug_manger.c
启动开发板
第 1 课第 7 节_libjpeg 的使用_P
1:2440是如何显示图片的
2:如何让图片显示在LCD上
3:如何解压jpg图片
4:libjpeg的使用介绍
5:编写代码步骤:
6:编译步骤
7:代码改进:实现缩放功能
8:代码改进:实现在LCD上显示图片
第 1 课第 8.1 节_数码相框功能及程序框架_P
1:数码相框功能框架:
2:页面管理模块框架:
3:以main_page.c为例分析结构体
第 1 课第 8.2 节_数码相框程序编写_先写框架_P
第 1 课第 8.3.1 节_数码相框程序编写_图标显示之 bmp 数据提取_P
bmp 文件格式
文件信息头:占 14 个字节
位图信息头:占 40 个字节
关于pic_operation.h
关于bmp.c
第 1 课第 8.3.2 节_数码相框程序编写_图标显示之缩放_P
第 1 课第 8.3.3 节_数码相框程序编写_图标显示之测试_P
原因是未考虑到结构体对齐问题。
Sizeof结构体,由于结构体对齐问题,导致计算结构体错误:
第 1 课第 8.4.1 节_数码相框程序 GUI 编写_MainPage 显存管理_P
step 1:显示页面前的准备工作-显存的分配和获取:
1.1:构造显存链表的结构体
1.2:显存分配函数
1.2.1:将我们自己分配的显存加入显存链表
1.2.2:将LCD实际设备FB显存加入链表
1.3:显存获取函数
step 2:显示页面图标函数框架构思
第 1 课第 8.4.2节_数码相框程序编写_MainPage页面规划_P
Step 1:获得显存
Step 2: 描画数据
2.1判断或得到的显存是否已经存在像素数据
2.2:获得LCD的分辨率
2.3:先确定我们要缩放到什么尺寸
2.4:首张图标在LCD的位置
2.5:提供缩放后的目标图标的图片数据描述结构体
2.6:定义一个图标位置描述结构体
2.7:循环去获取原始图片的像素数据,图标的左边数据,缩放,合并
2.8: 释放空间和修改显存数据状态标志位
Step3: 刷到设备上去
Step4. 解放显存
第 1 课第 8.4.3 节_数码相框程序 GUI 编写_MainPage 输入功能_P
Step1:修改事件类型结构体
Step2:修改输入设备的获取事件函数
Step3:实现对应页面中获取事件并处理的部分
第 1 课第 8.4.4 节_数码相框 GUI 程序编写_MainPage 测试_P
开始从头至尾修改 8.4.3 里的代码
启动开发板
第 1 课第 8.5.1 节_数码相框效果演示及编译使用方法
tslib 编译使用方法解压:
第 1 课第 8.5.2 节_数码相框完整代码的讲解_P
第 1 课第 8.5.3 节_数码相框改进性能_支持中文_P
第 1 课第 8.5.4 节_数码相框课后作业及思路_P