问题2:64 MB DRAM BANK 0,1的,是不是对应Bank6和7,就是说每一片32M的SDRAM分别接到Bank6和Bank7上?还是两片32M的SDRAM都对应Bank6?(通过查看原理图,发现这两片的片选信号nSCS都是接到nGCS6上,两片的地址线都是LADDR[2-14]一片的数据线是LDATA[0-15],另一片是LDATA[16-31],好像这两片SDRAM是组成32M×32bit的存储阵列,对不?)
问题4:这样从SRAM(SRAM/ROM) BANK 0到2 MB SROM(SRAM/ROM) BANK 0的写法,是不是有啥可以依据的规则?
问题5:"DCD 0x8C000000, 0x30000000, 64 ; 64 MB DRAM BANK 0,1",这个64M的SDRAM一定要映射到0x8c00 0000地址么?
问题6:这个内存的静态映射表,需要驱动开发人员完全编写么?还是一般参照提供的BSP适当修改?
问题2:64 MB DRAM BANK 0,1的,是不是对应Bank6和7,就是说每一片32M的SDRAM分别接到Bank6和Bank7上?还是两片32M的SDRAM都对应Bank6?(通过查看原理图,发现这两片的片选信号nSCS都是接到nGCS6上,两片的地址线都是LADDR[2-14]一片的数据线是LDATA[0-15],另一片是LDATA[16-31],好像这两片SDRAM是组成32M×32bit的存储阵列,对不?)
-->64MB是指Bank6或者Bank7都可以达到(事实上,都可以达到128MB)。你对原理图的理解很正确,的确是2片32MBx16bit的SDRAM组成了32MBx32bit的SDRAM。但根据CPU接口设计,也可以2片32MBx16bit的SDRAM分别接在bank6和bank7上的。
问题4:这样从SRAM(SRAM/ROM) BANK 0到2 MB SROM(SRAM/ROM) BANK 0的写法,是不是有啥可以依据的规则?
-->依据一:该物理地址对应的地址空间(CPU中规定多少就分配多少,多了没用)
依据二:实际需要的虚拟地址空间(即使CPU规定了可以达到1GB空间,但实际只需要使用1MB,那就只定义1MB足矣,多了浪费)
问题5:"DCD 0x8C000000, 0x30000000, 64 ; 64 MB DRAM BANK 0,1",这个64M的SDRAM一定要映射到0x8c00 0000地址么?
-->从操作系统开发原理上讲:不是。你看linux,看Vxworks,这个0x300000000映射的都不是0x8c000000。
从CE开发来说:是。因为这是微软在几个版本里都定义好的,从底层到系统层都建立在此基础上。你可以改,但后果自负。