17.08.2013 Views

Xilinx XAPP482 MicroBlaze Platform Flash/PROM 引导加载器和用户 ...

Xilinx XAPP482 MicroBlaze Platform Flash/PROM 引导加载器和用户 ...

Xilinx XAPP482 MicroBlaze Platform Flash/PROM 引导加载器和用户 ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

R<br />

重新设计复位、异常和中断处理程序<br />

图 10: 用来替换 CRT 文件的编译器修改<br />

X482_12_072704<br />

固件设计<br />

在双软件工程系统中,将软件工程移入 SRAM 之后,您可能希望访问 SRAM 中存储的中断和<br />

异常处理程序。在 <strong>MicroBlaze</strong> 系统中,通常 Block RAM 是映射到 0x0 的存储器,而 SRAM 则<br />

驻留在存储器映射中的其他某个位置。不过,在默认情况下,<strong>MicroBlaze</strong> 系统会在出现某个复<br />

位时跳转到地址 0x0,或者在出现某个中断时跳转到地址 0x10。<strong>MicroBlaze</strong> 的默认处理程序<br />

地址如下:<br />

• 复位:0x0<br />

• 异常:0x8<br />

• 中断:0x10<br />

要解决此问题,可以用汇编语言在默认的 <strong>MicroBlaze</strong> 处理程序处编写跳转例程,以跳转到<br />

SRAM 中软件处理程序的位置,如图 11 所示。获取软件处理程序,然后在 0x0、0x8 或 0x10<br />

处 (分别对应复位、异常和中断处理)插入跳转指令。请注意,这种方法需要动态修改指令,<br />

这对于某些软件设计人员可能是无法接受的;不过,这是保持引导加载器和软件代码分离的一<br />

种解决方法。对于本应用指南中所述方法,其好处是引导加载器不需要对应用软件有任何了解<br />

;不过,如果引导加载器知道中断和异常处理程序在 SRAM 中的位置,则不必在应用软件中动<br />

态修改软件。<br />

10 www.xilinx.com/cn <strong>XAPP482</strong> (v2.0) 2005 年 6 月 27 日

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!