第七章Cortex-A8智能终端与嵌入式Linux系统

Download Report

Transcript 第七章Cortex-A8智能终端与嵌入式Linux系统

Cortex-A8智能终端与嵌
入式Linux系统
交通物联网应用技术
教学目的


介绍Linux的基础知识,包括内核结
构、进程调度、内存管理、虚拟文件、
进程通信、网络接口、设备管理以及
Linux基本命令等
介 绍 新 一 代 低 功 耗 高 性 能 ARM
Cortex-A8处理器智能终端系统开发,
包括S5pv210处理器硬件接口、嵌入
式Linux系统的构建、设备驱动、图
形GUI及上层应用设计。
Linux操作系统概述

Linux操作系统的产生及发展
Linux操作系统概述
Linux操作系统的特点








符合POSIX1003.1标准
支持多用户、多任务
采用虚拟内存管理技术
支持动态链接
支持多种文件系统
支持大部分的GNU软件
支持DOS和Window应用
嵌入式Linux开发环境

开发平台简介
嵌入式Linux开发环境
嵌入式Linux系统开发环境搭建

嵌入式LINUX开发环境有几个方案









基于PC机WINDOWS操作系统下的
CYGWIN;
在WINDOWS下安装虚拟机后,再在虚拟
机中安装LINUX操作系统;
直接安装LINUX操作系统。
交叉编译环境
宿主机RHEL6的安装
产品光盘实验环境的安装
拷贝光盘内容至宿主机RHEL6
安装交叉编译器
嵌入式Linux系统应用接口编
程

Linux系统多线程
线程 是进程的一条执行路径。每个
线程共享其所附属的进程的所有的
资源,包括打开的文件、页表(因
此也就共享整个用户态地址空间)、
信号标识及动态分配的内存等等
 线程创建函数
 线程同步的相关函数

嵌入式Linux系统应用接口编
程
Linux串口通讯




串行口是计算机一种常用的接口,
具有连接线少,通讯简单等优点。
异步串行I /O方式是将传输数据
的每个字符一位接一位(例如先
低位、后高位)地传送
Linux 对所有设备的访问是通过
设备文件来进行的,串口也是这
样
嵌入式Linux系统应用接口编
程
Linux Socket网络通讯






Socket接口是TCP/IP网络的API,
Socket接口定义了许多函数或
例程
端口
地址
网络字节序
客户机/服务器模式
嵌入式Linux系统应用接口编
程
嵌入式SQLite数据库





数据库的目标是实现对数据的存
储、检索等功能
嵌入式数据库是一种具备了基本
数据库特性的数据文件,它与传
统数据库的区别是:嵌入式数据
库采用程序方式直接驱动
SQLite是一种采用C语言开发的
嵌入式数据库
SQLite的相关函数
嵌入式Linux系统应用接口编
程
基于V4L2的视频采集




V4L与V4L2是Linux下开发视频采集
设备驱动程序的一套规范
V4L2,其全称是Video4Linux2
(Video for Linux Two),是V4L的
改进版,修复了第一代的部分设计
bug。与V4L相比,它的扩展性和灵
活性都得到了极大的提高
在Linux下,所有外设都被看成一种
特殊的文件,成为“设备文件”,可
以象访问普通文件一样对其进行读写,
包括摄像头
嵌入式GUI图形接口编程

Qt跨平台图形库
Qt是一个1991年由奇趣科技开发
的跨平台C++图形用户界面应用程
序开发框架
 它既可以开发GUI程式,也可用于
开发非GUI程式,比如控制台工具
和服务器。
 Qt是面向对象语言,易于扩展,并
且允许组件编程。

嵌入式GUI图形接口编程
Qt Designer程序设计方法

Qt提供了非常强大的GUI编辑工具— Qt
Designer,它的操作界面类似于Windows下
的Visual Studio
Qt允许程序员不通过任何设计工具,以纯粹
的C++代码来设计一个程序。但是更多的程
序员更加习惯于在一个可视化的环境中来设
计程序
步骤








创建并初始化子窗口部件。
将子窗口部件放置到布局当中。
对Tab的顺序进行设置。
放置信号和槽的连接。
完成对话框的通用槽的功能
嵌入式GUI图形接口编程
Qt/Embedded移植应用

Qt/Embedded(简称Qt/E)是一个专门
为嵌入式系统设计图形用户界面的工
具包。Qt为各种系统提供图形用户界
面的工具包,Qt/E就是Qt的嵌入式版
本
步骤






拷贝并解压Qt源码包
编译配置Qt/E环境
编译Qt/E 环境
安装Qt/E环境。
嵌入式Linux系统构建

Linux内核裁剪与移植
make config:进入命令行,可以
一行一行的配置,这个方式不友好
所以我们不具体介绍。
 make menuconfig:进入我们熟
悉的menuconfig菜单,相信很多
人对此都不陌生。
 make xconfig:在2.4.X以及以前
版本中xconfig菜单是基于TCL/TK
的图形库的。

嵌入式Linux系统构建
Linux文件系统构建

YAFFS2根文件系统


CBT-SuperIOT全功能物联网平台设备有
一个1G大小的NANDFLASH,根文件系
统和用户文件系统建立在该flash的后大半
部分。该flash的前小半部分用来存放
bootloader和kernel映像。根文件系统选
用了YAFFS2文件系统格式。
其他文件系统格式


系统采用YAFFS2格式的根文件系统,为
了配合系统的其他功能
嵌入式Linux设备驱动

Linux内核驱动简介
驱动程序的作用是应用程序与硬件
之间的一个中间软件层
 驱动程序应该为应用程序展现硬件
的所有功能
 Linux的驱动开发调试有两种方法,
一种是直接编译到内核,再运行新
的内核来测试;二是编译为模块的
形式,单独加载运行调试

嵌入式Linux设备驱动
PWM驱动及外设




平台上硬件接口的连接
S5PV210处理器相关寄存器
S5PV210处理器相关寄存器
嵌入式Linux设备驱动
LCD显示设备设备驱动


平台LCD部分硬件电路图
嵌入式Linux系统与Cortex-A8
智能终端实验










嵌入式Linux系统开发环境搭建实验
S5Pv210串口程序设计实验
Linux系统socket网络通讯实验
嵌入式SQLite应用实验
嵌入式Linux系统构建实验
PWM驱动蜂鸣器控制实验
ADC电压转换实验
Qt/E GUI移植搭建实验
物联网智能交通系统之GSM/GPRS短信息
控制实训
物联网智能交通系统之WEB远程服务器监
控实训
思考题







Linux操作系统有哪些特点?
简介S5pv210处理器的硬件接口?
如何搭建嵌入式Linux系统交叉编译环境?
嵌入式Linux系统由哪几部分构成,如何构
建?
Linux系统的设备驱动程序如何分类?
Linux系统应用程序、内核、设备驱动程序
的软件关系是怎么样的?
如何基于嵌入式Linux系统设计图形GUI?