基于atlys开发板的bootloader程序代码分析.docx

ID:57643278

大小:1020.81 KB

页数:21页

时间:2020-08-29

基于atlys开发板的bootloader程序代码分析.docx_第1页
基于atlys开发板的bootloader程序代码分析.docx_第2页
基于atlys开发板的bootloader程序代码分析.docx_第3页
基于atlys开发板的bootloader程序代码分析.docx_第4页
基于atlys开发板的bootloader程序代码分析.docx_第5页
资源描述:

《基于atlys开发板的bootloader程序代码分析.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验二:bootloader引导程序一、Bootloader的原理先来说明一下什么是Bootloader。简单地说,BootLoader就是在应用程序运行之前运行的一段小程序。系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。通过这段小程序,我们可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为调用应用程序准备好正确的环境,并同时提供基本输入、输出系统监控功能和程序调试功能。在我们Atlys的FPGA开发板上,SPIFl

2、ash既用来保存硬件配置文件及Bootloader引导程序还需要用来保存用户的应用程序。在加载阶段,FPGA自动从SPIFlash中读取硬件配置bit文件及Bootloader程序进行配置到片内BRAM中运行。当完成加载后,FPGA内部逻辑启动,通过运行Bootloader程序读取SPIFlash中的用户应用程序,并写到外部DDR2的相应位置,最后Bootloader程序切换指令指针到应用程序开始运行的指定位置,在外部的DDR2中开始执行应用程序。下图给出了本系统中复用SPIFlash嵌入式系统结构图,Bootloader软件程序

3、实现从SPIFlash中复制用户应用程序到DDR2中,然后在DDR2中运行二、Bootloader引导程序的设计工程代码编写之前要求对硬件器件有所了解,主要需要了解FPGA所需要的配置文件空间,还有Flash存储结构。在本Atlys开发板中,SPIFLASH的容量为16M,存储空间为从0x00000到0xFFFFFF。其中Spartan6的配置文件大小为12Mbits,所以配置文件占用SPIFLASH的存储空间为从0x00000到0x17FFFF。剩余的FLASH存储空间用来存放应用程序代码。为了简单起见,在本实验中我们可以把应用

4、程序的代码放置在0x200000到0xFFFFFF的SPIFLASH空间里。因为在本实验里bootloader的主要功能是从SPIFLASH中拷贝应用程序的代码到DDR2SDRAM中,再将地址指针指向内存的应用程序基地址,使其从此处开始运行程序。应用程序是以SREC文件格式存储在SPIFLASH中的,在这里我们首先需要了解一下SREC文件格式。ØSREC文件格式SREC格式是一种FLASH格式的编程文件,全称S—record,SREC格式是Motorola公司制定的一种烧写格式标准。SREC文件是描述地址与数据的文件,以下给出了S

5、REC文件的具体格式.一个完整的MOTOROLAS-Record格式数据包含如下区域:

各字段的意思分别如下::标示记录的类型,该字段占据1-byte。它可以有如下数值:“S0”,“S1”,“S2”,“S3”,“S5”,“S7”,“S8”,“S9”。“S0”--记录描述信息“S1”,“S2”,“S3”--记录存储的数据。这三者的区别在于地址(address)的长度不同,S1为2-byte,S2为3-byte,以及S3为4-byte。“S5”--

6、包含了“S1”,“S2”,“S3”的信息。“S7”,“S8”,“S9”--确定程序的开始地址。这三者的区别也在于(address)的长度不同,S9为2-byte,S8为3-byte,以及S7为4-byte。:标示了数据的长度,确切地说,是

,这三个字段的byte的个数。该字段占据1-byte。
:标示了数据写入的起始地址。该字段的长度取决于的取值。:标示了存储的数据。该字段占据的byte个数可以这样计算:的值–

7、

字段的长度(取值为2、3、4)-1(字段的长度)。:标示校验位,占据1-byte。该数据可以由
的数据累加然后每bit取反获得。我们以一条数据记录格式作为例子:S30A801000930300000000CFS3是记录的格式()。0A是长度(),为十六进制,标识有10个byte。因为两个十六进制才是1-byte,所以801000930300000000CF的长度为10而不是20.换句话说,这数据列应该如此表示:801

8、000930300000000CF。因为type是S3,所以地址(

)占4-byte,因此需要写入的地址为:0x80100093。既然已经知道了地址,那么数据()很显然就是0x0300000000了。最后的1-byte就

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
正文描述:

《基于atlys开发板的bootloader程序代码分析.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验二:bootloader引导程序一、Bootloader的原理先来说明一下什么是Bootloader。简单地说,BootLoader就是在应用程序运行之前运行的一段小程序。系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。通过这段小程序,我们可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为调用应用程序准备好正确的环境,并同时提供基本输入、输出系统监控功能和程序调试功能。在我们Atlys的FPGA开发板上,SPIFl

2、ash既用来保存硬件配置文件及Bootloader引导程序还需要用来保存用户的应用程序。在加载阶段,FPGA自动从SPIFlash中读取硬件配置bit文件及Bootloader程序进行配置到片内BRAM中运行。当完成加载后,FPGA内部逻辑启动,通过运行Bootloader程序读取SPIFlash中的用户应用程序,并写到外部DDR2的相应位置,最后Bootloader程序切换指令指针到应用程序开始运行的指定位置,在外部的DDR2中开始执行应用程序。下图给出了本系统中复用SPIFlash嵌入式系统结构图,Bootloader软件程序

3、实现从SPIFlash中复制用户应用程序到DDR2中,然后在DDR2中运行二、Bootloader引导程序的设计工程代码编写之前要求对硬件器件有所了解,主要需要了解FPGA所需要的配置文件空间,还有Flash存储结构。在本Atlys开发板中,SPIFLASH的容量为16M,存储空间为从0x00000到0xFFFFFF。其中Spartan6的配置文件大小为12Mbits,所以配置文件占用SPIFLASH的存储空间为从0x00000到0x17FFFF。剩余的FLASH存储空间用来存放应用程序代码。为了简单起见,在本实验中我们可以把应用

4、程序的代码放置在0x200000到0xFFFFFF的SPIFLASH空间里。因为在本实验里bootloader的主要功能是从SPIFLASH中拷贝应用程序的代码到DDR2SDRAM中,再将地址指针指向内存的应用程序基地址,使其从此处开始运行程序。应用程序是以SREC文件格式存储在SPIFLASH中的,在这里我们首先需要了解一下SREC文件格式。ØSREC文件格式SREC格式是一种FLASH格式的编程文件,全称S—record,SREC格式是Motorola公司制定的一种烧写格式标准。SREC文件是描述地址与数据的文件,以下给出了S

5、REC文件的具体格式.一个完整的MOTOROLAS-Record格式数据包含如下区域:

显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭