1、华南师范大学嵌入式系统课程设计报告设计题目:基于 ARM 的嵌入式的电子相框系统专业班级 电路与系统 学 院 物理与电信工程学院 指导教师 熊爱民 姓 名 学 号 2015 年 12 月 25 日基于 ARM 的嵌入式电子相框系统摘要:本设计采用搭载飞思卡尔的 MCIMX28x 芯片的 Esayarm-i.max283A开发板作为目标机,使用安装 Windows 7的 PC机作为宿主机,并在宿主机Windows平台上安装了一个虚拟机软件,虚拟机里安装的是 Ubuntu作为开发环境。并在目标机上移植了 u-boot,linux 内核,根文件系统,构成一个嵌入式linux操作系统,该系统的最大特点
2、就是,可以根据应用需求对软硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求,主要用途就是对软硬件资源的调度与分配。 在搭载了 linux嵌入式系统的目标开发板上,本文设计了一个界面应用程序,该应用程序主要功能为:用户通过对界面的操作就可对数码相框中图片的浏览与管理,以及进行幻灯片播放功能,实现个人图片的掌上管理。关键词:linux 嵌入式系统;周立功开发板;虚拟机环境;移植。目 录1. 61 设计内容 .71.1 设计目的 .71.2 设计意义 .71.3 电子相框的设计任务和要求 82. 周立功开发板的介绍 .92.1Esayarm-i.max283A 开发板 92.1.1 Fre
3、escale 的 MCIMX28x 处理器 .102.1.2SDRAM 存储系统 102.1.3 FLASH 存储系统 112.2基于 Esayarm-i.max283A的开发环境的搭建 .122.2.1 搭建嵌入式交叉开发环境 .123 Linux 内核 .143.1 Linux 系统简介 .143.2 Linux-2.6.29 内核移植到 Esayarm-i.max283A174 电子相框的功能模块以及程序框架 174.1 输入程序框架解析 174.2 显示界面的功能总框架 184.3 电子相框的主流程图 204.4 程序模块介绍 214.4.1 页面规划模块 .214.4.2 调试模块
4、.224.4.3 图片渲染解析模块 .224.4.4 字符解码模块 .234.4.5 显示模块 .245 电子相框的相关驱动移植 .245.1 关于 LCD 驱动的配置 .245.2 关于触摸屏驱动的配置 .256 电子相框的效果演示及功能测试 .256.1 电子相框性能分析方法简述 .256.2 电子相框的效果演示以及功能描述 .267 设计体会 .268 参考文献 .271 设计内容1.1 设计目的1、注重培养综合运用所学知识、独立分析和解决实际问题的能力,培养创新意识和创新能力,并获得科学研究的基础训练。2、了解周立功开发板的硬件环境和丰富的接口资源,掌握对周立功开发板进行Linux内核
5、的移植,裁剪,配置和编译。3、利用周立功开发板,通过软硬件设计实现进行一个可以浏览与管理图片功能的电子相框。1.2 设计意义嵌 入 式 系 统 是 以 应 用 为 中 心 , 以 计 算 机 技 术 为 基 础 , 且 软 硬 件 可 裁 剪 ,适 应 应 用 系 统 对 功 能 、 可 靠 性 、 成 本 、 体 积 、 功 耗 有 严 格 要 求 的 专 用 计 算 机系 统 1。 它 一 般 由 以 下 几 部 分 组 成 : 嵌 入 式 微 处 理 器 、 外 围 硬 件 设 备 、 嵌入 式 操 作 系 统 。 嵌 入 式 系 统 必 须 根 据 应 用 需 求 对 软 硬 件 进
6、行 裁 剪 , 满 足 应 用系 统 的 功 能 、 可 靠 性 、 成 本 、 体 积 等 要 求 。 所 以 , 如 果 能 建 立 相 对 通 用 的 软硬 件 基 础 , 然 后 在 其 上 开 发 出 适 应 各 种 需 要 的 系 统 , 是 一 个 比 较 好 的 发 展 模式 。 基 于 ARM 的 嵌 入 式 系 统 有 诸 多 优 点 是 传 统 电 子 系 统 无 法 比 拟 的 , 利 用 嵌入 式 开 发 本 设 计 可 以 开 发 出 具 有 良 好 的 人 机 交 互 界 面 的 实 时 系 统 , 同 时 嵌 入式 系 统 最 大 的 优 点 就 是 软 硬 件
7、 可 裁 剪 , 依 据 自 己 系 统 的 需 要 可 以 进 行 灵 活 的软 硬 件 设 计 开 发 , 而 且 基 于 ARM 的 嵌 入 式 系 统 开 发 成 本 低 , 而 且 系 统 稳 定 性高 , 功 耗 低 , 体 积 小 , 并 且 能 够 应 用 于 多 种 应 用 场 合 2。另外,作为一个消费类电子产品,电子相框的设计必须考虑以下因素:1、用户接口友好、操作方便。2、系统兼容性强。数码相框应能识别和处理当前数码相机主要的图像格式,能访问主流的外部半导体存储卡。3、稳定可靠。作为数码相机的一种附属产品,电子相框不仅具有传统相框的特点,而且可以直接从数码相机中选择心仪
8、的照片,定时更新照片。电子相框可以摆放在家居显眼之处,成为现代家庭一道靓丽的风景线。1.3 电子相框的设计任务和要求本设计的电子相框系统,实现了图片的查看,图片轮播功能的系统设计,该电子相框系统依靠 ARM处理器和嵌入式 Linux操作系统作为系统平台,同时结合界面应用程序,通过对触摸屏的操作,在 LCD屏幕上显示图谱按,实现了数码相框系统与外界的信息交流,从而在目标板上实现电子相框的基本功能。如图 1.1所示。图 1.1 电子相框系统1、周立功开发板的介绍2.1 Esayarm-i.max283A 开发板Esayarm-i.max283A是一款真正低价实用的 ARM9开发板,EasyARM-
9、i.MX283A 采用 Freescale 的 MCIMX28x 处理器(基于 ARM926EJ-S 内核),具有丰富的硬件资源,提供了完善的 Linux 软件支持包、开发工具和丰富的实用范例,大大降低了 Linux 学习门槛和开发难度 3,可以帮助用户在短期内实现产品功能验证和开发。EasyARM -i.MX283A 的基本接口分布如图 2.1 所示。图 2.1 EasyARM -i.MX283A 开发板其板载 64M SDRAM、128MB SLC NAND FLASH 和 2M Nor Flash,足够本系统使用。该开发板接口十分丰富,含: 1 个主 USB 接口,1 个从 USB 接口
10、 1 个 100M 以太网 RJ-45 口(采用 DM9000 网卡) 1 个 SD/MMC 卡存储接口,3 个串行口 3 个串口,COM0 为 RS232 DB9 接口,COM2 和 COM3 为 2.0mm 间距 标转 JTAG 接口(2.0mm 间距) 1 路立体声音频输出接口(标准 3.5mm 接口),1 路麦克风接口 引出 CPU 内部全部摄像头信号引脚。2.1.1 Freescale 的 MCIMX28x 处理器MCIMX28x 是飞思卡尔公司的一款基于 ARM926EJ-S 内核的高性能、低功耗、高集成度的 32 位微处理器,主频最高可达 454MHz,具有 16KB 指令Cac
11、he 和 16KB 数据 Cache,主要特征如下: 1.2V 内核供电,1.8V/2.5V/3.3V 存储器供电,3.3V 外部 I/O 供电 LCD 控制器(最大支持 4K 色 STN 和 256K 色 TFT),提供 1 通道LCD 专用 DMA 4 通道 DMA,并有外部请求引脚 3 通道 UART 2 通道 SPI 1 通道 IIC-BUS 接口(多主支持) 兼容 SD 主接口协议 1.0 板和 MMC 卡 2.11 兼容版 2 端 USB 主机/1 端口 USB 设备 4 通道 PWM 定时器和 1 通道内部定时器/看门狗定时器 8 通道 10bitADC 和触摸屏接口 具有日历功
12、能的 RTC 130 通用 I/O 口和 24 通道外部中断源 具有普通、慢速、空闲和掉电模式 具有 PLL 片上时钟发生器2.1.2 SDRAM 存储系统Esayarm-i.max283A 使用了两片外接的 32M bytes 总共 64M bytes 的SDRAM 芯片( 型号为: HY57V561620FTP/MT48LC16M16A2),一般称之为内存,它们并接在一起形成 32-bit 的总线数据宽度,这样可以增加访问的速度;因为是并接,故它们都使用了 nGCS6 作为片选,它们的物理起始地址为0x30000000,下面是摘自 Esayarm-i.max283A 原理图中的 SDRAM
13、 部分原理图。图 2.2 SDRAM 存储系统原理图2.1.3 FLASH 存储系统Esayarm-i.max283A 具备两种 Flash,一种是 Nor Flash ,型号为 SST39VF1601(AMD29LV160DB与此引脚兼容) ,大小为 2Mbyte;另一种是 Nand Flash ,型号为 K9F1G08,大小为 128M( 旧版本为 K9F1208 ,大小为 64Mbyte) 。S3C2440 支持这两种 Flash启动系统,通过拨动开关 S2,可以选择从 NOR还是从 NAND 启动系统。 Nand Flash 不具有地址线,它有专门的控制接口与 CPU 相连,数据总线为
14、8-bit ,但这并不意味着 Nand Flash 读写数据会很慢。大部分的优盘或者 SD卡等都是 Nand Flash 制成的设备 4。从下面的原理图可以看出,Nor Flash 采用了 A1-A22总共 22条地址总线和 16条数据总线与 CPU 连接,地址是从 A1开始的,这意味着它每次最小的读写单位是 2-byte ,因此根据原理图,该设计总共可以兼容支持最大 8Mbyte的Nor Flash,实际开发板上只用了 A1-A20条地址线,因为与 A21、A22 相连的SST39V1601 的相应引脚是悬空的。图 2.3 Flash 存储系统原理图2.2 基于 Esayarm-i.max2
15、83A 的开发环境的搭建2.2.1 搭建嵌入式交叉开发环境由 于 嵌 入 式 系 统 资 源 匮 乏 , 一 般 不 能 像 PC 一 样 安 装 本 地 编 译 器 和 调 试器 , 不 能 在 本 地 编 写 、 编 译 和 调 试 自 身 运 行 的 程 序 , 而 需 借 助 其 它 系 统 如PC 来 完 成 这 些 工 作 , 这 样 的 系 统 通 常 被 称 为 宿 主 机 。 本 设 计 宿 主 机 主 要 是 使 用 装 有 ubuntu 的 Linux 操 作 系 统 的 PC 机 , 而目 标 机 就 是 Esayarm-i.max283A 开 发 板 。 组 成 架
16、构 如 图 2.6 所 示 。图 2.6 嵌入式开发交叉环境构架所谓的交叉编译,就是在宿主机平台上使用某种特定的交叉编译器,为某种与宿主机不同平台的目标系统编译程序,得到的程序在目标系统上运行而非在宿主机本地运行,本设计使用的交叉编译器为 arm-linux-gnueabi-gcc,具体安装步骤如下: (1) 解压交叉编译工具: 运行命令 tar xjvf gcc-4.4.4-glibc-2.11.1-multilib-1.0.tar.bz2(2) 在完成解压后,如果不指定交叉编译器的完整路径,系统无法调用交叉编译器,如果不清楚交叉编译器安装的目录,可以看 rm-linux-gnueabi-*
17、这些文件到底在哪个目录。具体全路径引用的方法为:CC=/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-linux-gnueabi/arm-linux-gnueabi-make cross_COMPILE=$CC ARCH=arm uimage2.2.2 安装 SSH 服务器Ssh是 Secure shell的缩写,是建立在应用层和传输层的安全协议,能够有效防止远程管理过程中的信息泄露问题,可以远程进行文件传输,本实验使用的是 windows系统上安装的 Ubuntu的虚拟机,这时就可以将其视为远程系统。(1)在虚拟机上安装 ssh服务器,具体的方法是在
18、 Linux主机输入下面命令:Sudo apt-get install openssh-server(2)测试 ssh服务器,在虚拟机里,VMware 虚拟网卡设置 NAT模式的话,Linux系统网卡设置为动态 IP即可;如果虚拟网卡设置为桥接模式,则需要为 Linux设置一个与 windows系统同一个网段的静态 IP地址。也可以在终端使用 ifconfig命令进行设置: sudo ifconfig eth0 IP地址,只有知道了 Linux主机的 IP地址后才能进行 ssh连接,如果不能确定 IP地址,可以打开终端,用 ifconfig命令进行查看和确认。(3)在 Windows系统下下载
19、并安装一个 ssh secure file transfer client软件,这时就实现了 Windows和虚拟机的 Ubuntu进行文件传输。3 Linux 内核3.1 Linux 系统简介Linux是最受欢迎的自由电脑操作系统内核。它是一个用 C语言写成,符合 POSIX标准的类 Unix操作系统。Linux 最早是由芬兰黑客 Linus Torvalds为尝试在英特尔 x86架构上提供自由免费的类 Unix操作系统而开发的。该计划开始于 1991年,在计划的早期有一些 Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。 技术上说 Linux是一个内核。“内核”指
20、的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于 Linux内核的完整操作系统叫作Linux操作系统,或是 GNU/Linux。图 3.1 Linux系统架构由上图可知 Linux系统构架是由用户空间和内核空间两部分组成,之所以分为两部分主要是为了实现系统稳定性。内核空间和用户空间是程序执行的两种不同状态,通过系统调用和硬件中断能够实现从用户空间到内核空间的转移。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU 和进程管理、虚拟文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。具体如图 3.2
21、所示:图 3.2 Linux内核架构 系统调用接口:SCI 层为用户提供了一套标准的系统调用函数来访问Linux内核,搭起了用户空间到内核空间的桥梁。 进程管理:主要是实现了进程的创建,进程的停止,并控制进程间的相互通信,进程管理还包括进程如何共享 CPU,即进程的调度。 内存管理:主要是实现多个进程安全有序地共享内存。 网络协议栈:主要为 Linux系统提供了丰富的网络协议。 虚拟文件系统:VFS 隐藏了各种文件系统的细节,为文件操作提供统一的接口,如图 3.3所示。 设备驱动:Linux 内核中很多代码都在设备驱动中,它们控制特定的硬件设备。图 3.3 虚拟文件系统提供同一文件接口3.2
22、Linux-2.6.29 内核移植到 Esayarm-i.max283A(1) 首先到 www.kernel.org下载一套没有经过移植的 linux-2.6.29源代码,并解压到相关目录下,进入目录 linux-2.6.29; (2) 对内核根目录下的 Makefile文件进行相应修改,修改 CPU类型为 arm,编译工具改为 arm-linux-,ARCH ?= arm,CROSS_COMPILE ?=arm-linux-; (3) 修改时钟频率: #vi arch/arm/mach-s3c2440/mach-smdk2440.cs3c24xx_init_clocks(12000000);
23、 (4) 修改对 Nand的分区信息。要让内核知道 Nand Flash的分区信息,设置成跟 bootloader一致; (5) 添加 DM9000网卡驱动和其他设备驱动; (6) 用 MCIMX28x的默认配置文件来进行基础配置然后使用 make menuconfig来详细配置; (7) 编译内核。4 电子相框的功能模块以及程序框架程序由输入和界面显示两大程序块构成,输入进程在程序运行时读取触摸屏的数据,主控线程将得到的事件通过 socket 发出处理器进行处理。显示进程主要包括 :放大线程、缩小线程、上一幅图片线程、下一幅图片线程、当前图片线程、主控线程。4.1 输入程序框架解析输入的功能
24、大体可分为模式输入和图片操作输入,然后输入进程得到触摸屏数据,用 socket读取内存的 DMA进行通讯。模式输入程序是要实现电子相框的智能化,以及能对电子相框系统中图片进行管理,这是需要对系统中的头文件以及系统模式的选择进行操作,简单来说,就是要把用户输入信息告诉系统,模式输入模块程序定义了这个功能。模式输入模块程序之间的调用关系如图 4.1所示。图 4.1 输入模式程序框架图4.2 显示界面的功能总框架本文未使用 QT图形用户界面应用程序开发框架,而是直接使用 C语言编写出界面程序。界面功能总框架如图 4.2所示。图 4.2 功能总框架界面功能说明:(1)主界面:在程序的一开始 LCD 显
25、示界面上,有三种模式给用户选择,分别是浏览模式,连播模式,设置模式。根据操作者点击的模式图标将会进入对应的模式。(2)文件浏览模式界面:若点击浏览模式,则进入文件浏览界面,可以看到开发板搭载的根文件系统搭载全部目录,以及系统中的图片,在文件浏览模式中,可以选择的操作方式有:向上,选择,上一页,下一页。(3)图片浏览模式界面:点击图片就可以进入图片浏览模式,在该模式中可以选择的操作有:返回,放大,缩小,上一页,下一页,连播模式。(4)设置模式界面,点击设置图标,就可以进入设置模式,设置模式主要的功能是选择某个目录,以及该目录中所有支持的格式的图片。(5)设置间隔时间:进入模式后,可以通过点击上下
26、箭头进行设置连播图片显示的时间间隔,即每秒显示下一张图片。4.3 电子相框的主流程图当程序启动后,输入进程会调用触摸屏驱动 tslib来操作和读取触摸屏,输入进程会将数据送至显示进程进行显示,显示分为图片显示和文字显示,图片显示调用 libjpeg库,而文字显示则会调用 freetype库,它们调用的则由render.c渲染程序实现。具体的实现的主流程如图 4.3所示:图 4.3电子相框主流程主流程解析:(1)初始化调试通道:本设计可以通过 RS232标准串口连接到 Windows系统下的超级终端 TERA TERM PRO打印初始化信息。(2)分配 5块物理内存:为了更好的用户体验,就应该加
27、快操作的反应速度,所以本设计事先在内存中准备好了下一步要执行的数据,这 5块内存分别存储的数据为:放大图片、缩小图片、下一幅图片、上一幅图片、当前图片。这 5块内存通过 DMA与 LCD的显存进行快速传输数据。所以分配这 5块内存是本设计的有点所在。(3)输入设备:本课程设计的输入设备为电阻触摸屏,输入进程通过调用tslib驱动来读取触摸屏数据。(4)文字字符库:界面文字的显示通过 render.c渲染程序调用 freetype库来实现,freetype 库是一个完全免费开源可移植的字体引擎。(5)图片渲染模块:界面采用的显示格式是 BMP,本设计浏览的图片则只支持JPEG格式,JPEG 是一
28、种压缩图片的格式,显示进程通过调用 libjpeg来实现图片的显示。(6)主界面:在 minicom上运行本设计的最终的可执行程序,运行后会出现主界面,主界面提供三种模式,分别是:浏览模式、连播模式、设置模式。根据用户的操作,会分别进入对应的模式。(7)显示设备:本课程设计是周立功开发板自带的 4.3寸 LCD显示屏。4.4 程序模块介绍本设计采用模块化的思想,将程序分割成不同的功能模块,便于程序的编写,这也是现在最普遍的变成思想,称为面向对象的编程思想。本设计大体分为的程序块为:页面规划模块、调试模块、图片渲染模块、字符解码模块、输入模式模块、显示模块。4.4.1 页面规划模块该模块是由 p
29、age_manager.c分别调用各子程序模块,程序运行后,由page_manager.c调用 main_page.c进行主界面的显示,主界面分别有浏览模式、连播模式、设置模式这三种模式,操作者点击不同的模式,会调用这个目录下不同的子程序,调用的关系如图 4.4.1所示。图 4.4.1 页面规划模块程序4.4.2 调试模块在执行程序时,需要用到超级终端 TERA TERM PRO进行操作目标板,在对程序进行调试,该 minicom超级终端会输出预先设置好的字符。改目录下程序模块之间的调用关系如图 4.4.2所示。图 4.4.2 调试模块程序4.4.3 图片渲染解析模块图片渲染模块的功能是对图片
30、格式的解析和对图片大小的草做,图片格式分为 bmp和 JPEG,bmp 是页面的格式,jpeg 则为浏览的图片支持的格式,这两种格式的选择则由 picfrm_manager.c完成,图片的大小则由 operation.c来完成。具体的图片渲染解析模块则如图 4.4.3所示:图 4.4.3图片渲染解析模块程序4.4.4 字符解码模块字符编码的规则是:英文字符用 ascaii码表示,中文简体用 gbk表示,中文繁体用 big5表示,全世界的字符复杂多样,为了统一又出现了 Unicode码,但由于 Unicode用 3个字节表示每一个字符,这样造成了资源的浪费,比如英文字符用一个字符即可以表示,所以
31、又出现了 UTF-8、UTF-16LE、UTF-16BE 等表示方法既克服了资源浪费的问题又具有唯一性的保障。本程序的之间的调用关系如图 4.4.4所示:图 4.4.4 字符解码模块4.4.5 显示模块显示线程从内存中读取送至 LCD的显存中,输入线程将数据实时更新至内存中。其显示模块目录中的各个程序调用关系如图 4.4.5所示:5 电子相框的相关驱动移植本设计用到的主要驱动有:LCD 显示驱动以及触摸屏驱动,下面详细的解释相关如何进行配置。5.1 关于 LCD 驱动的配置(1)关于 LCD的配置文件:在该开发板提供的 LCD配置文件里的添加如下内容:(A)配置好 LCD控制寄存器 (B)配置
32、 LCD类型为 TFT(C)设置 LCD的宽度和长度(D)配置好 LCD的分辨率以及 bpp参数(2)初始化函数中添加 LCD初始化功能:Static void_init smdk2410_init(void)MCIMX28x_fb_set_platdata( (3)配置内核菜单,是的内核支持 frame buffer在 make menuconfig中选择:support for frame buffer devices(4)编译5.2 关于触摸屏驱动的配置对于触摸屏驱动的设计,本文采用的是基于 Linux本身自带的输入子系统方式设计的,由于设计的代码比较繁杂,所以本文列出其主要的设计方法,
33、主要的设计方法如下:(1)设置输入结果 input_dev:(A)通过设置 struct input_dev的 evdev数组表示能产生 key和 ABS类事件。(B)设置产生 key和 ABS类事件里面的触摸按键事件,X/Y 绝对位移,绝对位移压力事件。(2)硬件操作:(A)ioremap 寄存器(B)设置 AD分频系数和 ADCDLY(C)注册 INT_TS和 AD中断6 电子相框的效果演示及功能测试6.1 电子相框性能分析方法简述本设计是一个能够读取指定位置照片的电子相框,选择自动浏览模式时能够自动播放该目录下的所有照片,选择手动模式能读取操作者在触摸屏上发出的指令,是否能够流畅显示照片
34、,是否能显示主页面和子页面,便可判断该电子相框的性能。6.2 电子相框的效果演示以及功能描述(1)jpeg 图片解析测试Jpeg是一种压缩图片格式,该图片格式具有图片质量好、占用空间小的优点,被广泛采用在图像处理领域,该格式的图片用 libjpeg库的函数进行解析,libjpeg是一种开源的库,能够在网络上直接下载,本设计播放的图片格式全部采用 jpeg格式,如图 6.2.2所示(2)屏幕点击测试:上电之后进入 6.2.3上电之后的主界面,点击相应的图标,应进入相应的模式,如图 6.2.4是点击的浏览模式.图 6.2.3 上电之后的主界面图 6.2.4浏览模式7 设计体会本文设计了一个基于 a
35、rm9 处理器搭载的 Linux 操作系统技术的电子相框系统,设计和分析了电子相框的界面、字符和图片处理、驱动配置、内核移植等,使得电子相框的系统的基本功能得以实现。本设计的结论如下:硬件平台采用了 arm 微处理器的嵌入式平台,其特点是低成本、低能耗、高性能、有效地提高了电子相框的性能,本设计详细的介绍了开发板各个模块的硬件接口电路,详细地论述了嵌入式开发的具体流程。并阐述了 Linux 的基本架构和 Linux 内核的组成。在搭建嵌入式 Linux 系统搭建的环节本文详细论述了 bootloader 的启动流程、驱动的编写、内核的移植配置编译,以及文件系统的相关知识 6。本设计虽然能够实现
36、基本功能,但就实用范畴还是存在许多需要改进的地方: (1)电子相框不支持中文显示。(2)图片显示只支持 jpeg 和 bmp 格式,不支持其他格式的图片。这些都是本设计值得改进的地方。8 参考文献1 华清元嵌入式培训中心,嵌入式 Linux 应用程序开发,北京:人民邮电出版社,20092韦东山.嵌入式 Linux 应用开发完全手册M北京:人民邮电出版社,20083周立功嵌入式 Linux 应用开发完全手册M天津:天津工业出版社,20084 王小强.arm 处理器裸机结构与编程M北京:电子工业出版社,20125 飞思卡尔.MCIMX28x 处理器数据手册.20096任岩松。基于嵌入式 Linux 的多媒体数码相框设计.哈尔滨理工大学.2011