刚开始接触TI的DSP-TMS320F2812,总会遇到很多问题。苦想了一阵,顿悟,不过有以下几点需要声明:
1)F2812的外部存储器的XINTF Zone6的寻址范围为0x10 0000 ~ 0x18 0000;
2)F2812的外部地址总线为XA [18:0] ;
3)F2812的外部接有256K的SRAM,地址总线为XA [17:0] 。
困惑是:既然F2812的外部存储器的XINTF Zone6的寻址范围为0x10 0000 ~ 0x18 0000,那么外部的SRAM的0x00 0000 ~ 0x0F FFFF的存储空间就被白白浪费掉了。
不仔细推敲,很容易进入这个误区。
首先,外部存储器的XINTF Zone6的寻址范围为0x10 0000 ~ 0x18 0000,这里的地址是用24位的二进制来表示的,而事实上,F2812的内部地址总线共22位,用来表示内部地址总线的24位二进制实际只利用了22位,最高两位为0,而起始地址0x10 0000中的“1”是在XA[20]。
再看看外部地址总线XA [18:0] ,共19位,也就是说,外部的地址总线仅仅只是内部数据总线的低19位XA [18:0] 。只要外部存储器的地址范围小于等于0x00 0000 ~ 0x07 FFFF时,就不会出现存储空间被浪费,即每一个地址空间都会被访问。
F2812的外部接有256K的SRAM,地址总线为XA [17:0] ,其寻址空间为0x00 0000 ~ 0x07 FFFF,当DSP要访问外部的SRAM时,外部地址总线XA [17:0] 去读写SRAM,与其余的高4位地址无关。
这样,就豁然开朗了,原来是被二进制和十六进制给搞晕了!