毕业设计(论文)基于SEP3203F50 ARM的开发研究Uboot移植.doc
《毕业设计(论文)基于SEP3203F50 ARM的开发研究Uboot移植.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于SEP3203F50 ARM的开发研究Uboot移植.doc(28页珍藏版)》请在三一办公上搜索。
1、基于SEP3203F50 ARM的开发研究U-boot移植摘 要Bootloader (引导加载程序) 是嵌入式系统CPU 加电后第一个开始运行的代码。在内核映像执行之前完成相关的底层硬件的初始化,建立内存空间的映射图等重要工作,然后为内核提供引导参数,启动内核。嵌入式系统的开发中,移植一个稳定且功能强大的 U-boot 对后续软件的开发至关重要。U-boot (Univers0al Bootloader),是一个功能十分强大的Bootloader ,本文深入研究了U-boot 的工作机理,详细分析了U-boot的源码结构和启动流程,通过串口和JTAG口,将开发板与主机连接,利用调试软件AXD
2、,在主机上实现代码的运行和编译,将目标代码下载到开发板,为嵌入式的后续开发做好准备。关键词 :Bootloader;嵌入式系统;U-boot ;SEP3203F50;移植The development and research onthe SEP3203F50 ARM U-boot transplantAbstract Bootloader(lead and load programme) is the first start running code after the embedded system cpu electrify. It completes rock-bottom hardw
3、ares initialization before execute the kernel image, build memory space and something else important, then provide kernel with lead parameter, and start kernel. In embedded system development,transplant an stable and strong function U-boot is very important for following software development.U-boot
4、(Universal Bootloader), its a powerfui function Bootloader, The article has thoroughly studied the working principle,structure and startup flow of U-boot,through serial interface and JTAG,connect board and computer,use AXD debug,carry out running and debugging of the code,then download target code t
5、o the board,and get ready for empoldering of embedded system .Key words: Bootloader;embedded system;U-boot;SEP3203F50;transplant目 录中文摘要I英文摘要II前 言1第1章 嵌入式系统综述21.1嵌入式系统及其应用开发21.2嵌入式系统的现状及发展前景2第2章 嵌入式系统的启动代码32.1启动代码32.2启动代码的主要作用32.3启动代码相关的硬件信息32.4本系统涉及的硬件信息4第3章 U-boot53.1 U-boot简介53.1.1 U-boot代码的特点分析53
6、.1.2 U-boot支持的主要功能53.2 U-boot的源码结构分析63.3 U-boot的启动流程分析73.3.1 Stage 1(start.s代码结构)73.3.2 stage 2(C语言代码部分)7第4章 U-boot移植94.1 移植前的准备工作94.2 嵌入式开发环境 94.3 U-boot的编译124.3.1 顶层目录下的Makefile124.3.2 开发板配置头文件144.3.3 编译结果144.4 烧写U-boot到Nor Flash154.4.1 烧录代码154.4.2 烧录步骤164.5 移植步骤16结束语19致谢20参考文献21附件22前 言嵌入式系统已经无处不在
7、,从汽车电子、通信设备,到工业控制、医疗仪器,乃至航空航天、国防安全等各行各业,嵌入式系统正日益与人们的日常生活发生越来越紧密的联系。网络设备、移动电话,还有各式各样的手持电子设备,无不是嵌入式系统的成功典范。随着各个应用领域对智能设备的需求迅速增长,嵌入式系统的开发也逐渐成为软硬件领域的研究热点,从而促进了近年来嵌入式系统的研究深度和广度不断增加,这使得更多的开发人员渴望了解嵌入式系统的原理和开发过程。本文针对嵌入式系统的启动代码U-boot,详细地介绍了嵌入式系统开发的概念和应用,U-boot的原理以及移植过程。限于本人的理论水平和实际开发经验,论文当中难免存在一些不足之处,恳请同学和老师
8、批评指正。第1章 嵌入式系统综述1.1嵌入式系统及其应用开发随着信息化技术的发展,嵌入式系统已经成为当前IT产业界一个非常热门的话题。因其高效、低成本、高可靠性、丰富的代码以及应用程序可扩展性、可移植性等一系列优点,目前已越来越成为工业系统和民用系统的主力军,尤其在信息化产品中,越来越多地应用到嵌入式系统的概念。在多数网站和书籍资料中,对嵌入式系统的定义大多是这样的:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可剪裁,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用程序4个部分组成,用
9、于实现对其他设备的控制、监视或管理等功能。1后PC时代是一个真实的阶段,而且是一个可以预测的时代。嵌入式系统就是与这一时代紧密相关的产物,它将拉近人与计算机的距离,形成一个人机和谐的工作与生活环境。从某一个角度来看,嵌入式系统可应用于人类工作与生活的各个领域,具有极其广阔的应用前景。 嵌入式系统在传统的工业控制和商业管理领域已经具有广泛的应用空间,如智能工控设备、 POS/ATM机、IC卡等;在家庭领域更具有广泛的应用潜力,如机顶盒、数字电视、WebTV、网 络冰箱、网络空调等众多消费类和医疗保健类电子设备等;此外还有在多媒体手机、袖珍电 脑、掌上电脑、车载导航器等方面应用,将极大地推动嵌入式
10、技术深入到生活和工作的方方面面。它在娱乐、军事方面的应用潜力也是巨大的,而且是有目共睹的。面对全球嵌入式系统工业化的潮流,适应我国加速知识创新和建立面向21世纪知识经济的需要,必须加强高等院校嵌入式系统的教学,培养高层次、实用型、复合型、国际化的嵌入式系统应用人才,使我国嵌入式系统应用水平获得跨越式发展。1.2嵌入式系统的现状及发展前景目前世界范围内嵌入式系统带来的工业年产值已超过了1万亿美元。据塞迪呼叫中心合作开展的调查显示,目前从事嵌入式领域的开发的公司占到了30%左右,计划从事开发的企业占到了14%。尽管还没有从事该领域开发的公司占到了大多数,但我国国内的嵌入式软件市场已处于整体启动阶段
11、。国内嵌入式软件市场未来的发展重点在于对应用范围的拓展,而手持设备、信息家电和工业控制则是近期市场的三大热点。展望未来,明天的嵌入式系统将会比今天的更便宜、更小巧、更可靠、更高效而且更智能化。现在嵌入式系统正处于高速发展阶段,未来几年,随着嵌入式研究的广度和深度不断增加和越来越多的嵌入式人才的加入,这种发展和竞争将愈演愈烈。2第2章 嵌入式系统的启动代码嵌入式系统大多是功能比较单一和固定的系统,通常并没有像PC机的BIOS那样的固件程序,因此在运行嵌入式操作系统或用户的应用程序之前,必须有专门的启动程序来引导硬件系统进入操作系统或主应用程序,因此整个系统的启动加载任务就完全由启动程序来完成。启
12、动程序完成系统正常运行所必须的简单初始化后把系统控制权交给操作系统或者主应用程序。2.1启动代码简单地说启动程序就是在操作系统内核或用户应用程序运行之前运行的一段小程序,是系统加电后运行的第一段软件代码,其功能和PC机上的BOIS类似。通过运行这段小程序对系统硬件进行初始化,将系统的软硬件环境带到一个由用户定制的特定状态,为加载操作系统或用户应用程序做好准备。系统加电或复位后,所有的CPU通常都从CPU制造商预先安排的地址上取指令。SEP3203F50在复位后从地址0x00000000取它的第一条指令。嵌入式系统通常都有某种类型的固态存储器(如:ROM、EEPROM或FLASH等)被安排这个起
13、始地址上。为了保证系统上电或复位时启动程序首先被加载运行,必须将它存放在固态存储器中的0x00000000处,并在硬件设计中把固态存储器接在CPU的nGCS0处。这样一来在系统加电启动后,CPU将首先执行启动程序。2.2启动代码的主要作用系统上电启动或者复位后,开始从地址0x00000000执行启动程序。首先完成简单的硬件设备初始化,对CPU和内存进行简单的初始化;再将启动代码拷贝到RAM空间运行,之后设置好必要的堆栈。在完成了前面的任务后,启动代码剩余的部分就可以直接使用C语言完成了,此时将启动代码跳转到C语言入口处,接下来初始化系统需要使用的其他硬件设备(串口,网络等),检测系统内存映射,
14、将操作系统内核和根文件系统从Flash读入RAM,为内核设置启动参数,调用内核。32.3 启动代码相关的硬件信息通常启动代码是依赖于硬件而实现的,每种不同的CPU体系结构都有不同的启动程序。对于ARM核CPU而言,不同的CPU制造公司为适应不同功能和用户的需要会在ARM核基础上扩展一系列外围器件,因此ARM核处理器结构一般并不相同,启动代码的编写也有一些区别。除了依赖于CPU的体系结构外,启动程序实际上还依赖于具体的嵌入式系统板级设备的配置。启动程序与系统硬件有关,特别是与系统启动相关的硬件信息。主要有:(1) 设备线宽:即启动设备是16位,还是32位,也就是说系统启动设备硬件上的连接情况,是
15、否是多片设备合并做32位16位设备的。(2) 大小端:ARM核的CPU支持大小端模式,在开发启动程序和选择编译器的时候必须清楚所使用的CPU的相关信息。(3) 时序问题:一般的系统启动时CPU会自动选择慢速访问外部存储器以适合大多数设备。因此编写启动代码时,需要修改CPU相关的寄存器增加取指和存取速度,以提高系统启动速度。(4) 系统RAM情况:需要了解系统所使用的RAM类型,地址情况等信息。另外,开发固件程序和启动代码的时候必须了解清楚电路原理图是必不可少的。42.4本系统涉及的硬件信息SEP3203微控制器是具有自主知识产权的面向无线及多媒体信息终端应用设计的基于ARM7TDMI处理器内核
16、的Soc芯片。SEP3203芯片采用32位RISC处理器微控制器,具有低功耗、低成本的有点,此外SEP3203还提供了完整的通用外设接口,可以满足系统用户的各种需求。GE01的主要特征有:(1) SEP3203F50芯片:采用32位RISC控制器,芯片典型工作频率75MHZ(2) ROM:NAND FLASH/NOR FLASH,支持64MByte NAND FLASH启动(兼容128MByte),支持NOR FLASH启动(容量为2MB)(3) 存储器:2片SDRAM最大支持32MByte寻址(兼容16Byte),1片NOR FLASH(4) RTC输入逻辑,提供32.768KHZ时钟源(5
17、) JTAG独立调试接口第3章 U-boot3.1 U-boot简介U-boot,全称Universal BootLoader,由德国DENX小组开发,并遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT 逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-boot源码的注释中能体现这一点。但是U-boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD,Vxworkers,QNX嵌入式操作系统,其目前主要支持的目标系统是OpenSBD,Net
18、BSD,FreeBSD,4_4BSD,Linux等,这是U-boot中Universal的一层含义,另外一层含义则是U-boot 除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。这两个特点正是U-boot 项目的开发目标,即支持尽可能多的嵌入式处理器和嵌入式操作系统。就目前来看,U-boot对PowerPC系列处理器支持最为丰富,对Linux 的支持最完善。其它系列的处理器和操作系统基本是在2002年11月PPCBOOT改名为U-boot 后逐步扩充的从PPCBOOT向U-boot的顺利过渡,很大程度上归功于U-boot的维
19、护人德国DENX软件工程中心Wolfgone Denk精湛的专业水平和持着不懈的努力。当前,U-boot项目正在他的领军之下,众多有志于开放源码BOOT LOADER移植工作的嵌入式开发人员正如火如荼地将各个不同系列嵌入式处理器的移植工作不断展开和深入,以支持更多的嵌入式操作系统的装载与引导。53.1.1 U-boot代码的特点分析 Linux有许多引导装载程序可用,U-boot是其中被认为最具弹性和功能最强大的引导装载程序。经过研究分析,U-boot代码的特点描述如下: 开放源码; 支持多种嵌入式操作系统内核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS
20、, LynxOS; 支持多个处理器系列,如PowerPC、ARM、x86、MIPS、XScale; 较高的可靠性和稳定性; 高度灵活的功能设置,适合U-boot 调试、操作系统不同引导要求、产品发布等; 丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RLC、键盘等。 较为丰富的开发调试文档与强大的网络技术支持;63.1.2 U-boot支持的主要功能系统引导:支持 NFS 挂载、RAMDISK(压缩或非压缩)形式的根文件系统;支持 NFS挂载、从 FLASH 中引导压缩或非压缩系统内核; 基本辅助功能:强大的操作系统接口功能;可灵活设置、传递多个
21、关键参数给操作系统。适合系统在不同开发阶段的调试要求与产品发布,尤其对Linux支持最为强劲;支持目标板环境参数多种存储方式,如FLASH、NVRAM、EEPROM;CRC32校验,可校验FLASH中内核、RAMDISK镜像文件是否完好;用户可以在不需要ICE的情况下通过串口、以太网、 USB等接口下载数据,并烧录到存储设备中去,这个功能在实际的产品中很实用,尤其是在现场软件升级的时候。设备驱动:串口、SDRAM、FLASH、以太网、LCD、NVRAM、EEPROM、键盘、USB、PCMCIA、PCI、RTC 等驱动支持;上电自检功能:SDRAM、FLASH大小自动检测;SDRAM故障检测;C
22、PU型号; 特殊功能:XIP内核引导;73.2 U-boot的源码结构分析U-boot源码相当复杂,覆盖各种常用的目标板配置。将U-boot源码包解压就可得到全部U-boot源程序,在顶层目录下有18个子目录,分别存放和管理不同的源程序,这些目录中所有存放的文件按其规则,可以分为3类: 第一类目录与处理器体系结构或者开发板硬件直接相关; 第二类目录是一些通用的函数或则驱动程序; 第三类目录是U-boot的应用程序、工具或者文档;board:该目录下为每一种开发板建立了一个子目录,每个子目录里存放与开发板硬件相关的代码(至少包含有一个以开发板型号命名的.c 文件和一个 config.mk文件);
23、要将U-boot移植到自己的目标板上,必须参考这个目录下的内容,比如对Flash以及Flash宽度和大小的定制等就要修改其中的flash.c。common:该目录下包含了U-boot的所有上层代码,即与硬件无关的代码,主要是命令处理、内存管理以及硬件设备的应用等;cpu:该目录和board目录类似的为每款 CPU 建立了一个子目录,子目录中存放了与该款CPU相关的代码,主要是CPU上电后的初始化、cache的配置、中断处理程序、串口函数等;disk:该目录下存放的是文件分区表的处理函数,主要针对IDE、SCIS、USB设备;doc:该目录下存放了U-boot的一些说明文档;drivers:该目
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计论文基于SEP3203F50 ARM的开发研究Uboot移植 毕业设计 论文 基于 SEP3203F50 ARM 开发 研究 Uboot 移植
链接地址:https://www.31ppt.com/p-3979850.html