描述
program_flash出力ログによって述べたようQSPIプログラミングは、JTAGモードで起動するデバイスを必要とします。
初期化メモリのプログラミング、行わ
BOOT_MODE REG = 0x00000001の
警告:[Xicom 50-100]現在の起動モードがQSPIです。
JTAGブートモードが強く推奨されているが、QSPI、ブートモードでブートデバイスのための回避策があります。
解决方案
のZynq-7000用のフラッシュのプログラミング、2017.3以降では、あなたがFSBLを指定する必要があります。(ザイリンクスアンサー70148)を参照してください。
このFSBLは(主にps7_init()関数を実行するために)システムを初期化するために必要とされます。
QSPIブートモードで起動する場合は、このFSBLは、フラッシュプログラミングの誤動作の原因となるフラッシュからロード・パーティションにしようとします。
以下の変更で、私たちは(唯一のフラッシュプログラミングに使用)このFSBLは基本的にのみ(ps7_init())の初期化を実行するように制限します。
新しいFSBLプロジェクトを作成し、SDKにフラッシュプログラミングのためにそれを使用するには、以下の変更(main.cの)を追加します。
/ *
- リードのbootmodeレジスタ
* /
BootModeRegister = Xil_In32(BOOT_MODE_REG)。
BootModeRegister&= BOOT_MODES_MASK。
// JTAGにトリックブートモードに次の行を追加します
BootModeRegister = JTAG_MODE。
これは、プログラミングの動作中にフラッシュデバイスから既存のパーティションをロードするからFSBLを防ぐ必要があります。