Zynq FSBL代码导读

Xilinx Zynq期间对应自动生成的FSBL程序简单介绍,非我原创,在这里分享希望对底层开发调试有帮助。

FSBL代码导读

一、main函数执行之前

FSBL模板的代码是跟ISE的版本有关的,我用的是14.3,内容会比14.2版更多一点,但是基本过程是一样的。

板子上电之后,最先执行的并不是FSBL中的main函数,因为这个时候板子还没有初始化,不具备执行C语言的能力,此时只能执行汇编代码,所执行的代码是由BSP提供的。

我们打开zynq_fsbl_bsp——>ps7_cortexa9_0——>libsrc—

—>standalone_v3_07_a——>src文件夹,里面有一个asm_vector.S文件,这个文件

声明了一个代码段,位于地址0处。开机之后,PS自动执行地址0处的指令,其第一句话就是一个跳转:B _boot。如下:

Zynq FSBL代码导读

于是就跳转到boot.S中执行_boot标号下的代码了,_boot会对系统做初始化,当它执行完后,PS将具备执行C代码的能力,接着在_boot的代码中,再次执行了一个跳转:

Zynq FSBL代码导读

_start标号位于xil.crt0.S中,仍然对系统进行设置,我们看到,第一句话就是跳转到_cpu_init去执行cpu初始化。代码部分截图如下:

Zynq FSBL代码导读

在_start的末尾,BSP终于完成了自己的工作,PS将跳转到main函数开始执行。如下:

Zynq FSBL代码导读

Word文档免费下载Word文档免费下载:Zynq FSBL代码导读 (共6页,当前第1页)

Zynq FSBL代码导读相关文档

最新文档

返回顶部