ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:917.11KB ,
资源ID:3841924      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3841924.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于S3C44B0 BootLoader设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于S3C44B0 BootLoader设计.docx

1、基于S3C44B0 BootLoader设计 毕业设计说明书 题 目: 基于S3C44B0 BootLoader设计系 部: 计算机科学系指导教师: X X X专 业: XXXXX班 级: XXXX姓 名: X X学 号: XXXXXX前 言21世纪是嵌入式计算系统时代,人们日常生活和工作中所接触的仪器与设备中,都将嵌入具有强大计算能力的微处理器。据统计,目前每年只有10%20%的微处理器芯片用于台式计算机或笔记本电脑,80%左右的微处理器芯片是为嵌入式计算系统设计和制造的。嵌入式计算系统已广泛地应用到工业控制系统、信息系统、通信设备、医疗仪器、军事设备等众多领域中。尤其是最近几年,嵌入式计算

2、系统不断进入到新的应用领域,如PDA、手持设备、智能电话等。嵌入式系统已经广泛地应用到当今各个领域,与我们的生活息息相关,小到掌上的数字产品,大到汽车、航天飞机。 提到嵌入式系统我们很快会联想到单片机,不错,MCU是最基础和常用的嵌入式系统,但是目前像FPGA、ARM、DSP、MIPS等其他嵌入式系统应用越来越广泛。嵌入式系统与模拟电路或其他功能电路组成的SoC(System on Chip,片上系统)或SiP(System in Package,系统级封装)在手机、机顶盒等功能复杂的产品上的应用也越来越多。嵌入式系统的应用日益广泛,可以说无所不在,其快速发展也极大的丰富、延伸了嵌入式系统的概

3、念。32位ARM处理器已被广泛应用于消费电子产品、无线通信和网络通信等领域。嵌入式系统的启动引导技术是嵌入式开发的一个难点。Boot Loader(启动程序)是嵌入式程序的开头部分,应与应用程序一起固化在ROM中,并首先在系统上运行。写好Boot Loader是设计好嵌入式程序的关键,且正在其上开发其软件的系统依赖于它所执行的操作。Boot Loder的成功与否决定了应用程序的运行环境是否能正确构建,即系统启动成功是应用正确运行的前提。Bootloader本身的功能就是引导与加载内核镜像。如何实现bootloader的基本功能,如何针对基于ARM7的微处理器来实现bootloader,就成为本

4、文的一个基本论题。对于不同的处理器在写Bootloader引导时,会有很多地方不同,所以也没有一个统一的Bootloader引导程序,当然一个Bootloader程序可以支持很多种平台,这样的引导程序叫做UBOOT,前期的引导程序(Bootloader)是一个系统能正常运行的基本,下面我们一起来讨论如何设计一个基于SAMSUNG 公司的S3C44B0X平台的Bootloader程序。目 录第一章 相关知识简介 1.1 嵌入式系统概述 -31.2.1 S3C44B0X介绍-51.2.2 BootLoader介绍 -61.2.3 Boot loader的操作模式 -61.2.4 Boot load

5、er 的任务 -6第二章 开发环境的建立2.1 安装软件下载-72.2 环境搭建-72.3 环境测试-12第三章 Boot Loader的实现3.1 硬件实现 -133.1.1 ARM微处理器体系结构-133.1.2 ARM存储器 -143.1.3 ARM内部寄存器-143.1.4 S3C44B0存储器空间 -153.1.5 S3C44B0硬件上的设置 -163.2 软件实现 -173.2.1 BootLoader实现方案 -17第四章 Boot Loader设计4.1 stage 1设计-194.2 stage 2 设计-244.3 Boot Loader的编译和下载 -26第五章 设计心得

6、 -27参考文献 -28第一章 相关知识简介1.1 嵌入式系统概述根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。嵌入式系统的核心是嵌入

7、式微处理器。嵌入式微处理器一般就具备以下4个特点: 1)对实时任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。 2)具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。 3)可扩展的处理器结构,以能最迅速地开发出满足应用的最高性能的嵌入式微处理器。 4)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,如需要功耗只有mW甚至W级。1.2 S3C44B0X介绍S3C

8、44B0X是Samsung公司生产的一款16/32位RISC处理器,为手持设备和一般应用提供了高性价比和高性能的微控制器解决方案,使用ARM7TDMI内核,最高工作频率可达66MHz,拥有71个多功能I/O,并提供了丰富的内置部件,包括8KB Cache和内部SRAM,LCD控制器,2通道UART,带PWM功能的5通道定时器,8通道10位ADC等。S3C44B0X微处理器不具有MMU,不支持虚拟内存管理和内存保护。S3C44B0X RISC MICROPROCESSOR PRODUCT OVERVIEWINTRODUCTIONSAMSUNGs S3C44B0X 16/32-bit RISC m

9、icroprocessor is designed to provide a cost-effective and high performance micro-controller solution for hand-held devices and general applications. To reduce total system cost, S3C44B0X also provides the following: 8KB cache, optional internal SRAM, LCD controller, 2-channel UART with handshake, 4-

10、channel DMA, System manager (chip select logic, FP/ EDO/SDRAM controller), 5-channel timers with PWM, I/Oports, RTC, 8-channel 10-bit ADC, IIC-BUS interface, IIS-BUS interface, Sync. SIO interface and PLL for clock. The S3C44B0X was developed using a ARM7TDMI core, 0.25 um CMOS standard cells, and a

11、 memory compiler. Its low-power, simple, elegant and fully static design is particularly suitable for cost-sensitive and power sensitiveapplications. Also S3C44B0X adopts a new bus architecture, SAMBA II (SAMSUNG ARM CPU embeddedMicrocontroller Bus Architecture).An outstanding feature of the S3C44B0

12、X is its CPU core, a 16/32-bit ARM7TDMI RISC processor (66MHz) designed by Advanced RISC Machines, Ltd. The architectural enhancements of ARM7TDMI include the Thumb de-compressor, an on-chip ICE breaker debug support, and a 32-bit hardware multiplier. By providing a complete set of common system per

13、ipherals, the S3C44B0X minimizes overall system costs and eliminates the need to configure additional components. The integrated on-chip functions that are described in this document are as follows: 2.5V Static ARM7TDMI CPU core with 8KB cache . (SAMBA II bus architecture up to 66MHz) External memor

14、y controller. (FP/EDO/SDRAM Control, Chip Select logic) LCD controller (up to 256 color DSTN) with 1-ch LCD-dedicated DMA. 2-ch general DMAs / 2-ch peripheral DMAs with external request pins 2-ch UART with handshake(IrDA1.0, 16-byte FIFO) / 1-ch SIO 1-ch multi-master IIC-BUS controller 1-ch IIS-BUS

15、controller 5-ch PWM timers & 1-ch internal timer Watch Dog Timer 71 general purpose I/O ports / 8-ch external interrupt source Power control: Normal, Slow, Idle, and Stop mode 8-ch 10-bit ADC. RTC with calendar function. On-chip clock generator with PLL.hfs3c44b0实物图1.2.1 BootLoader 介绍bootloader就是在操作

16、系统内核运行之前运行的一段代码。类似于WINDOWS中的BIOS程序。通过这段代码可以完成硬件设备的初始化,以及内存空间的映射图的功能,从而把系统的软硬件带到一个合适的状态,为最终调用内核做好准备。 Bootloader严重的依赖于硬件实现,特别是在嵌入式中,所以在嵌入式世界中想建立一个通用的Bootloader几乎是不可能实现的。尽管如此,仍然可以对Bootloader归纳出一些通用的概念来指导用户特定的Bootloader的设计与实现。 1)Bootloader所支持的CPU和嵌入式开发板每种不同的CPU体系结构有不同的Bootloader。有些Bootloader也支持不同体系结构的CP

17、U,如U-boot就支持ARM体系结构和MIPS体系结构。除了依赖CPU的体系结构外,Bootloader实际上也依赖于具体的嵌入式板级设备的配置。 2)Bootloader的安装媒介:系统加电或复位后,所有的CPU通常都从某个由CPU制造商预先安排的地址上取指令。因此在系统加电后,CPU将首先执行Bootloader程序。3) Bootloader的启动过程分为单阶段和多阶段两种。通常多阶段的Bootloader能提供更为复杂的功能,以及更好的可移植性。1.2.3 Boot loader的操作模式 大多数Bootloader都包含两种不同的操作模式:“启动加载”和下载模式,这种区别仅对于开发

18、人员才有意义。 * 启动加载模式:这种模式也称为“自主”模式,也就是Bootloader从目标机上的某个固态的存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入,这种模式是嵌入式产品发布时的通用模式。 *下载模式:在这种模式下,目标机上的Bootloader将通过串口连接或网络连接手段从主机(host)下载文件,如下载内核或者跟文件系统映象等,从主机下载的文件通常首先被Bootloader保存到RAM中,然后被Bootloader写到目标机上的FLASH类固态存储设备中。Bootloader的这种模式是系统在跟新时使用的。工作于这种模式的Bootloader通常会向他的终端用户提

19、供一个简单的命令行接口。1.2.4 Boot loader 的任务stage1通常包括以下步骤 硬件设备初始化 为加载BootLoader的stage2准备RAM空间 拷贝BootLoader的stage2到RAM空间中 设置好堆栈 跳转到stage2的C入口点第二章 开发环境的建立2.1 安装软件下载WINDOWS开发平台1、ADS1.2开发软件:编写程序,编译程序2、JTAG调试工具(利用调试代理软件H-JTAG)3、串口下载工具(超级终端 bin文件格式)4、FLASH烧写工具(H-Flasher)我们找到hfs3c44b0的使用手册,根据手册下载如下所需软件ARM Developer

20、Suite V1.2 Setup(ADS1.2)下载地址:H-JTAG V0.4.4:下载地址:超级终端(Windows系统自带)2.2 环境搭建1)安装ARM Developer Suite V1.2 Setup(ADS1.2)首先解压 ads12setup.zip 文件(在windows 下的编译器下面),然后双击此文件夹下的 SETUP.EXE程序开始安装。安装类型选择 FULL打开License2H-JTAG V0.4.4 安装 至此完成了,开发环境的搭建。2.3 环境测试将目标板和PC机连后,在Windows 下新建一个超级终端,当然也可以在Linux下用minicom,来和目标板通

21、信,超级终端配置如下:然后将ADS自带S3C44B0X的一个LedTest装载到ADS内,点快捷键make,编译无误后,点debug,在AXD内选择目标设备,然后把LEDtest.axf装入到AXD内,进行调试,完成后, 则把可执行文件下载到目标板在超级终端输入loadb 0x0c008000 然后传送文件,利用kermit协议发送,发送完成后,则在超级终端输入 go 0x0c008000 回车,此时,若能看到LED灯循环点亮,并且蜂鸣器鸣叫,则说明,环境搭建好了,可以进入下面的开发。第三章 Boot Loader的实现3.1 硬件实现3.1.1 S3C44B0微处理器体系结构S3C44B0

22、采用ARM7TDMI处理器核, ARM7的特点主要是 低功耗、低成本、高性能1) 具有嵌入式ICE-RT逻辑,调试开发方便 2)极低的功耗 3)能提供0.9MIPS/MHZ的三级流水线结构 4)代码密度高并兼容16位的Thumb指令集3.1.2 ARM存储器 数据类型:字节、半字、字地址空间:最大可寻址空间位4GB(2的32次方字节)大小端格式: 大端格式是字数据的高字节存储在低地址中,低字节存在高地址中 小端格式是低地址中寸的是子数据的低字节,高地址存放的是子数据的高字节处理器模式 :v 7种工作模式3.1.3 ARM内部寄存器ARM 处理器共有37个寄存器,被分为若干个组,这些寄存器包括:

23、31个通用寄存器,包括程序计数器(PC 指针),均为32位的寄存器;6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位。3.1.4 S3C44B0存储器空间 hfS3C44B0只用了两个bank分别是8 M的 SDRAM和2 M的FLASH,S3C44B0各bank 分布如下:SDRM 连接在bank7,而FLASH连接在bank0.硬件连接如下:3.1.5 S3C44B0件上的设置 1.外部提供10 M晶振,连接如下 2.由硬件外置低电平,使用S3C44B0为小端模式连接如下3.2 软件实现 3.2.1 BootLoader实现方案 我们先看一张固态存储设备的典型空间分配图

24、 :v 从固态存储设备上启动的 Boot Loader 大多都是 2 阶段的启动过程 启动过程可以分为 stage 1和 stage 2 两部分 嵌入式系统初始化代码程序一般包含在Bootloader中的第一阶段的代码中,他和嵌入式硬件系统的硬件密切相关,必须由汇编代码来实现。Bootloader就是在操作系统内核运行之前运行的一段程序,相当于PC机上的BIOS。通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,一般为最终调用操作系统内核准备好正确的环境。系统加电或复位后,从地址0x0000 0000处取它的第一条指令,程序完成初始化工作。v B

25、OOTLOADER 两部分分别为1) 汇编部分执行简单的硬件初始化 2) C语言部分负责复制数据,设置启动参数,串口通信等功能v BOOTLOADER的生命周期 1. 初始化硬件,如设置UART(至少设置一个),检测存储器等 2. 设置启动参数,告诉内核硬件的信息,如用哪个启动界面,波特率. 3. 跳转到操作系统的首地址. 4. 消亡 BootLoader 两个部分的具体实现方案如下:stage1通常包括以下步骤 硬件设备初始化 为加载BootLoader的stage2准备RAM空间 拷贝BootLoader的stage2到RAM空间中 设置好堆栈 跳转到stage2的C入口点2.stage2

26、通常包括以下步骤 初始化本阶段要使用到的硬件设备 检测系统内存映射(memorymap) 将kernel映像和根文件系统映像从flash上读到RAM空间中 为内核设置启动参数 调用内核第四章 Boot Loader设计4.1 stage 1设计 硬件设备初始化在BootLoader的第一阶段我们只初始化我们必须要用到的硬件设备,主要有存储器、锁相环、总线宽度、中断相关等,将这些设备控制寄存器进行初始化。存储器初始化 主要设置存储器bank0到bank7的相关数并把它装入到寄器中。以bank0为例参数设置如下:;Bank 0 parameterB0_Tacs EQU 0x0 ;0clkB0_Tcos EQU 0x0 ;0clkB0_Tacc EQU 0x6 ;10clkB0_Tcoh EQU 0x0 ;0clkB0_Tah EQU 0x0 ;0clkB0_Tacp EQU 0x0 ;0clkB0_PMC EQU 0x0 ;normal(1data)存储器参数的数据池如下代码:SMRDATA DATADCD 0x11110090 DCD (B0_Tacs13)+(B0_Tcos11)+(B0_Tacc8)+(B0_Tcoh6)+(B0_Tah4)+(B0_Tacp2)+(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1