基于ARM9的嵌入式Linux系统开发原理与实践(马小陆)章 (11)

合集下载

基于ARM9的嵌入式Linux系统开发原理与实践 (6)

基于ARM9的嵌入式Linux系统开发原理与实践 (6)

第6章 创建嵌入式Linux交叉开发工具链
12
图6-2 编译成功后的结果
第6章 创建嵌入式Linux交叉开发工具链
13
图6-3 验证binutils成功后的结果
第6章 创建嵌入式Linux交叉开发工具链
14
6.6 建立初始编译器
这一步的目的主要是建立arm-linux-gcc工具。注意,这 个gcc没有glibc库的支持,所以只能用于编译内核、 BootLoader等不需要c库支持的程序,后面创建c库也要用到 这个编译器,所以创建它主要是为创建c库做准备,如果只想 编译内核和BootLoader,那么安装完这个就可以到此结束。
第6章 创建嵌入式Linux交叉开发工具链
1
第6章 创建嵌入式Linux交叉开发工具链
6.1 下载源文件 6.2 建立工作目录 6.3 输出环境变量 6.4 建立内核头文件 6.5 建立二进制工具 6.6 建立初始编译器 6.7 建立c库 6.8 建立全套编译器 6.9 完成工具链的设置 6.10 测试和验证交叉编译工具 本章小结
第6章 创建嵌入式Linux交叉开发工具链
20
图6-8 安装glibc成功后的结果
第6章 创建嵌入式Linux交叉开发工具链
21
6.8 建立全套编译器
由于第一次安装的gcc没有交叉glibc的支持,现在已经安 装了glibc,因此需要重新编译来支持交叉glibc。并且上面的 gcc也只支持C语言,现在可以让它同时支持C语言和C++语言。
第6章 创建嵌入式Linux交叉开发工具链
4
6.3 输出环境变量
输出如下的环境变量方便后面编译。
第6章 创建嵌入式Linux交叉开发工具链

基于ARM9和Linux嵌入式系统设计

基于ARM9和Linux嵌入式系统设计

第6章 基于ARM9和Linux嵌入式系统设计
6.改变工作目录
语法:cd [name]
其中 name 是目录名、路径或目录缩写。 cd 除了有切换目录 的功能外,还有一个功能就是,不管在哪个目录内,只要 输入cd命令,不加任何参数,即可回到用户目录内。 $ cd tony ← 切换到当前目录下的tony子目录
6.8 Linux系统在ARM平台上的移植
6.9 综合训练——Linux系统及应用程序的烧
第6章 基于ARM9和Linux嵌入式系统设计
6.1 嵌入式Linux的开发环境 6.1.1 嵌入式Linux开发环境建立
嵌入式LINUX 开发环境有几个方案: 1、基于PC 机WINDOWS 操作系统下的CYGWIN; 2、在WINDOWS 下安装虚拟机后,再在虚拟机中安 装LINXUX 操作系统;
$ cd ..
$ cd / $ cd $ cd /usr/bin
← 切换到上一层目录
← 切换到系统根目录 ← 切换到用户主目录(或运行cd ~命令也可以) ← 切换到/usr/bin目录
第6章 基于ARM9和Linux嵌入式系统设计
7. 建立新目录
mkdir的命令格式如下:
mkdir [-m模式] [-p目录名] 目录
第6章 基于ARM9和Linux嵌入式系统设计
(3)whereis命令 whereis命令来查询某个命令存在哪一个目录下。命令 格式:whereis [选项] 命令名。 说明:不加选项可直接使用whereis命令。 whereis命令的常用选项如下: 章节 说 明 -b 只查找二进制文件 -m 查找主要文件 -s 查找来源 -u 查找不常用的记录文件 例如:查找cd命令二进制文件在什么目录下。命令: $ whereis -b cd

第9章 基于ARM9和Linux嵌入式系统设计1

第9章 基于ARM9和Linux嵌入式系统设计1

9.1 嵌入式Linux的开发环境 9.1.1 嵌入式Linux开发环境建立
嵌入式Linux 开发环境有几个方案:
(1)在WINDOWS 下安装Linux虚拟机后, 目前大多情况下使用VWare软件; (2)直接安装 Linux 操作系统。
第9章 基于ARM9和Linux嵌入式系统设计
9.1.2 嵌入式Linux开发的一般过程
$ gcc -o test first.c second.c third.c
第9章 基于ARM9和Linux嵌入式系统设计
3.其他常用选项的使用 $ gcc test.c –I../inc -o test
此命令告诉GCC包含文件存放在./inc 目录下,在当前目录 的上一级。如果在编译时需要的包含文件存放在多个目录下, 可使用多个-I 来指定各个目录。如:
第9章 基于ARM9和Linux嵌入式系统设计
(2) 设置断点与恢复命令
第9章 基于ARM9和Linux嵌入式系统设计
(3)gdb中源码查看相关命令
第9章 基于ARM9和Linux嵌入式系统设计
(4) gdb中查看运行数据相关命令
第9章 基于ARM9和Linux嵌入式系统设计
(5)其他gdb命令
● run命令:执行当前被调试的程序。
● kill命令:停止正在调试的应用程序。
● watch命令:设置监视点,监视表达式的变化。
● awatch命令:设置读写监视点。当要监视的表 达式被读或写时将应用程序挂起。它的语法与 watch命令相同。 ● rwatch命令:设置读监视点,当监视表达式被 读时将程序挂起,等侍调试。此命令的语法与 watch相同。
第9章 基于ARM9和Linux嵌入式系统设计

基于ARM9的嵌入式Linux网络通信系统设计与实现

基于ARM9的嵌入式Linux网络通信系统设计与实现

基于ARM9的嵌入式Linux网络通信系统设计与实现随着计算机技术的发展,嵌入式系统已经成为计算机领域的一个重要组成部分。

Internet现已成为社会重要的基础信息设施之一,是信息流通的重要渠道,如何让嵌入式设备连接到Internet上,和其他通信系统进行信息交换是当前嵌入式技术领域研究的热点所在。

本文结合实际应用需求,详细研究实现了一种基于S3C2410平台和Linux操作系统的嵌入式网络通信系统。

1.嵌入式网络通信系统总体设计经过大量的资料收集比较,深入地研究分析并结合现有的实验条件,我们对系统的体系结构、硬件平台和软件系统做出了以下选择:1)目前嵌入式CPU很多,选择哪款CPU要根据自己产品的实际需要。

一般而言,首先应尽量选择系统集成度高、外围电路简洁的CPU;其次,还应综合考察CPU的各项性能指标;最后,还应该考虑软硬件开发环境的建立、厂家的货源以及代理的软件支持力度。

经过比较, 本设计采用三星的S3C2410微处理器。

这是一款高性价比、低功耗、高集成度的CPU,基于ARM920T内核,主频最高为203MHz,专为手持设备和网络应用而设计,能满足嵌入式系统中的低成本、低功耗、高性能、小体积的要求。

图1为硬件平台的总体设计[ 1 ] 。

CPU S3C2410模块是开发板的核心部件。

S3C2410 在包含ARM920T核的同时,增加了丰富的外围资源,主要包括1个LCD 控制器,支持STN 和TFT液晶显示屏; 3个通道UART; 4个通道DMA; 4个具有PWM功能的16位定时/计数器和1个16位内部定时器, 支持外部时钟源; 8通道10位ADC,最高速率可达500kB / s;触摸屏、IIS总线、SD 卡和MMC卡接口;117位通用I/O口和24位外部中断源。

存储系统包括64MB的NAND Flash存储器模块和SDRAM存储器模块; Flash用于存放嵌入式操作系统、应用程序和用户数据等,并作嵌入式文件系统; SDRAM作为系统运行时的主要区域,用于存放系统及用户数据。

基于ARM9的嵌入式Linux系统开发原理与实践 (12)

基于ARM9的嵌入式Linux系统开发原理与实践 (12)
Linux USB子系统的结构分为三个层次。USBD层为USB 内核,内核分别为客户端驱动程序层和主机控制器驱动程序 层提供一套函数集,这样可以更好地扩展客户端驱动程序和 主机控制器程序,如图12-3所示。
第12章 USB驱动程序开发
14
图12-3 Linux USB子系统结构
第12章 USB驱动程序开发
devio.c:为用户空间提供设备的函数调用接口。 inode.c:主要为设备创建节点,维护计算机上的USB系 统等操作。
第12章 USB驱动程序开发
16
12.2.2 USB驱动程序(USBD)
Linux下USBD主要由文件USB.c和USB.h组成。 USBD主要负责为客户端驱动程序层和主机控制器驱动 程序层提供接口函数,使系统层次分明。另外,它还负责维 护设备的加载和卸载、设备配置、客户端驱动程序的安装和
第12章 USB驱动程序开发
12
图12-2 USB系统构成
第12章 USB驱动程序开发
13
12.2 Linux USB子系统
在Linux中,通过USB 子系统或称USB 内核来实现与 USB 设备的接口。这个USB内核包括两方面的功能:管理 USB总线,使USB控制器符合openHCI和UHCI协议;为用户 设备驱动程序提供一个方便的接口与相应的USB 外设进行数 据交换。图12-3描述了USB内核在Linux系统中的地位。
38
5. 拔出U盘
拨出U盘会出现如下信息,如图12-12所示。
/mnt #usb 1-1.2: USB disconnect, address 3
第12章 USB驱动程序开发
39
图12-12 拔出U盘后的提示信息
第12章 USB驱动程序开发

《嵌入式Linux系统开发技术详解—基于ARM》第02章

《嵌入式Linux系统开发技术详解—基于ARM》第02章

“黑色经典”系列之《嵌入式Linux系统开发技术详解——基于ARM》典型的ARM处理器华清远见<嵌入式Linux系统开发班>培训教材2.1 ARM处理器简介ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。

ARM处理器是一种低功耗高性能的32位RISC处理器,ARM处理器是一个综合体,ARM公司自身并不制造微处理器,而是由ARM 的合作伙伴来制造,作为SOC(System On Chip)的典型应用,目前,基于ARM的处理器以其高速度、低功耗等诸多优异的性能而得到非常广泛的应用。

采用RISC架构的ARM微处理器一般具有如下特点。

•体积小、低功耗、低成本、高性能。

•大多数数据操作都在寄存器中完成。

•寻址方式灵活简单,执行效率高。

•指令长度固定。

为了保证ARM处理器具有高性能的同时,进一步减少芯片的体积和功耗,ARM处理器采用了以下一些比较特别的技术。

•所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。

华清远见<嵌入式Linux系统开发班>培训教材•可用加载/存储指令批量传输数据,以提高数据的传输效率。

•可在一条数据处理指令中同时完成逻辑处理和移位处理。

•在循环处理中使用地址的自动增减来提高运行效率。

ARM微处理器有以下7种运行模式。

•用户模式(usr):ARM处理器正常的程序执行状态。

•快速中断模式(fiq):用于高速数据传输或通道处理。

•外部中断模式(irq):用于通常的中断处理。

•管理模式(svc):操作系统使用的保护模式。

•数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。

•系统模式(sys):运行具有特权的操作系统任务。

•未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。

基于ARM9的嵌入式Linux系统开发原理与实践 (3)

基于ARM9的嵌入式Linux系统开发原理与实践 (3)

break FUNCTION (2) 在当前源文件的某一行上设置断点
break LINENUM (3) 在另一个源文件的某一行上设置断点
break 序没有源程序时 很有用
break *ADDRESS
第3章 Linux编程环境
}
第3章 Linux编程环境
25
3.3 调试器GDB
3.3.1 GDB简介 所有的程序在写好以后,都要经过调试,在调试过程中
发现并改正程序中的错误。如果没有GDB,程序员为了跟踪 某些错误,就要在程序中加入大量的语句,用来产生一些特 定的输出。对于某些程序来说,这样做会导致更多的错误。
第3章 Linux编程环境
第3章 Linux编程环境
29
5. 查看程序信息info
info指令用来查看程序的信息,当用help info查看帮助时, info指令的参数足足占了两个屏幕,它的参数非常多,但大 部分不常用。
第3章 Linux编程环境
30
6. 列出一段源程序list
列出某个函数:
list FUNCTION 以当前源文件的某行为中间显示一段源程序:
第3章 Linux编程环境
9
3. 文本输入模式下使用vi
在文本输入模式下,不能打入指令,必需先按Esc键,返 回命令方式。假若用户不知身处何种模式下,也可以按Esc键, 则不管处于何种模式下,都会返回命令行模式。
文本输入模式下常用命令及其含义如表3-3所示。
第3章 Linux编程环境
10
表 3-3 文本输入模式下常用命令及其含义
第3章 Linux编程环境
1
第3章 Linux编程环境
3.1 编辑器vi 3.2 编译器 gcc 3.3 调试器GDB 3.4 make工具和Makefile规则 3.5 glibc 本章小结

基于ARM9的嵌入式Linux开发流程的研究

基于ARM9的嵌入式Linux开发流程的研究

4、应用程序编写:在ARM9的嵌 入式Linux平台上进行应用程序 开发
4、应用程序编写:在ARM9的嵌入式Linux平台上进行应用程序开发, 需要了解特定平台的编程接口和相关库函数
1、基于ARM9的嵌入式Linux开发流程具有灵活性和高效性,适合应用于各种 嵌入式场景。
4、应用程序编写:在ARM9的嵌入式Linux平台上进行应用程序开发, 需要了解特定平台的编程接口和相关库函数
研究目的
研究目的
本演示的研究目的是深入探讨基于ARM9的嵌入式Linux开发流程,分析其 优势和不足,并通过对开发过程中的关键环节进行研究,提供实用的开发策略和 建议。
文献综述
文献综述
ARM9处理器由于其低功耗、高性能的特点,在嵌入式系统领域得到了广泛应 用。而嵌入式Linux作为一种开源、可定制的操作系统,也逐步成为嵌入式开发 的主流平台。然而,嵌入式Linux在ARM9上的开发流程仍存在一些挑战,如内核 裁剪、设备驱动开发等。因此,对ARM9的嵌入式Linux开发流程进行深入研究具 有重要的现实意义。
结果分析
1、开发工具的选择:ARM9的嵌入式Linux开发需要依赖于特定的开发工具链, 包括编译器、调试器等。选择合适的开发工具可以有效提高开发效率和代码质量。
结果分析
2、开发环境的搭建:构建一个稳定、高效的开发环境是进行ARM9的嵌入式 Linux开发的基础。本次演示将详细介绍如何搭建一个适合ARM9平台的嵌入式 Linux开发环境。
实验结果
实验结果
通过实验测试和数据采集,得到以下实验结果: 1、功能测试:在所设计的实验平台上,所有硬件接口和功能都得到了正确实 现和验证。同时,操作系统内核的各种功能也得到了正确实现和验证。
实验结果

基于ARM9的嵌入式Linux系统开发原理与实践 (10)

基于ARM9的嵌入式Linux系统开发原理与实践 (10)

27
10.6 Linux 2.6内核驱动原理
从2.6版本开始引入了platform这个概念。首先介绍一下 2.6版本注册一个驱动的步骤:
(1) 定义一个platform_driver结构; (2) 初始化这个结构,指定其probe、remove等函数,并 初始化其中的driver变量; (3) 实现其probe、remove等函数。
第10章 嵌入式Linux设备驱动
7
10.2 Linux设备驱动程序模块
Linux内核中采用可加载的模块化设计,一般情况下编译 的Linux内核是支持可插入式模块的,也就是将最基本的核心 代码编译在内核中,其他的代码可以选择是在内核中,或者 编译为内核的模块文件。即Linux下的设备驱动程序可以按照 两种方式进行编译:一种是直接静态编译成内核的一部分; 另一种是编译成可以动态加载的模块。
表 10-1 file_operations 结构
module 的拥有者 重新定位读写位置 从设备中读取数据 向字符设备中写入数据 只用于文件系统,对设备无用 控制设备,除读写操作外的其他控制命令 将设备内存映射到进程地址空间,通常只用于块设备 打开设备并初始化设备 清除内容,一般只用于网络文件系统中 关闭设备并释放资源 实现内存与设备的同步,如将内存数据写入硬盘 实现内存与设备之间的异步通讯 文件锁定,用于文件共享时的互斥访问 在进行读操作前要验证地址是否可读 在进行写操作前要验证地址是否可写
假设一个非常简单的虚拟字符设备:这个设备中只有一 个4个字节的全局变量int global_var,而这个设备的名字叫做 “globalvar”。对“globalvar”设备的读写等操作,即是对其中 全局变量global_var的操作。
第10章 嵌入式Linux设备驱动

第六章 基于ARM9和Linux嵌入式系统设计

第六章  基于ARM9和Linux嵌入式系统设计

5
VMware为用户提供一套虚拟机解决方案,使用VMware可以在一台机 器上同时运行两个或以上的Windows和linux操作系统,且不需要重新进 行分区或重启计算机,不同的操作环境以及所有安装在该操作环境下的所 有应用程序和资料被完全隔离,同时不同的操作环境之间还能进行文件分 享以及网络连接,此外将操作系统安装到VMware上比直接安装在硬盘上 所花费的内存少,适合学习和测试。
cd命令参数列表
功能描述 将当前目录切换到环境变量OLDPWD的值所代表的目录 在符号链接的目录参数中使用,进入符号链接名所代表的目录,而非符号链接所指向的目录
23
(16)引导完成后,进入欢迎界面。 (17)进入许可证信息界面,选择“是的,我同意许可证协议”选项。 (18)单击“前进”按钮,进入软件更新设置界面。 (19)在软件更新设置界面中单击“前进”按钮,进入更新完成界面。 (20)完成更新后单击“前进”按钮,进入用户创建界面。单击“高级” 按钮就可以进行新用户的创建
● 产品发布:将程序下载固化到产品上并进行生产。
30
Linux命令及GNU开发工具的使用
GNU是自由软件基金会(Free Software Foundation,FSF)发起的
自由软件计划,它的目标是创建一套完全自由的操作系统,是英文GNU's
Not Unix的递归缩写。GNU计划就是开发一套完全自由的,能实现UNIX系 统的接口标准的类UNIX操作系统。 为确保所有的GNU软件都可以自由地“使用、复制、修改和发布”, 不被厂商非法滥用,就出现了GNU通用公共许可证(General Public
27
3.嵌入式Linux系统的软件开发流程
Linux的嵌入式开发流程如图所示。 ● 需求分析:确定设计任务和设计目 标。 ● 建立开发环境:安装桌面操作系 统和GCC交叉编译器。 ● 主机配置:配置主机的一些相关参 数、嵌入式的网络调试环境等。

基于ARM9的嵌入式Linux系统开发原理与实践 (8)

基于ARM9的嵌入式Linux系统开发原理与实践 (8)

10
表 8-1 配置命令方式
配置命令
解释脚本
Make config, make oldconfig
scrripts/Menuconfig
Make xconfig
scripts/tkparse
第8章 嵌入式Linux内核
11
(2) 配置语言。 ① 顶层菜单。
Linux内核中,需要三个步骤。首先确定把自己开发的代码放 入到内核的位置;其次,把自己开发的功能增加到Linux内核 的配置选项中,使用户能够选择此功能;最后,构建子目录
Makefile,根据用户的选择,将相应的代码编译到最终生成 的Linux内核中去。
第8章 嵌入式Linux内核
22
8.2.2 配置Linux内核
内核配置过程比较繁琐,但是配置的适当与否和日后
Linux的运行直接相关,有必要了解一些主要的且经常用到的 选项的设置。
第8章 嵌入式Linux内核
23
图8-1 xconfig配置界面
第8章 嵌入式Linux内核
24
图8-2 menuconfig配置界面
第8章 嵌入式Linux内核
25
8.2.3 Linux内核启动原理
18
⑧ source语句。
source /word/ /word/是文件名,source的作用是调入新的文件。
第8章 嵌入式Linux内核
19
(3) 缺省配置。 Linux内核支持非常多的硬件平台,对于具体的硬件平台 而言,有些配置是必需的,有些配置则不是必需的。另外,
新增加功能的正常运行往往也需要一定的先决条件,针对新 功能,必须作相应的配置。因此,特定硬件平台能够正常运
第8章 嵌入式Linux内核

ARM9嵌入式技术及Linux实验指导

ARM9嵌入式技术及Linux实验指导

绿谷电子开发网 ---------^电子工程师的好朋友^---------ARM9嵌入式技术及Linux实验指导嵌入式开发流程1.建立开发环境2.配置开发主机3.建立引导安装程bootLoader4.下载别人移植好的Linux操作系统5.建立根文件系统6.建立应用程序的磁盘分区7.开发应用程序8.烧写内核、根文件系统、应用程序9.发布产品一建立嵌入式Linux开发环境1)基于PC机的windows操作系统下的CYGWIN2)在windows下安装虚拟机后,再在虚拟机中安装Linux操作系统3)直接安装Linux操作系统绝大多数的Linux软件开发都是以native方式进行的,即本机开发、调试、本机运行的方式。

而通常的嵌入式系统的软件采用一种交叉调试的方式进行开发。

交叉编译调试环境建立在宿主机上,对应的开发板叫目标板。

运行Linux的PC开发时使用宿主机上的交叉编译、汇编、及连接工具形成可执行的二进制代码,然后把可以执行的文件下载到目标机上运行。

调试的方法很多,可以使用串口,以太网口等,至于具体使用何种调试方法可以根据目标处理器的提供的支持作出选择。

进行嵌入式Linux开发的一般需要在主机上安装Linux。

嵌入式开发通常要求宿主机配置有网络,支持NFS。

二开发工具软件的安装与配置开发环境配置包括配置网络,NFS服务器的配置基础实验实验一Bootloader实验目的实验目的熟悉bootloader,学会基于S3C2410的bootloader配置与使用,串口方式或Jtag的下载调试,了解嵌入式系统的启动过程。

实验内容本次实验使用Debian GNU/Linux操作系统环境安装minicom以及使用相关传输工具烧写bootloader。

学习Linux下的启动过程,以及vivi的使用。

下载已经编译好的vivi镜像到嵌入式实验仪中运行。

预备知识Linux的基本操作。

实验仪器硬件:armsys嵌入式实验仪,PC机(主频500以上)10G以上硬盘软件:操作系统Debian GNU/Linux,minicom,lrzsz实验步骤:1安装minicom与lrzszapt-get install minicomapt-get install lrzsz2调整minicom的端口参数这是初始画面,按^a z(这里按键顺序是ctrl a,然后按z)可以列出如下的帮助菜单。

基于ARM9的嵌入式Linux系统的设计与实现

基于ARM9的嵌入式Linux系统的设计与实现

基于ARM9的嵌入式Linux系统的设计与实现打开文本图片集摘要:随着计算机技术和微电子技术的迅猛发展,嵌入式系统逐渐发展为计算机应用的一个重要领域,在生活中得到了普遍的应用。

本文通过搭建嵌入式系统开发平台、对嵌入式Linux系统进行构建、移植设备驱动程序和介绍嵌入式GUI应用程序开发,讨论了基于ARM9微处理器的嵌入式Linux系统的设计与实现。

该系统为嵌入式控制系统设计提供了一种可行的方案。

关键词:嵌入式系统;Linux;驱动程序;ARM9一、引言嵌入式系统作为一种专用的计算机系统。

它以计算机技术作为基础,以应用作为中心,并且其硬件和软件都可以裁剪。

它能够满足应用系统对功耗和可靠性的严格要求。

嵌入式系统具有实时性高、系统内核小的特点。

嵌入式Linux是一种操作系统,它能够运行在嵌入式计算机系统上。

代码开放,版权免费[2]是它与其它操作系统相比的优势,嵌入式Linux有非常广泛的应用领域,主要应用于工业控制、大屏幕功能手机、信息家电、医疗电子等领域。

本文从应用出发,着重对一个嵌入式Linux系统进行研究、设计及实现。

二、嵌入式系统开发平台的搭建硬件结构和软件系统这两部分组成了一个完整的嵌入式系统,其中嵌入式处理器和外围的接口电路是硬件结构的主要组成部件,而嵌入式操作系统和应用程序则是软件系统的主要组成部分。

嵌入式系统开发平台的搭建主要包括硬件开发平台、软件开发平台和交叉开发环境的搭建[1]。

(一)硬件开发平台的搭建嵌入式系统硬件平台的搭建主要是围绕目标板和主机这两方面进行的,目标板选用的是采用嵌入式处理器的开发板作为硬件开发平台,主机选用的是PC机。

通过对当前主流的嵌入式处理器综合性能的比较,又依据嵌入式软件开发要求嵌入式处理器要具有性能高、功耗低等特点,因此选取ARM处理器作为本文的嵌入式处理器。

由于本文重点从应用开发方面来设计嵌入式系统,选用ARM9系列的S3C2440A处理器比较合适,因此目标板采用的是基于芯片S3C2440A的开发板作为硬件开发平台。

基于ARM9的Linux嵌入式系统移植与驱动开发

基于ARM9的Linux嵌入式系统移植与驱动开发

IIAbstractWith the development of the information technology, embedded systems has been broadlyapplied in each field of famlily and industry. And the increasingly wide range of applications,thecomplexity of embedded systems is constantly increasing. Now,the embedded operating systemhas become one of the most important part of the embedded system.In the embedded operating systems,The Linux operating system has become more and moreattened,because of its open source,small core,good performance;what’s more,Linux2.6 introducesmany new features that make it an excellent and suitable operating system for embeddedcomputing. Undoubtedly, the embedded Linux operating systemwill bring large economic valueand application prospects.This thesis is accomplished based on the automatic meter reading system for a powercompany in Nanjing, and the main contribution is to introduce transplantation of the embeddedLinux system, as well as the driver development of corresponding peripheral device. This paperaccomplish the transplantation of the embedded Linux system based on AT91SAM9260EK,andincluding build the development platform,build the embedded cross-compile environment; Basedon the analysis of the booting and loading process—BootLoader of the embeddedsystem,implements the transplantation of Uboot on the platform. After the detailed analysis of thekernel structure and booting process of Linux system, according to the terminal hardwareplatform,analyze the process of transplantation and cut of the Linux kernel. In accordance withthe application requirements,we select the YAFFS2 as our root file syetem,and detailedlyintroduce the process of the implementation of the YAFFS2 file system. Finally,develop thedrivers of the related equipment, especially the LCD(UC1698U), improve the original way ofdirect access GPIO port,and combining the GPIO and framebuffer to develop the new driver. The framebuffer is the cache for display, write data to the cache, the controller will automatically read the data from the cache and display. The development of GUI based on Qt/Embedded need thesupport of framebuffer technology. But for the type of LCD, the display controller can notautomatically read the data from the cache, use the kernel timer to update the framebuffer forreal-time display and develop the GUI of test based on Qt/Embedded.Key words: embedded Linux system, ARM9,YAFFS2,driver,FrameBuffer I摘要随着信息技术的不断发展,嵌入式系统已经广泛应用于工业和家庭的各个领域。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第11章 TFT-LCD驱动程序开发
2
11.1 TFT-LCD工作原理
11.1.1 LCD概述 液晶最早是奥地利植物学家莱尼茨尔于1888年发现的,他
发现某些有机物熔化后会经历一个不透明的呈白色浑浊液体状 态。第二年,德国物理学家莱曼发现这类浑浊液体外观上虽然 属于液体,但却显示出各向异性晶体特有的双折射性,于是莱 曼将其命名为“液态晶体”,也就是“液晶”。
第11章 TFT-LCD驱动程序开发
3
11.1.2 LCD显示原理 液晶是一种介于固体和液体之间,具有规则性分子排列的
有机化合物,既有晶体所特有的各向异性造成的双折射性,又 有液体所特有的流动性,如图11-1所示。
第11章 TFT-LCD驱动程序开发
4
图11-1 液晶分子特性
第11章 TFT-LCD驱动程序开发
第11章 TFT-LCD驱动程序开发
15
图11-6 TFT-LCD像素结构
第11章 TFT-LCD驱动程序开发
16
11.1.4 LCD的分类 1. TN -LCD与STN-LCD STN -LCD是TN-LCD的升级产品,两者结构基本相同。TN-
LCD的基本单元和显示原理如图11-2所示,液晶的扭曲角为90°, 而STN-LCD的扭曲角达到180°~360°,提高了液晶的电光响应 速度。如图11-7所示,由于STN-LCD的扫描行电极和寻址列电极 直接连接在液晶像素上进行驱动,因而存在以下几个重要缺陷。
第11章 TFT-LCD驱动程序开发
8
11.1.3 LCD驱动原理 1. 直接驱动法 1) 静态驱动 静态驱动是指在液晶像素前后电极上施加电压信号时呈显
示状态,不施加电压时呈非显示状态。以图11-3所示笔段式LCD 为例,11-3(a)是笔段式液晶的电极排列方式,11-3(b)是其中 一个液晶像素的驱动电路原理图。
第11章 TFT-LCD驱动程序开发
20
表 11-1 STN-LCD 与 TFT-LCD 的性能比较
性能参数
STN-LCD
TFT-LCD
色彩
伪彩
真彩
响应时间
150 ms以上
5~100 ms
分辨率
320 ×240~800 ×600
320 ×240~1600 ×1200
第11章 TFT-LCD驱动程序开发
度称为扭曲角,如图11-2所示。
第11章 TFT-LCD驱动程序开发
6
图11-2 液晶的电光效应
第11章 TFT-LCD驱动程序开发
7
2. 液晶的显示原理 液晶显示器是将液晶置于两片导电玻璃之间,靠两个电极 间电场的驱动引起液晶分子扭曲向列的电光效应。在电源的关 开之间控制光源透射或遮蔽,产生明暗两种效果。如图11-2所 示,在玻璃电极板上装有配向膜,所以液晶会沿着沟槽配向, 由于玻璃基板配向膜沟槽偏离90°,所以液晶分子成为扭转型。
第11章 TFT-LCD驱动程序开发
1
第11章 TFT-LCD驱动程序开发
11.1 TFT-LCD工作原理 11.2 LQ080V3DG01液晶屏 11.3 SC2410内部LCD控制器 11.4 Linux驱动程序接口——FrameBuffer 11.5 LCD驱动程序主要代码结构以及关键
代码分析 11.6 LCD驱动程序开发实例 本章小结
第11-3 笔段式LCD的静态驱动
第11章 TFT-LCD驱动程序开发
10
在COM端施加一个占空比为1/2的连续方波。当控制信号为
高电平时,笔段波形与COM波形反向,液晶像素上施加了一个周
期电压,液晶像素呈显示状态;当控制信号为低电平时,笔段
波形与COM波形同向,液晶像素上无电压,呈非显示状态。控制
21
11.2 LQ080V3DG01液晶屏
LQ080V3DG01芯片是由日本夏普公司生产的TFT-LCD,其外 型尺寸为182 mm × 140 mm × 14 mm,尺寸为8寸,分辨率为 640 × 480,工作温度为0℃~+70℃,背光类型为1xccfl,显 示颜色为262 k,对比度为250∶1,亮度为380 cd/m2, 接口类 型为TTL,响应时间为 80 ms,供压3.3 V/5 V,功耗6.2 W。
时序如图11-4所示。
第11章 TFT-LCD驱动程序开发
11
图11-4 笔段式LCD的静态驱动时序图
第11章 TFT-LCD驱动程序开发
12
2) 动态驱动
当LCD的像素数增多的,笔段式LCD的结构和驱动方法就变
得都不合理了。对于多像素LCD,即点阵式LCD,采用矩阵式排
列液晶像素的前后电极,行、列的交叉点为液晶像素,如图11-
5
1. 液晶的光电特性
液晶分子结构为各向异性,所以液晶的光电特性因方向不 同而有所差异,也就是液晶分子在介电系数及折射系数等光电
特性都具有各向异性,利用这些性质可以改变入射光的强度, 形成灰阶,制作显示器。液晶分子的电光效应最显著的是扭曲
向列效应。在不同电流电场作用下,液晶分子会规则旋转90° 排列。当偏振光通过液晶时,偏振角发生变化,这个变化的角
第11章 TFT-LCD驱动程序开发
17
图11-7 STN-LCD结构图
第11章 TFT-LCD驱动程序开发
18
1) 分辨率低 2) 色彩少,无真彩显示 3) 响应速度慢
第11章 TFT-LCD驱动程序开发
19
2. TFT-LCD TFT-LCD的响应速度取决于TFT的开关速度,与液晶像素的 充放电速度无关,所以TFT-LCD的响应速度远快于STN-LCD,可 以无拖影地显示动态图像。STN-LCD与TFT-LCD分属于LCD的低端 和高端,性能比较如表11-1所示。
5所示。
第11章 TFT-LCD驱动程序开发
13
图11-5 点阵式LCD的结构图
第11章 TFT-LCD驱动程序开发
14
2. 有源驱动法 为了进一步提高显示质量,TFT-LCD以其分辨率高、响应速 度快和色彩丰富等优点正逐渐取代STN-LCD。如图11-6所示, TFT-LCD的每个像素上集成了一个有源器件——薄膜晶体管 (TFT),对TFT-LCD的驱动实际上是对每个像素点上的TFT的驱动, 而非直接驱动法将驱动信号直接施加到液晶像素上,因此,称 TFT-LCD的驱动为有源驱动法。
相关文档
最新文档