XSCT介绍
XSCT全称叫做Xilinx Software Command-Line Tool
顾名思义是Xilinx提供的软件命令行工具,完整的使用说明可以参考ug1208-xsct-reference-guide
我们平常调试裸机程序都是在Vitis/(2019.2之前是SDK)IDE环境下通过图形菜单的方式间接调用的xsct。在某些特殊的情况,比如需要加载u-boot,这时候就需要手动运行xsct的命令
需要准备的文件
首先在petalinux下编译出以下4个文件
zynqmp_fsbl.elf
pmufw.elf
bl31.elf
u-boot.elf
把他们保存到一个目录,比如c:\debug\test
命令位置
有两种启动方式
第一种是打开vitis,菜单Xilinx里选XSCT Console
第二种是找到安装目录,比如我的目录是c:\Xilinx\Vitis\2019.2\bin
运行以下两行命令,运行结果如下
cd c:\debug\test
c:\Xilinx\Vitis\2019.2\bin\xsdb
1.设置允许Jtag连接到PMU
connect
targets
targets -set -filter {name =~ "PSU"}
mwr 0xffca0038 0x1ff
targets
运行结果如下
寄存器0xffca0038的含义如下,0x1ff就是把bit8-bit0全部置为1
2.加载PMU
targets -set -filter {name =~ "MicroBlaze PMU"}
targets
dow pmufw.elf
con
串口输出
3.加载fsbl
targets -set -filter {name =~ "Cortex-A53 #0"}
rst -processor
dow zynqmp_fsbl.elf
con
stop
串口输出
4.加载bl31
dow bl31.elf
con
stop
5.加载u-boot
dow u-boot.elf
con
到这里u-boot就可以正常运行了
利用脚本减少手动输入
以上步骤虽然能够达到目的,但是要手动输入大量命令,对生产、测试人员来说,使用起来比较困难。我们可以把以上步骤合并成一个tcl脚本,如下,命名为test.tcl
connect
targets
targets -set -filter {name =~ "PSU"}
mwr 0xffca0038 0x1ff
targets
targets -set -filter {name =~ "MicroBlaze PMU"}
targets
dow pmufw.elf
con
targets -set -filter {name =~ "Cortex-A53 #0"}
rst -processor
dow zynqmp_fsbl.elf
con
stop
dow bl31.elf
con
stop
dow u-boot.elf
con
然后只需要在xsdb命令行下输入source test.tcl即可自动执行上面所有的命令