版主
主题
回帖0
积分10609
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
Altera器件有EPCS系列配置器件,其实,这些配置器件就是我们平时通用的SPIFlash,据AlteraFAE描述:“EPCS器件也是选用某家公司的SPIFlash,只是中间经过Altera公司的严格测试,所以稳定性及耐用性都超过通用的SPIFlash”。就本人看来,半导体的稳定性问题绝大部分都是由本身设计缺陷造成的,而成熟的制造工艺不会造成产品的不稳定;并且,现在Altera的器件在读入配置数据发生错误时,可以重新读取SPIFlash里面的数据,所以在工艺的稳定性以及设计的可靠性双重保证下,通过选用通用的SPIFlash来减少产品的成本压力。
% x0 _- \. Z) E# Z8 o+ J/ t4 e+ x& X6 I* Z0 I) }
假设我们正在使用一个普通SPIFlash,打开nios II command shell窗口,使用nios2-flash-programmer命令下载***.flash文件时,会发生如下错误:
5 _. W, R5 [- h0 U No EPCS layout data --- looking for section [EPCS-1C2017] |0 M. \" i; w- W& g% Q
" S9 }9 [ b5 f" }" P 以为不同公司的SPIFlash有不同的ID,并且不同大小的Flash的Sector大小及个数都不一样,所以需要新建一个文档去说明这些数据:
. Z, L7 g2 e& M I
1 G0 j: `* m1 i3 @ 1、首先在<nios2_install>/bin文件夹下面新建nios2-flash-override.txt文件;3 p: [. U+ R7 w* y, o
/ i" X8 z% I3 r
2、输入下述代码,下面描述的器件都是Altera的EPCS器件,sector_size表示sector大小,sector_count表示sector个数;; I2 J" n2 r6 c- l+ c! o2 ?
[EPCS-202011] # EPCS1N (lead-free)8 D- y1 C; I3 b, ]6 {. ~
sector_size = 32768
$ A, Z. f3 A9 ]" H$ b sector_count = 4
& p( p. ^3 {' |# w [EPCS-202013] # EPCS4N (lead-free)
1 O% [; R0 j( c- \4 c" U' ` sector_size = 65536
: h& o: @ f% D% b! P- Y sector_count = 86 I, c- H: U' @# I. a8 M
[EPCS-202015] # EPCS16N (lead-free)
, u* k8 S' n; H) a sector_size = 65536
! z) s) v0 @9 b) W s; D u sector_count = 32& \+ @0 m& X) N1 n. U% m
[EPCS-202017] # EPCS64N (lead-free)& C2 ^2 d! q/ h* B' L0 [, l
sector_size = 65536
' q5 A+ V' q- P- |5 X sector_count = 128, H2 Z, d/ h8 a2 W2 c. R' ?3 k5 S
$ t0 r7 a+ A8 v5 \
3、在上述代码中添加自己选择的通用SPIFlash,例如:
+ k0 q0 N/ U& j! E [EPCS-1C2017] # EPCS64N (Eon-lead-free)+ f7 @, c8 J4 w
sector_size = 655361 z# s+ X7 x: x$ p" z
sector_count = 128, |4 W% H9 l% c/ ]' f
& b( q% B8 x- X& b+ b( m6 i$ N4 M
然后再使用nios2-flash-programmer命令下载***.flash文件,就可以对SPIFlash进行下载了。* o/ G, [; H* }/ ?$ w
' ~% @. K# x& O0 r% \9 _" [
需要注意的是,FPGA使用的配置芯片的每个Sector大小都是定的,现在有些器件专门对Boot那部分代码进行了优化,及最开始的部分Sector会比较一般的Sector要小,从而达到提高Sector利用率的目的,比如Eon 64M的SPIFlash就分为两种,一种是每个Sector大小都是64K*128(EN25P64),还有一种就是(4+4+8+16)K+64K*127(EN25B64),而我们选用的是前面那类器件,器件ID为1C2017,器件ID可以通过nios2-flash-programmer --debug ...查询。. V- P2 t- c, [3 j
' X @ k& d' f 以上我选了一种器件进行做说明,大家可以根据自己的器件修改nios2-flash-override.txt文件,只需要更改ID号就行了,保证sector_size,sector_count与EPCS器件一致。 |
|