Linux下的小说与视频--课设
Linux平台下多媒体播放器的设计
课程设计目的
1、深入了解电子信息类产品开发研制过程,掌握其工作原理;
2、了解整个linux系统项目的流程、项目分析,以及项目实施过程;
3、掌握虚拟机环境的搭建、Ubuntu安装和基本指令;
4、掌握uboot移植、内核的裁剪,根文件系统的搭建;
5、掌握视频音频的移植以及播放界面的整体设计;
6、掌握综合应用项目的开发与调试,增强从事科研与生产工作的事业心和责任感,巩固所学理论知识,获取本专业较为全面的实际知识,掌握从事本专业工作所需要的初步工作能力和专业技能;
7、掌握电子信息产品的组装和调试方法技能,加深对已学专业理论知识的理解和认识,训练自己发现问题、分析问题和解决问题的能力;
课程设计内容
-
linux底层环境的搭建(uboot移植、内核裁剪和根文件系统制作)
-
LCD屏和触摸屏驱动移植
-
视频播放界面的设置以及界面的布局
-
主界面:
视频播放和电子书浏览的入口图标(缩略图)和可通过点击图标进入视频播放主界面和电子书浏览主界面。
-
视频播放界面:
a. 在LCD屏上显示所有本地的视屏资源(矩形缩略图)
b. 可通过触摸屏点击选中某一视频,进入播放界面
c.在播放界面可控制视频的播放/暂停/快进/后退/全屏/退出播放界面(返回视频资源界面)
课程设计的实现
Linux开发环境的搭建
-
VMware Workstation的安装
VMware Workstation 是一款虚拟 PC 软件,利用 VMware 工作站,可在现有操作系统上虚拟出一个或多个硬件环境,相当于模拟出多台 PC,以此来实现在一台机器上同时运行多个独立的操作系统。
安装目的:使用的是windows10操作系统,在此系统的基础上使用ubuntu系统,需要该软件的支持(该软件需要破解)。
-
Ubuntu和VMware tools 的安装
①:下载ubuntu镜像
去阿里云下载ubuntu的镜像文件。
②:创建并安装ubuntu虚拟机
按照步骤,即可轻松创建好ubuntu的虚拟机,我们只需要根据电脑的详细资源配置,分配好windows和ubuntu的硬件资源配置。
③:安装VMware tools
VMware tools能够实现主机和虚拟机之间的文件共享和直接拖拽的功能,
-
linux基本指令的练习
常用指令如下:
(1) 用户切换指令(su)
语法: su [选项] [登录]
作用: su 的作用是变更使用者的身份,切换时需要键入该使用者的密码(超级用户除外)。(2)显示绝对路径(pwd)
语法: pwd [选项]
作用: 执行 pwd 指令可显示当前所在的工作目录的绝对路径名称(3)list directory contents(ls)
语法: ls [选项] [文件]
作用: 用于显示指定工作目录下之内容(4)make directories(mkdir)
语法: mkdir [选项] 目录
作用: 在指定位置创建以指定的目录, 创建的目录不能与其父目录中的文件名重名,即同一个目录下不能有同名的(区分大小写)。 这里的目录位置可以使用相对路径和绝对路径。(5) touch
语法: touch [选项] 文件
作用: 修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件;(6)remove files or directories(rm)
语法: rm [选项] [文件]
作用: 删除一个目录中的一个或多个文件或目录,如果没有使用- r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。 -
gcc编译工具的使用
GCC 是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高 20%~30%, 一个交叉平台编译器 ,适合在嵌入式领域的开发编译。
程序编译过程
①:编译预处理 gcc -E xxx.c -o xxx.i
处理伪指令(#)和特殊的特殊符号②:编译 gcc -S xxx.i -o xxx.s
把预处理完的文件进行一系列词法分析,语法分析,语义分析及优化后生成相应的汇编代码文件③:汇编 gcc xxx.s -o xxx.o
汇编器是将汇编代码转变成机器可以执行的命令,每一个汇编语句对应一条机器指令④:链接 gcc xxx.o -o xxx
头文件只是函数声明,实现封装在库文件中,链接就是找到指定路径下的库文件
Linux内核环境的搭建
搭建交叉编译器
-
获取源码
arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -
拷贝文件夹到 Ubuntu 系统
把文件放到自己的ubuntu的文件中
-
解压缩到根目录
tar -xzvf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz -C / -
修改环境变量
修改
/etc/profile 文件 sudo gedit /etc/profile在文件末尾加上
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin -
环境变量生效
source /etc/profile -
安装 32 位库兼容包
sudo apt-get install lib32ncurses5 lib32z1 -
测试是否安装成功
arm-linux-gcc -v安装成功将会输出
arm-linux-gcc的版本号
uboot 的烧写
-
uboot 介绍
是常用的嵌入式操作系统启动程序。
把操作系统镜像从介质如 flash、 nand、 SD 卡等加载到内存
-
拷贝文件
uboot_tiny4412-sdk1506.tar拷贝到ubuntu的文件夹里 -
解压操作
sudo tar -vrf uboot_tiny4412-sdk1506.tar -
编译
make生成可执行文件,在 uboot 目标目录下生成 u-boot.bin -
烧写
- 进入 sd_fuse 里面 执行
make - 进入 tiny4412 目录下
- 挂接 SD 卡 ;找到正确的挂接点
ls /dev/sd* - 烧写 uboot
sudo ./sd_fusing.sh /dev/sdb
- 进入 sd_fuse 里面 执行
内核的烧写
-
内核的介绍
linux 内核五大功能:
进程管理(cpu)
内存管理(内存)
设备管理(驱动)
网络管理(网络协议 tcp/ip)
文件系统(vfs) -
拷贝文件
driver.tar到虚拟机 ,并进行解压tar -xvf driver.tar -
生成内核镜像
make zImage -
编译
生成的 arch/arm/boot 下的zImage -
烧写
①进入到
arch/arm/boot 输入:
cd arch/arm/boot②烧录到SD卡中
dd iflag=dsync oflag=dsync if=./zImage of=/dev/sdbseek=1057
根文件系统的搭建
-
将 driver 文件拷贝到虚拟里
-
然后将它拷贝到根目录
sudo mv dirver / -
然后解压文件
sudo tar -xvf driver.tar
NFS 服务搭建与测试
-
安装 nfs 服务
sudo apt-get install nfs-kernel-server nfs-common -
修改配置文件
sudo gedit /etc/exports修改内容如下:
/driver/rootfs *(rw,sync,no_root_squash,no_subtree_check) -
重启 nfs 服务和 rpcbind 服务
sudo /etc/init.d/nfs-kernel-server restartsudo /etc/init.d/rpcbind restart -
Ubuntu下添加有线的网络配置
①:IPV4修改为
192.168.15.2②:子网掩码为
255.255.255.0③:IPV6修改为
192.168.15.1 -
Windows10的有线网络配置
①:IPV4修改为
192.168.15.12②:子网掩码为
255.255.255.0③:IPV6修改为
192.168.15.1 -
代码运行测试
先使用make,编译代码
再将编写好的可执行文件在单片机上运行
代码调试与下载
代码调试目的
实现以下功能:
主界面:视频播放和电子书浏览的入口图标(缩略图)和可通过点击图标进入视频播放主界面和电子书浏览主界面。
视频播放界面:a. 在LCD屏上显示所有本地的视屏资源(矩形缩略图)b. 可通过触摸屏点击选中某一视频,进入播放界面c.在播放界面可控制视频的播放/暂停/快进/后退/全屏/退出播放界面(返回视频资源界面)
系统的原理框图
系统主要有5大界面:
1、主界面 2、小说主界面 3、小说阅读界面 4、视频主界面 5、视频播放界面
对应界面,触摸显示屏相应位置,即可触发相应的功能。
程序流程:
进入到main,先初始化显示屏设备,显示出主界面;在主界面上有两个图标(小说、视频)。
在main函数中,检测触摸屏相应位置是否按下;
点击小说图标,系统进入小说主界面,这时会看到我们准备好的小说,点击相应的小说图标后,就会进入到小说阅读界面,阅读小说,小说阅读界面可以进行上一页、下一页、回到开头,退出;
返回到主界面后,进入点击视频图标,这是会看到我们准备好的视频,点击相应的视频图标后,就会进入视频播放界面,进而播放我们想看的视频,视频播放界面可以进行快进、快退、上一个、暂停、下一个、全屏、退出。
遇到的问题:
-
根目录无法挂载
原因分析:使用的ubuntu版本过高,使用的ubuntu版本为20.04,导致无法挂载成功
问题解决:询问工程师,问题得以解决。
-
内核文件编译时,无法找到路径
原因分析:Makefile的内核编译路径不正确。
问题解决:内核文件裁剪后,需要找到他的“绝对路径”,在Makefile里面的内核路径要换成对应的路径。
-
图片无法读取问题
原因分析:图片的格式不是.bmp
问题解决:将图片的格式存储为.bmp格式,如果只是修改文件的后缀为.bmp格式的文件,在程序中依然会出现图片格式不正确的问题。
-
小说显示乱码
原因分析:小说是.txt文档,在windows下创建的.txt文档,但是放到程序里面依然读取出乱码。
问题解决:看到老师给出的工程代码中,发现.txt文档是一个可执行的文件,而自己创建的.txt文档是一个普通文件,所以说要将这个文件属性修改,文字乱码问题得以解决。
课程设计结果
1、视频主界面:包含了小说图标和视频图标,点击相应图标的位置就可进入相应的界面。
2、小说主界面,预先存放了4本小说,点击相应的小说图标就可以观看相应的小说。
3、小说观看界面,打开的小说是“语音信号处理”,有4个操作,分别是:第一页、上一页、下一页、退出
4、视频界面,预先存储了4个视频,每个视频均可以打开观看。
5、视频观看界面:打开的视频是“马老师”,观看时可以进行一下操作:快退、快进、上一个、暂停、下一个、全屏、退出

浙公网安备 33010602011771号