文章来源:星嵌电子
Xilinx纯FPGA芯片开发时,使用Xilinx Vivado调试软件,通过JTAG仿真器查看硬件特性,可以获得当前FPGA启动模式,类似如下图所示的那样:
在Xilinx Zynq SoC开发中,我们可以通过Xilinx SDK读取寄存器的方式来获取Zynq SoC芯片当前的启动模式。
启动模式寄存器归到系统控制寄存器组别里面,其基地址为0xF800_0000 + 0x0000_025C,即0xF800_025C,寄存器名字为BOOT_MODE,如下图所示:
启动模式寄存器BOOT_MODE具体定义如下图所示:
下面介绍使用Xilinx SDK软件查看当前Zynq SoC启动模式的步骤。
用户先建一个包含PS IP核的Vivado硬件工程(最简系统即可),然后基于这个硬件工程导出硬件描述文件,并在该Vivado工程界面Launch打开Xilinx SDK软件,随便新建一个App应用工程,比如Hello World模板工程。
编译Xilinx SDK App应用工程,然后进入调式模式,如下图所示,点击Run->Debug:
在Xilinx SDK调试界面,打开Memory视窗:
在Memory窗口,添加要查看的内存地址。前面我们已经知道启动模式寄存器基地址为0xF800_025C,那么就添加0xF800_025C地址,查看该地址空间的内容,如下示例所示:
上面示例显示0xF800_025C 寄存器当前值为0x0000_0005,即启动模式寄存器BOOT_MODE[3:0]=0x5=”0101”,详细到具体位的值,则BOOT_MODE[3]=0、BOOT_MODE[2]=1、BOOT_MODE[1]=0、BOOT_MODE[0]=1。对照下图所示BOOT_MODE各bit位的值与各启动模式之间的关系,我们知道当前启动模式为SD卡启动模式: