第一FPGA 2024-06-14 02:53 采纳率: 0%
浏览 13

jtag 被动启动 zynq程序

通过JTAG 被动启动 ZYNQ 7020,程序加载的数据链路是什么?
我通过阅读《ARM Debug Interface v5》和《UG585》大概知道通过jtag-dp访问mem-ap,但是这个mem-ap是AHB-AP还是APB-AP不太清楚。然后是将程序(app.bin)写入cortex-A9 哪里(OCM还是DDR)。

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-14 02:53
    关注

    引自免费微信小程序:皆我百晓生

    在使用JTAG被动启动Zynq 7020设备上的Cortex-A9处理器时,数据链路主要涉及JTAG接口、Debug Port (DP)、Memory Access Port (MEM-AP)以及目标系统的内存区域(例如OCM或DDR)。以下是详细的步骤和解释:

    1. JTAG与DP

    • JTAG接口:这是一个标准的硬件接口,用于测试和调试电路板上的集成电路。在本例中,它用于连接到Zynq 7020的调试端口。

    • Debug Port (DP):这是ARM处理器的一个组成部分,用于控制调试过程。通过JTAG接口,调试工具可以访问DP,进而访问MEM-AP。

    2. MEM-AP的选择:AHB-AP vs APB-AP

    • AHB-APAPB-AP 都是MEM-AP的类型,分别用于访问Advanced High-performance Bus (AHB) 和 Advanced Peripheral Bus (APB) 总线上的资源。

    • 在Zynq 7020中,通常使用AHB-AP来访问系统内存,因为它提供了更高的带宽和速度,而APB-AP则更多地用于访问低速外设。

    3. 程序加载位置:OCM vs DDR

    • On-Chip Memory (OCM) 是Zynq内部的高速缓存,包括OCM-RAM和OCM-C,适合存放小量的代码和数据,访问速度较快。

    • DDR 是外部的动态随机存取存储器,容量大,但访问速度比OCM慢。

    对于较大的应用程序,通常推荐将程序加载到DDR中,因为其容量足以容纳大型程序和数据集。然而,一些关键的初始化代码或频繁访问的小型代码段可能会被加载到OCM中以提高性能。

    4. 程序加载流程

    1. 建立JTAG连接:使用JTAG调试工具(如OpenOCD)与Zynq 7020建立连接。

      openocd -f interface/jtag.cfg -f target/zynq7000.cfg
      
    2. 选择AHB-AP:通过DP访问并选择正确的AHB-AP。

    3. 配置内存映射:确保内存映射正确,使得从JTAG加载的数据能够被正确解析并写入DDR或OCM。

    4. 加载程序:使用调试工具将app.bin文件加载到目标内存区域(通常是DDR)。

      load_image app.bin 0x80000000
      
    5. 启动处理器:设置程序计数器(PC)到程序入口点,并开始执行。

    5. 总结

    • 使用JTAG被动启动Zynq 7020上的Cortex-A9,主要涉及通过DP访问AHB-AP,然后将程序加载到DDR或OCM中。
    • 选择适当的MEM-AP类型(AHB-AP或APB-AP)取决于要访问的内存区域或外设。
    • 加载程序的具体操作依赖于使用的调试工具及其命令行接口。

    希望这能解决你的疑问!如果有任何更具体的问题或需要进一步的帮助,请随时提问。

    展开全部

    评论 编辑记录
  • 关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    首先,你需要理解JTAG如何被用来控制ZYNQ的内存区域。这通常涉及到将你的应用程序写入内存地址。以下是一些基本步骤:

    1. 初始化JTAG:在连接到你的设备之前,确保你的JTAG已正确初始化并且你的电脑已准备好接收数据。

    2. 指定目标设备:将你的设备与你的计算机相连接。例如,如果你正在使用ARM Discovery Tool来识别你的设备,你需要将它设置为你的计算机。

    3. 执行JTAG诊断:使用你的工具运行JTAG诊断来确定你的设备是否已正确识别。

    4. 检查内存区域:根据JTAG诊断的结果,你可以检查你的设备是否有足够的空间来存放你的应用程序。

    一旦你的设备确认了你可以访问其内存,你就可以开始编写你的应用程序。然后,你可以使用arm-link或mbedLink等软件将你的应用程序链接到zynq芯片中。

    对于程序的加载,Zynq 7020提供了两种不同的方式:Cortex-A9 的APB和AHB。这两种方式都需要使用不同的方法来加载程序。一般来说,你可以在运行时从APB加载程序,或者在加载后立即使用AHB加载程序。

    至于程序的加载路径,通常是通过MCS-51处理器的程序存储器(PSRAM)来实现的。当你加载一个程序时,你的控制器会将该程序放在PSRAM中的特定位置。

    如果你在使用的是 ARM Discovery Tool 来识别你的设备,那么你应该使用arm-discovery,而不是arm-link。这是因为arm-discovery不需要下载整个芯片的文件,而只需要识别出你的设备即可。

    对于具体的代码,你需要根据你的具体需求和环境来编写。这里只是一个大致的指南,可能需要你自己去填充和调整代码以满足你的需求。

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部