当我在 petalinux 项目中发出以下命令时: petalinux-boot --jtag --fpga --bitstream ../system.bit --u-boot
我收到以下错误。当我在网上搜索时,我找不到任何答案:
rlwrap: warning: your $TERM is 'xterm-256color' but rlwrap couldn't find it in the terminfo database. Expect some problems.: Inappropriate ioctl for device
Memory read error at 0xF8007080. MMU section translation fault
invoked from within
"::tcf::eval -progress {apply {{msg} {puts $msg}}} {tcf_send_command tcfchan#0 Memory get siiii {Bea{o{msg o{} A}}} {JTAG-jsn-DLC10-00001c72991001-4ba00477-0.0 4160778368 4 4 7}}"
(procedure "::tcf::send_command" line 4)
invoked from within
"::tcf::send_command $chan Memory get "siiii" "Bea{o{msg o{} A}}" [list $ctx $start_addr $size $nbytes $mode]"
(procedure "mrd" line 87)
invoked from within
"mrd 0xF8007080"
(procedure "ps_version" line 2)
invoked from within
"ps_version"
(procedure "ps7_post_config" line 8)
invoked from within
"ps7_post_config"
(file "/tmp/tmp.8jPVijmAkY" line 12)
INFO: The XSDB log is as follows
我尝试通过搜索 Zynq 7000 板文档来解决该问题,我尝试在 AVNET 板上启动 Linux。在那里我发现以下内容: “MMU 可能找不到全局映射或当前所选 ASID 与 TLB 中虚拟地址的匹配非安全 TLB ID (NSTID) 的映射。在这种情况下,硬件会执行转换表遍历,如果转换表遍历由 TTB 控制寄存器中的 PD0 或 PD1 位启用。如果转换表遍历被禁用,处理器将返回段翻译错误。
进一步搜索可找到链接 https://support.xilinx.com/s/article/52033?language=en_US
不确定这是否有帮助。 如果输入命令 petalinux-boot --jtag --kernel --hw_server-url tcp:127.0.0.1:3121,我会得到同样的错误。对解决问题有帮助吗?
编辑:我尝试使用 XSCT,当我发出命令时
xsct% dow "../zynq_fsbl.elf"
我明白了
: Memory write error at0x0. MMU section translation fault.
对解决问题有帮助吗?
我已经执行过几次启动命令了。看来必须禁用 MMU 才能下载 FSBL,这是正确的吗?
我写下这个答案是因为它可能会在未来帮助别人。问题是主板已经在运行某些东西,因此当我们尝试再次启动时,它给出了 MMU 转换错误。当尝试多次启动时可能会发生这种情况。解决办法是把板子断电,运行minicom或者其他串口连接软件,然后给出启动命令。