ZYNQ7000程序编译成功但烧写报错(使用Vitis2020.2)
一. DDR設(shè)置問題。
1.1 使能了DDR但沒正確設(shè)置型號
燒寫報錯如下:
Error while launching program: Memory write error at 0x100000 Memory write aborted. Fault status 0x8, Domain 0x0
經(jīng)排查:
發(fā)現(xiàn)是在創(chuàng)建ZYNQ7 PS時,在DDR配置界面使能了DDR,但沒有正確設(shè)置DDR型號。如下圖所示。
當(dāng)時沒設(shè)置型號是因為沒有用到DDR,以為沒用就可以隨便哪個型號.但后來在燒寫程序時報錯。
推測原因是,燒寫程序時會連同DDR的配置信息一起燒寫進(jìn)去,DDR配置不對時,這一步就會報錯。
收獲:即使DDR沒使用,只要Enable了DDR就必須正確的設(shè)置型號以及一些其它參數(shù)。
1.2 ZYNQ外圍有DDR, 但在IP核中沒有使能DDR
Error while launching program: Memory write error at 0x100000. Cannot access DDR: the controller is held in reset
經(jīng)排查:
收獲: 只要硬件電路板上使用了DDR,PS的IP核中必須使能DDR并正確配置。
二. 燒寫設(shè)置出錯
此問題總結(jié)于本人在Xilinx官方中文論壇的發(fā)帖:Error while launching program: Cannot halt processor core, timeout
燒寫報錯如下:
Error while launching program: Cannot halt processor core, timeout
在用Vitis燒寫程序的時候不定時會出現(xiàn)這個Error,有時能正常燒進(jìn)去,有時報這個錯誤,基本2~3次燒寫出現(xiàn)一次,不理解為什么?不論是直接單擊快捷圖標(biāo)run,還是進(jìn)入Run Configuration再點(diǎn)擊run,這個error都會不定時出現(xiàn)。
經(jīng)排查:
發(fā)現(xiàn)之前每次燒寫都是勾選了Reset entire system,這個選項要進(jìn)行的操作是:Reset entire system,Clear the FPGA fabric(PL),但我的ZYNQ工程中沒有使用PL,所以這Clear the FPGA fabric(PL)(翻譯成擦除FPGA布局?)應(yīng)該是無用的。
我嘗試不勾選reset entire system,發(fā)現(xiàn)要執(zhí)行的操作還是5個,如下圖。原本的Reset entire system,Clear the FPGA fabric(PL)變成了
The following processors will be reset and suspended.
1)ps7 cortexa9_0
PS 9.0核將被復(fù)位和暫停,對比之前的reset,只是沒有了Clear PL。然后我進(jìn)行了多次run。發(fā)現(xiàn)這個報錯不再出現(xiàn)。
我再勾選上reset,run的報錯又開始出現(xiàn)了,可見這個燒寫報錯和選項reset entire system有關(guān)。
然后我又找了一個使用了PL的工程,勾選上Reset entire system(雖然不勾選燒寫好像也沒什么問題,所以我其實(shí)不清楚此選項的好處是什么),Summary中顯示的操作多了一條,2. Programing FPGA fabric using…,然后多次run,發(fā)現(xiàn)仍然不報錯誤。
得出結(jié)論
1.未使用PL時,選中了Reset entire system,run可能報錯
2.未使用PL時,不選Reset entire system,run不報錯
3.使用了PL時,即使選中了Reset entire system,run也不報錯
所以,一個可行的辦法是:在未使用PL時,不勾選Reset entire system,這樣即使在Flash mode下,燒寫也不會報錯。而使用了PL,勾選Reset entire system也能成功燒寫。
to be continue…
總結(jié)
以上是生活随笔為你收集整理的ZYNQ7000程序编译成功但烧写报错(使用Vitis2020.2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Keil MDK-ARM下载 安装与和谐
- 下一篇: Icarus Verilog与GTKWa