(2)FB_CSMRn,我姑且叫它片选基地址屏蔽寄存器: 之所以叫它基地址屏蔽寄存器主要是BAM字段的作用了,由FB_CSAR寄存器可知,它只受32位总线地址的高16位影响,如果设置FB_CSARn=0x6000_0000,那么在寻址范围在0x6000_0000~0x6000_FFFF的范围内都是有效的(即FB_CSn有效),即FlexBus的最小寻址地址块为2^16=64KB大小,而如果你想要在该基地址范围下寻址更大的范围,嘿嘿,那就要用到BAM字段了,其作用我觉着用英语表达更容易理解,即 Setting a BAM bit causes the corresponding CSAR bit to be a don’t care in the decode,直接这么说估计好些人不明白,那我就用例子说明一下,设置FB_CSAR[BA]=0x6000,FB_CSMR[BAM]=0x0001,则相应的FB_CS的片选范围为0x6000_0000~0x6000_FFFF和0x6001_0000~0x6001_FFFF连续的128KB的空间,即BAM相应位的作用就是屏蔽了BA相应位在寻址译码上的作用。说完这个再说下地址连续性的概念,同样设置FB_CSAR[BA]=0x6000,而FB_CSMR[BAM]=0x0004的话,则相应的FB_CS的片选范围则是0x6000_0000~0x6000_FFFF和0x6004_0000~0x6004_FFFF这两个不连续的128KB的空间,而如果设置FB_CSMR[BAM]=0x0007的话,则寻址范围则为0x6000_0000~0x6007_FFFF这连续512KB的空间,呵呵,这个寄存器作用理解起来有点难,所以说了这么多,还没明白的还是继续啃英文datasheet吧。 最后要说说FB_CSMR[V]这个位段,即片选有效信号,这里值得一提的是,MCU复位之后只有FB_CS0有效,如果需要用到其他的片选信号,则必须先置位FB_CSMR0[V](注意是CSMR0),然后才能使用其他片选信号。
|