赞
踩
最近买了块新板子,固化程序一次就烧录不了,报错ERROR: [Labtools 27-3347] Flash Programming Unsuccessful: cannot set write enable bit or block(s) protected
记录一下如何解决的吧。
字面意思,flash写保护了。用的开发板上的flash是MX25L25645G,先看手册status register。
如图保护是bit5到bit0。
读一下该寄存器值,时序和手册一致:
发现全是1
再看一下修改寄存器的流程还挺多的
反正跟着流程图操作就行了,给status register改成0就可以了。最后读出验证下有无更改成功
这时候再打开另一个vivado固化就可以了控制台打印出Flash programming completed successfully。重新上电后程序也运行了。
用的是7系列开发板,所以代码要用到的STARTUPE2原语,u系列是STARTUPE3,用法如下。
STARTUPE2 #(
.PROG_USR(“FALSE”), // Activate program event security feature. Requires encrypted bitstreams.
.SIM_CCLK_FREQ(10.0) // Set the Configuration Clock Frequency(ns) for simulation.
)
STARTUPE2_inst(
.CFGCLK ( ), // 1-bit output: Configuration main clock output
.CFGMCLK ( ), // 1-bit output: Configuration internal oscillator clock output
.EOS ( ), // 1-bit output: Active high output signal indicating the End Of Startup.
.PREQ ( ), // 1-bit output: PROGRAM request to fabric output
.CLK (1’b0 ), // 1-bit input: User start-up clock input
.GSR (1’b0 ), // 1-bit input: Global Set/Reset input (GSR cannot be used for the port name)
.GTS (1’b0 ), // 1-bit input: Global 3-state input (GTS cannot be used for the port name)
.KEYCLEARB (1’b0 ), // 1-bit input: Clear AES Decrypter Key input from Battery-Backed RAM (BBRAM)
.PACK (1’b0 ), // 1-bit input: PROGRAM acknowledge input
.USRCCLKO (sclk ), // 1-bit input: User CCLK input
// For Zynq-7000 devices, this input must be tied to GND
.USRCCLKTS (1’b0 ), // 1-bit input: User CCLK 3-state enable input
// For Zynq-7000 devices, this input must be tied to VCC
.USRDONEO (1’b0 ), // 1-bit input: User DONE pin output control
.USRDONETS (1’b0 ) // 1-bit input: User DONE 3-state enable output
);
然后cs_n,mosi,miso接到专用接口去就可以了。
用的SDK烧录bit文件到flash出现的问题,莫名其妙有点太坑了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。