基于ARM的嵌入式一般流程概括.docx

上传人:h**** 文档编号:126824 上传时间:2018-07-09 格式:DOCX 页数:16 大小:1.42MB
下载 相关 举报
基于ARM的嵌入式一般流程概括.docx_第1页
第1页 / 共16页
基于ARM的嵌入式一般流程概括.docx_第2页
第2页 / 共16页
基于ARM的嵌入式一般流程概括.docx_第3页
第3页 / 共16页
基于ARM的嵌入式一般流程概括.docx_第4页
第4页 / 共16页
基于ARM的嵌入式一般流程概括.docx_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、1 第一章 嵌入式开发概述 1.什么是嵌入式系统: 嵌入式系统就是指以应用为中心,以计算机技术为基础,软硬件可裁剪,适合应用系统对功能、可靠性、成本、体积、功耗等 (严格 )要求的一种专用计算机系统。 手机、洗衣机、高端武器 2.嵌入式系统 特点和应用领域 : 它一般由以下几部分组成 : 1) 嵌入式微处理器 2) 外围硬件设备 3) 嵌入式操作系统 4) 特定的应用程序 其特点为: 专用、灵活性、小巧轻便、成本低、功耗低、效率高 其只要应用领域为: 常见的一些嵌入式产品主要有如下产品: 网络设备 : 交换机、路由器 消费电子 : 手机、 MP3、 PDA 、可视电话、电视机顶盒、数字电视、数

2、码照相机、数码摄像机、信息家电 办公设备 : 打印机、传真机、扫描仪 汽车电子 : ABS(防死锁刹车系统 )、车载 GPS。 其他设备 : 自动售货机、 ATM 2 3. 嵌入式系统的历史和前景: 20 世纪 70 年代:单片机出现 20 世纪 80 年代:嵌入式操作系统出现 20 世纪 90 年代:实时多任务操作系统 随着计算机技术、互联网技术及纳米微电子技术的突破,将来我们接触的每一样东西都将装有芯片和嵌入式软件,所以嵌入式系统存在着巨大的商机;计算机产业是垄断,但是可以应用于各种不同应用领域的嵌入式系统是不可能被垄断的,所以留给各个行业的中小规模高技术公司的创新余地很大 4. 嵌入式系

3、统的构架: 嵌入式一般有以下几部分组成: 1) 嵌入式微处理器 2) 外围硬件设备 3) 嵌入式操作系统 4) 特定的应用程序 5. 嵌入式处理器: 嵌入式处理器主要有以下三种: 1) ARM (ARM 公司 2) PowePC (Motorola 公司 ) 3) MIPS (MIPS 公司 ) arm 就是该公司设计的嵌入式微处理器核心, arm 后面的数字越大越高级,卖给了 Intel公司之后 intel 公司在此基础上又融合了一些新的设计,就出现了 strongarm, xscale 等。 3 我们上课的开发板是三星公司生产的 S3c2410,其核心处理器是 arm9。 ARM 现有的系

4、统构架有 ARM7, ARM9,ARM11。 6. 嵌入式系统: 在嵌入式系统中流行的操作系统有很多。比较有名的是 wince, linux、 uclinux、 linux的 ecos、 ucos、 palm、 vxworks、 qnx 等。由于 linux 免费且公开源代码,成为了大家的首选。uclinux 跟 linux 的区别: uclinux 不带 mmu(内存管理单元),所以 uclinux 使用在那些不带mmu 功能的处理器芯片里,如 s3c44x0。 7. 嵌入式开发: 开发板就是以 ARM 处理器为核心,添加了一些外围资源,比如说 ROM、 RAM、 USB 口、LCD 液晶显

5、示屏、 LED 灯等等,其实跟一台 PC 机差不多。实验室常见的有:三星的 smdk2410和 Intel 的 Sitsang smdk2410 的处理器是三星公司 s3c2410, 200M 的主频, 32MB 的 RAM, 32MB的 ROM。 而我们使用的开发板是 北京博创公司的 up-netarm2410-s 开发平台 。 8. 嵌入式开发 流程: 嵌入式开发,我们一般都是在 PC 上写好程序,然后交叉编译生成可执行文件,通过数据线(如串口线、网线)下载到 ARM 开发板上运行。实际运行在开发板上进行,成功后,对开发板进行裁减。一些没有用到的硬件就可以不用了。画 PCB 板,制版,移植

6、软件,成品。 4 宿主机(开发平台) 目标机(运行平台 ) 宿主机采用 Linux 系统( RedHat 6.0) 目标板采用修剪过的 Linux 嵌入式系统。串口线通常用于在烧写系统用,网线用于传输应用程序用。 9.宿主机 LINUX 简介: Linux 是一个网络操作系统。它是由以 Linus Torvalds 为首的一批 Internet 上的志愿者开发的,完全免费,并与另一著名的网络操作系统 UNIX 完全兼容,是一个具有很高性能价格比的可剪裁的网络操作系统。 Linux 的版本号又分为两部分:内核( Kernel)版本和发行( Distribution)版本。内核版本号由 3 个数字

7、组成: r, x, y。 r:主版本号 ; x:偶数(稳定版本)奇数(测试版本) ; y:错误修补的次数 。 Linux 体系结构如下图:Shell:直接与系统内核进行交互,无语编译的语言,执行速度快,往往在 Windows 中需要就百行程序代码的操作,只需要简简单单的几个 shell 命令就行了。 5 Linux 的发行版本很多,其中商业版本是需要购买的,但是大部分的 Linux 是非商业的,也就是说其不需要购买,用户只需要下载镜像文件,刻录成光盘,然后安装系统就可以了。 值得注意的是 Linux 的文件系统与我们常用的 WINDOWS 文件系统有着千差万别,他只有一个根目录。下面节解释 L

8、inux 中各个目录的重要意义: 1) /:即文系统的根目录。包含所有的其他目录。 2) /bin: 常用命令的执行规则的存放地 3) / boot:系统启动时的内核文件和信息文件 4) / dev: linux 把外设都看成文件,对文件操作就是对外设操作 5) / etc:系统的配置文件,修改这些文件 即修改系统的配置 6) / home:普通用户的根目录,用户的数据一般都放在这里 7) / lib:存放系统启动时用到的链接库文件 8) / mnt:额外系统文件的安装目录,如软驱和光驱的挂载地 9) / proc:通过查看该目录里的文件可以了解系统的运行状况 10) / root: root

9、 用户的主目录,一般用户没有将进入的权限 11) / sbin:超级用户命令的执行规则存放地,普通的不能执行 6 12) / tmp:临时文件存放地,和 windows 一样 13) / usr:存放不需要修改的应用程序、文档等,占空间最大 10.宿主机 LINUX 简介: 目标也采用 Linux 系统,是常用的 Linux 系统的阉割版。当然你也可以采用例如Wince 等其他系统,但是 Wince 的内核是 Microsoft 独立拥有的,你想剪裁成自己想拥有,且体积不用那么大的内核是很难的,所以嵌入式多采用 Linux,其开源,内核可裁剪的特性是其他嵌入式系统所不能拥有的。 Linux 做

10、嵌入式的优势,首先, Linux 是开放源代码的,不存在黑箱技术,遍布全球的众多 Linux 爱好者。 Linux 开发者的强大技术支持;其次, Linux 的内核小、效率高,内核的更新 嵌入式 linux 速度很快 ,linux 是可以定制的,其系统内核最小只有约 134KB。 Linux 是免费的 OS,在价格上极具竞争力。 Linux 还有着嵌入式操作系统所需要的很多特色,突出的就是 Linux 适应于多种 CPU 和多种硬件平台,是一个跨平台的系统。到目前为止,它可以支持二三十种 CPU。而且性能稳定,裁剪性很好,开发和使用都很容易。很多 CPU 包括家电业芯片,都开始做 Linux

11、的平台移植工作。移植的速度远远超过 Java 的开发环境。也就是说,如果今天用 Linux 环境开发产品,那么将来换 CPU 就不会遇到困扰。同时, Linux 内 核的结构在网络方面是非常完整的, Linux 对网络中最常用的 TCP/IP 协议有最完备的支持。提供了包括十兆、百兆、千兆的以太网络,以及无线网络, Toker ring(令牌环网 )、光纤甚至卫星的支持。所以 Linux 很适于做信息家电的开发。 还有使用 Linux 为的是来开发无线连接产品的开发者越来越多。 Linux 在快速增长的无线连接应用主场中有一个非常重要的优势,就是有足够快的开发速度。这是因为 LInux 有很多

12、工具,并且 Linux 为众多程序员所熟悉。因此,我们要在嵌入式系统中使用 Linux 操作系统。 Linux 的大小适合嵌入式操作系统 Linux 固有的模块性,适应性和可配置性,使得这很容易做到。另外, Linux 源码的实用性和成千上万的程序员热切期望它用于无数的嵌入式应用软件中,导致很多嵌入式 Linux 的出现,包括: Embedix, ETLinux, LEM, Linux Router Project, LOAF, uCLinux, muLinux, ThinLinux, FirePlug, Linux 和 PizzaBox Linux 相比微软, Linux 的图形界面发展很快

13、,像 GNOME,KDE,UTITY 等都是很优秀 的桌面管理器,并且其背后有着众多的社团支持,可定制性强,已经在 Unix 和 Linux 世界普及开来。 7 第二章 宿主机系统开发环境建立 1 RedHat6.0 系统建立 在 XP 系统下通过 VM 虚拟机来安装 RedHat6.0 系统。 1) 安装 VM 虚拟机:在网上下载 VM7.0 绿色版版本的虚拟机,解压到 XP 中即可使用。 2) 到网上下载 RedHat6.0 桌面版,通过虚拟机安装到 XP 环境下。( 安装步骤网上都可以搜到,很容易实现 )。注意事项:在选择网络连接的时候,要选择与 桥接模式,而不要选择 NAT 模式。 3

14、) 安装 VMtools: VMtool 是虚拟机中虚拟系统与现实系统之间交互的工具,安装VMtools 后,其更容易与本地计算机进行交互。 用户可以从物理主机直接往虚拟机里面拖文件。而且鼠标进入虚拟机后可以直接出来,不安装的话要按CTRL+ALT 才可以释放鼠标。另外会自动安装声卡驱动等等。 首先到网上下载对应版本的 VMtools, 注意是 LINUX 版本,而不是 Windows 版本 , 下载后通过虚拟机的虚拟光驱挂在到 LINUX 中,解压到 Linux 桌面。然后,打开文件夹,查找有没有 install.pl 的文件,这是 VMtools 安装的脚本文件。他的执行需要有可执行的权限

15、,使用终端,输入 chomd +x install.pl(终端切换到 该 文件夹 ),然后继续键入 ./install.pl 来完成安装。 通过以上不步骤即可完成 Redhat6.0 以及 VMtools 的安装。 XP 与 Linux 之间的文件传输方案有以下几种: 1) 利用 VM 虚拟机传入 ,在 VM 设置中有一个共享文件夹。 2) 利用 VMTools,可以直接将文件从 XP 中拖拽到 LINUX 中 3) 利用 Xmanger 中的 Xshell 与 Linux 进行交互,通过其中的文件传送功能,来传送文件到 Linux( 推荐 ) 宿主机 Linux 的 C/C+编译 环境建立

16、安装好的 Linux如果 是不包含 g+编译器或者是 build-essential(包含 C和 C+头文件库 )。可以到晚上下载对应的 RPM 包安装到系统。 通过编写一个简单的 C/C+程序,例如 hello.cpp,在终端 cd 到源程序文件夹,键入 g+ hello.cpp o hello 来检查是否安装好编译器和 build-essential 2 宿主机 Linux 的 交叉编译器安装 安装交叉编译器。所谓的交叉编译器就是 简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构( Architecture)、操作系统( Ope

17、rating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的 x86 Linux平台实际上是 Intel x86 体系结构和 Linux for x86 操作系统的统称;而 x86 WinNT 平台实际上是 Intel x86 体系结构和 Windows NT for x86 操作系统的简称。 有时 是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器

18、。 交叉编译器安装主要有两种发法: 1) arm-linux-gcc:利用 nfs 或者文件夹共享,将配好的 redhat linux 中 opt/crosstools8 文件夹考到本地 linux 中 opt 目录下 , 修改 /root/.bash_profile 文件或者利用共享覆盖( PATH=$path:$home/bin/:),注销登录。 2) armv4l-unknown-linux-gcc: 拷贝 armv4l-unknown-linux-gcc 的安装包, tar zvjx来解压缩安装包,在安装的文件夹下,利用终端安装 ./install.sh,然后利用方法 1 中来修改/r

19、oot/.bash_profile 文件 。 第三章 目标机最小系统的建立和安装 目标机中的 Linux 的运行离不开三个主要的核心,首先是 bootloader,然后是 kernel,最后是 filesystem,且这个次序是不可以更改的。 在建立目标机环境之前,我 们 要了解如何与目标板进行交互,以及如何目标机之间进行文件传输。 交互方案 : 1) 利用 XP 自带的超级终端来进行交互,其要就宿主机和目标级之间利用串口连接,然后在超级终端建立过程中注意以下设置 ,第一端口号要选择 115200,硬件要选择无 。 2) 利用软件 xshell 进行交互, xshell 是 Xmanger 中

20、的一部分功能,其功能类似超级终端,而且他可以利用其带有的一个小功能实现 xp 和 Linux 系统之间的文件传输。 3) 通过在虚拟机的 LINUX 中设置 NFS 服务器,在目标机中使用 mount 来挂在这个文件夹。 eg:宿主机 IP:192.168.1.61 目标机 IP: 192.168.1.71,在 linux 中配置NFS 服务器,然后 service nfs restart。通过 xshell 与目标机交互,然后输入 mount 192.168.1.61:/XXX/XXX(共享文件夹 ) /mnt/nfs 1 bootloader 建立和烧写 基础准备知识: 1) PC 机的引

21、导装载程序: 普通 pc 体结构中,引导装载程序一般分为 BIOS 和操作系统 bootloader 两部分, bios 负责完成硬件的检测和资源分配;而 bootloader 的任务是将操作系统内核从硬盘上读入 RAM 中,然后跳转到内核的入口点,从而启动操作系统。 2) 嵌入式系统的启动 : 由于受硬件资源的限制,通常没有 bios,所以整个系统的加载启动全部由 bootloader 完成。 3) bootloader 的基本概念: Boot Loader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的 软硬件环境带到

22、一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 Bootloader 是一段可执行程序,完成的主要功能是将操作系统搬移到内存中,然后将控制权交给操作系统。9 4) 开放源代码的 Linux 引导程序: U-Boot 已经能够支持 PowerPC、 ARM、 X86、 MIPS 体系结构的上百种开发板,已经成为功能最多、灵活性最强并且开发最积极的开放源码 Bootloader。 在我们所学的课中主要是使用 U-Boot 来实现引导的。 5) bootloader 的结构框架(工作过程) : 大多数 bootloader 都分为两个部分 stage1和 stage2 Stage1:主

23、要作用是基本硬件的初始化,其中包括 屏蔽所有中断 设置 cpu 的 度和时钟频率 RAM 初始化 初始化 LED。 为加载 stage2 准备 RAM 空间,并且为拷贝 stage2内容到 RAM 空间,设置堆栈指针并跳转到 stage2 的 C 入口点。 Stage2: 初始化本阶段要使用的硬件设备 ( 如:串口、网卡等,成功驱动后,可以输出一些打印信息。 ), 检测系统的内存映射 , 加载内核映像和根文件系统映像, 设置内核的启动参数 , 调用内核 。 通过 U-Boot 移植适合 s3c2410 的 bootlater: 通常, Boot Loader 是严重地依赖于硬件而实现的,特别是

24、在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对Boot Loader 归纳出一些通用的概念来,以指导用户特定的 Boot Loader 设计与实现。 U-Boot 已经能够支持 PowerPC、 ARM、 X86、 MIPS 体系结构的上百种开发板,已经成为功能最多、灵活性最强并且开发最积极的开放源码 Bootloader 为我们的开发板建立 bootloader 可移植文件,开发板名字为: up2410,其主要的移植过程大致有以下几步: 1、修改 Makefile 文件 , 2、建立板级支持包 , 3、建立配置文件(修改)

25、, 4、修改源文件支持从 nand 启动 , 5、编译生成 u-boot.bin。 (其详细内容参见实验指导书) 10 Bootloader 的烧写 : 一个编译好的 bootloader 叫做 VIVI,一个空白的开发板是没有任何程序的,没有Bootloader,没有内核,也没有文件系统,所以他只能通过并口线来烧写 VIVI。其过程如下:把并口线插到 pc 机的并口,并把并口与 JTAG 相连, JTAG 与开发板 的 14 针 JTAT 口相连,打开 2410 S. 把整个 GIVEIO 目录 (在 Linux-V6.0img flashvivi目录下)拷贝到 C:WINDOWS 下,并把

26、该目录下的 giveio.sys 文件拷贝到 c:/windows/system32/drivers 下。 在控制面板里,选添加硬件 下一步 选是我已经连接了此硬件 下一步 选中添加新的硬件设备 下一步 选中安装我手动从列表选择的硬件 下一步 选择 显示所有设备 选择从磁盘安装 - 浏览,指定驱动为C:WINDOWSGIVEIOgiveio.inf 文件,点击确定,安装好驱动 在 d 盘新建一目录bootloader,把 sjf2410-s(在 Lin ux-V6.0img flashvivi 目录下)和要烧写的 vivi 拷贝到该目录下,在程序附件 msdos 下,进入该目录,运行 sjf2410-s 命令如下: sjf2410-s /f:vivi 在此后出现的三次要求输入参数,第一次是让选择 Flash,选 0;第二次是选择 jtag 对 flash的两种功能 ,也选 0;第三次是让选择起始地址,选 0 此后就等待大约 3 5 分钟的烧写时间,当 VIVI 烧写完毕后选择参数 2,退出烧写。 2 内核 建立和烧写 内核简介: 内核是所有 linux 系统的中心软件组件。嵌入式领域所说的 linux,一般是指 linux 内核。移植也是指的是移植 linux 内核到目标平台。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。