Xilinx XAPP482 MicroBlaze Platform Flash/PROM 引导加载器和用户 ...
Xilinx XAPP482 MicroBlaze Platform Flash/PROM 引导加载器和用户 ...
Xilinx XAPP482 MicroBlaze Platform Flash/PROM 引导加载器和用户 ...
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 日