fpga.love
EN App
知识库›AMD 社区问答速查›裸机动态加载代码后跳转失败如何解决

裸机动态加载代码后跳转失败如何解决

PCIe / XDMA已闭环原帖 9 个回答 · 423 次浏览|器件:Zynq / Arm Cortex A9 / Zedboard / Xilinx SDK 裸机模板

一句话结论:跳转前先清理 D cache 再无效化 I cache 和 BTB 即可正常执行

现象

跳转到动态加载的例程时发生 data abort,通用寄存器不更新,仅 PC 改变

根因

缓存同步问题:跳转前未先清理 D cache 再无效化 I cache 与分支预测器(BTB)

可尝试的处理步骤

本文基于 AMD 客户社区(原 Xilinx 论坛)真实问答整理为中文要点,非原文转载;技术细节以原帖与 AMD 官方文档为准。
原帖:https://adaptivesupport.amd.com/s/question/0D52E00007FSXuJSAX/problems-branching-to-dynamically-loaded-routine

相关资料

Alveo U55C 在 Dell R750 Riser 1 插槽不稳定Vivado 2018.3 是否有 AR#72992 补丁?CPM4 NOC时钟无法连接到AXI NOC

相关标签:Zynq · bare-metal · cache · branch

就这个问题继续问 AI → ← 返回 AMD 社区问答速查