Nios_II的Boot过程分析论文.doc

Nios_II的Boot过程分析论文.doc

ID:61032543

大小:239.50 KB

页数:36页

时间:2021-01-20

Nios_II的Boot过程分析论文.doc_第1页
Nios_II的Boot过程分析论文.doc_第2页
Nios_II的Boot过程分析论文.doc_第3页
Nios_II的Boot过程分析论文.doc_第4页
Nios_II的Boot过程分析论文.doc_第5页
资源描述:

《Nios_II的Boot过程分析论文.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、12几种常见的boot方式12.1从EPCS串行存贮器中boot12.2从外部CFI并行flash中boot13从EPCS中boot13.1EPCS控制器的bootloader分析23.2EPCS控制器33.3EPCS串行存贮器件54从并行flash中boot54.1并行flash配置控制器54.2直接在Flash中运行程序54.3在RAM中运行程序65Bootloader解读75.1boot_loader.s解读85.2boot_loader_epcs_bits.s解读105.3boot_loader_cfi_bits.s解读216Crt0.s解读2

2、31         概述NiosII的boot过程要经历两个过程。1.        FPGA器件本身的配置过程。FPGA器件在外部配置控制器或自身携带的配置控制器的控制下配置FPGA的内部逻辑。如果内部逻辑中使用了NiosII,则配置完成的FPGA中包含有NiosII软核CPU。2.        NiosII本身的引导过程。一旦FPGA配置成功后,NiosII就被逻辑中的复位电路复位,从reset地址开始执行代码。NiosII的reset地址可以在SOPCbuilder的“NiosIIMore‘CPU’setting”页表中设置。2       

3、  几种常见的boot方式2.1        从EPCS串行存贮器中boot这种boot方式,FPGA的配置数据和NiosII的程序都存放在EPCS器件中。FPGA配置数据放在最前面,程序放在后面,程序可能有多个段,每个段前面都插有一个“程序记录”。一个“程序记录”由2个32位的数据构成,一个是32位的整数,另一个是32位的地址,分别用于表示程序段本身的长度和程序段的运行时地址。这个“程序记录”用于帮助bootloader把各个程序段搬到程序执行时真正的位置。EPCS是串行存贮器,NiosII不能直接从EPCS中执行程序,它实际上是执行EPCS控制器

4、的片内ROM的代码(即bootloader),把EPCS中程序的搬到RAM中执行。2.2        从外部CFI并行flash中boot这种boot方式还可以分为2种情况。1.        程序直接在flash中运行。这种情况程序不需要另外的bootloader,NiosII复位时reset地址(指向flash内部)开始执行程序,程序必须有启动代码用于搬移.rwdata段(因为.rwdata段是可读写的不能存放在flash中),同时如果.RODATA段和.EXCEPTIONS段连接时没有指定在flash中话(比如在RAM中),也会被搬到RAM中,

5、并对.bss段清零,设置栈的指针。这些工作都在Crt0.s中完成。2.        程序在RAM(包括On-chipRam,SDRAM,SSRAM…泛指一般的RAM)中运行。这种情况需要有一个专门的bootloader,它把存放在flash中的各个程序段搬到程序执行时各个段真正的位置。3         从EPCS中boot要支持NiosII从EPCS中boot首先要求FPGA器件要支持主动串行配置。Altera的Cyclone,CycloneII和StratixII系列的FPGA支持主动串行配置。直到NiosII5.1版本,NiosII从EPCS中

6、boot在StratixII系列的FPGA上实现上仍有问题。所以这种方式主要用于Cyclone和CycloneII系列的器件。为了实现这种boot方式,用户必须在SOPCbuilder中添加一个EPCS控制器,无须给它分配管腿,QuartusII会自动给它分配到专用管腿上。添完EPCS控制器后,SOPCbuilder会给它分配一个baseaddress,这个地址是EPCS控制器本身携带的片上ROM在NiosII系统中的基地址,这个ROM存有一小段bootloader代码,用于引导整个过程。所以,必须在SOPCbuilder的“NiosIIMore‘CP

7、U’setting”页表中把reset地址设置为这个基地址,使得NiosII复位后从这个地址开始执行以完成整个引导过程。3.1        EPCS控制器的bootloader分析EPCS控制器带有一块片内ROM,内有Bootloader代码,NiosII就靠这段代码完成boot过程。它把EPCS里的NiosII程序映象复制到RAM中,然后跳转到RAM中运行。由于程序映象是由elf2flash输出的,bootloader对被搬运的程序映象的位置和结构的解读必须和elf2flash工具一致。FPGA的配置数据从EPCS偏移为0的地址开始存放,紧挨着配置

8、数据后面是一个32位的整数,指示程序段的长度,接着是一个32位的地址,指示程序执行时该程序段的

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

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

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