news 2026/4/1 15:08:27

关于MIO设置JTAG模式,还可以从Flash启动说明

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
关于MIO设置JTAG模式,还可以从Flash启动说明


一、说明
硬件设计为JTAG模式”,实际上是指通过MIO引脚将 BOOT_MODE[3:0] 配置为了 0011 或 1011,这个模式更准确地称为“JTAG 优先”模式,而不是“JTAG 唯一”模式。在这个模式下,ZYNQ的启动过程会首先尝试从JTAG启动,如果失败,则会自动回退到从Flash启动。

二、流程说明
进入“JTAG优先”流程:BootROM会主动等待并监听JTAG接口,看是否有外部调试器(如Vivado Hardware Manager)试图连接并下发指令。

如果JTAG有连接并下发指令:BootROM会将控制权交给JTAG调试器。此时,您可以通过JTAG直接下载并运行程序(如FSBL),或者直接配置PL。这是调试阶段最常用的方式。

如果等待超时(约2秒)JTAG无响应:BootROM会认为“JTAG启动失败”,然后自动进行模式回退。回退的路径取决于 BOOT_MODE 的具体值:

0011: 回退到 主启动模式。BootROM会去读取 MIO[5:8] 所指示的非易失性存储器(比如QSPI Flash)中的内容。

1011: 回退到 备用启动模式。BootROM会去尝试从SD卡等备用设备启动。


三、为什么能成功从Flash启动?
关键在于 Boot Header 中的 FSBL_EXEC 字段。这个字段有两个主要选项:

FSBL_EXEC = 0x0: “JTAG不等待”模式。即使BOOT_MODE设置为JTAG优先,BootROM在检测到这个值后,也会跳过JTAG等待阶段,直接进入下一阶段(从Flash加载FSBL)。

FSBL_EXEC = 0x1: “JTAG等待”模式。这就是上面描述的行为,BootROM会先等待JTAG连接。

在您的场景中,您烧写到Flash中的镜像文件(通过SDK或Vitis生成的 BOOT.bin),其Boot Header里的 FSBL_EXEC 字段极有可能被设置成了 0x0(JTAG不等待)。因此,虽然硬件引脚设为了“JTAG优先”,但芯片一读取Flash头,发现指令是“别等JTAG了,直接跑吧”,于是就直接从Flash加载并运行FSBL了,从而实现了“从Flash启动”。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/18 19:46:31

‌利用AI自动生成基于PRD的测试验收标准:软件测试从业者指南

引言:AI驱动的测试变革‌ 在2026年的软件测试领域,人工智能(AI)正从辅助工具演变为核心驱动力。产品需求文档(PRD)是测试的基石,它定义了软件的功能、性能和非功能需求,但传统手动生…

作者头像 李华
网站建设 2026/3/25 5:30:35

测试用例自动生成:从“写100条”到“提1个需求”

测试用例生成的演变背景 在软件测试领域,测试用例是保障产品质量的核心工具。传统方法中,测试工程师需手动编写大量用例(如“写100条”),耗时耗力且易出错。随着技术发展,自动化工具兴起,逐步转…

作者头像 李华
网站建设 2026/3/27 9:29:08

芯片制造企业如何利用CKEDITOR+C#.NET实现CAD图纸转存?

CMS企业官网编辑器功能扩展开发记录(PHP版) 一、需求分析与技术评估 作为独立PHP开发者,我接到了一个企业官网CMS系统的功能扩展需求,需要在现有CKEditor4编辑器中增加Word/Excel/PPT/PDF导入和一键粘贴功能,预算严格…

作者头像 李华
网站建设 2026/3/28 18:10:09

关于大模型部署:看这篇就对了

前言 大模型从训练完成到真正对外提供服务,部署是中间的关键桥梁。部署的核心目标很明确:让模型在特定硬件环境下,以低延迟、高吞吐量、高稳定性的状态,响应各类输入请求。这不是简单的“加载模型运行”,而是一个涉及环…

作者头像 李华
网站建设 2026/3/25 19:08:07

王阳明:清除人生的三种“土匪”

《心学攻略:王阳明给现代人的“人生重构”系统》 2/24第02讲 | 核心隐喻:我们要打的三种“土匪”——人生阻力拆解:为什么你总在“打地鼠”,却永远清不完问题?三重围城:现代人的“土匪”阻力地图你有没有觉…

作者头像 李华