XMD改为XSCT?
XMD是Xilinx处理器的传统命令行调试器。从2018.1开始不再发布,取而代之的是XSDB/XSCT。然而,这不仅仅是名称上的改变——底层架构已经完全改变了,除了connect和targets之外,大多数XSDB命令都类似于XMD。XSCT是XSDB的超集,还包括创建/构建SDK项目的命令等。
在以下网址中,描述一些用例,其中还包括应用程序调试。XSDB/XSCT中的交互式帮助包含每个命令的全部详细信息。
XSCT Use Cases。
我发现XSCT比XMD快得多。以前用XMD烧录BSP和APP文件需要30分钟,而现在用XSCT只需要不到5分钟。
一、怎样烧录开发板?
0. 烧录准备
需要安装Jtag驱动:
然后,使用Jtag和串口工具连接开发板。
打开XSCT 控制台:
1. 启动硬件服务
xsct% connect
attempting to launch hw_server
****** Xilinx hw_server v2018.1
**** Build date : Apr 4 2018-19:32:53
** Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.
...
2. 切换到存放烧录文件的路径
xsct% cd F:/project/debug/project/project_BOOT/new
3. 连接并选择设备
xsct% target
1 APU
2 ARM Cortex-A9 MPCore #0 (Running)
3* ARM Cortex-A9 MPCore #1 (Running)
4 xc7z020
///use rst to stop processor running.
xsct% rst
Info: ARM Cortex-A9 MPCore #1 (target 3) Stopped at 0xffffff34 (Suspended)
Info: ARM Cortex-A9 MPCore #0 (target 2) Stopped at 0x0 (Vector Catch)
xsct% target
1 APU
2 ARM Cortex-A9 MPCore #0 (Vector Catch)
3* ARM Cortex-A9 MPCore #1 (Suspended)
4 xc7z020
///select 2 or 3 are both ok.
xsct% target 2
4. 初始化烧录环境
xsct% source ps7_init.tcl
xsct% ps7_init
5. 下载烧录文件到开发板DDR上
xsct% dow -data BOOT.bin 0x1000000
xsct% dow u-boot.elf
xsct% con
6. 在串口控制台进行烧录
nand erase 0x0 0x600000
nand write 0x1000000 0x0 0x600000
7. 断开连接设备
xsct% disconnect
二、一次性烧写BSP和APP文件
1. 在XSCT 控制台
xsct% cd F:/project/debug (your directory)
xsct% connect; targets; target 2; rst; target 2; source ps7_init.tcl; ps7_init; dow -data BOOT.bin 0x1000000; dow -data uImage 0x3000000; dow -data device_tree.dtb 0x5000000; dow -data uramdisk.image.gz 0x7000000; dow -data project_app.image 0x9000000; dow u-boot.elf; con
注意:我发现如果下载两个或更多的文件到相邻的DDR地址上,当再次从DDR读取时,会得到不完整的文件。因此,存放在DDR的间隔地址上,确保文件数据完整。
2. 在串口uboot控制台
(分区地址取决于设备树规划)
// BOOT.bin
nand erase 0x0 0x600000
nand write 0x1000000 0x0 0x600000
//uImage
nand erase 0x600000 0x580000
nand write 0x3000000 0x600000 0x580000
//device_tree.dtb
nand erase 0xb80000 0x80000
nand write 0x5000000 0xb80000 0x80000
//uramdisk.image.gz
nand erase 0xc00000 0x700000
nand write 0x7000000 0xc00000 0x700000
//project_app.image
nand erase 0x1300000 0x1000000
nand write 0x9000000 0x1300000 0x1000000