大家好,我现在用AM3352外接一片16bit 异步SRAM,有关地址对应问题我看到文章"AM335X GPMC模块地址区域划分详解"一文中有所介绍,但是寄存器GPMC_CONFIG7中,bit[5:0]对应的基址不太理解,Bits [5-0]手册介绍是 ”corresponds to A29, A28, A27, A26, A25, and A24.”怎么理解呢?
加载驱动后,SRAM的地址映射地址跟实际的SRAM地址A0~A15是什么关系呢?比如映射首地址是c8bf8000实际对应的是SRAM的地址0x0000吗?
TRM中硬件连接如下所示:
这里的地址线的连接,gpmc_a0没有用到是吗?如果SRAM有19位地址线A0~A18,那实际连接的时候是连接gpmc_a1~a19 ?
Getting Chip Select
GPMC revision 6.0
GPMC_CS_CONFIG1 value 0x1001000
GPMC_CS_CONFIG2 value 0x121201
GPMC_CS_CONFIG3 value 0x0
GPMC_CS_CONFIG4 value 0x100a100a
GPMC_CS_CONFIG5 value 0x101213
GPMC_CS_CONFIG6 value 0x180
GPMC_CS_CONFIG7 value 0xf00
Got CS1, address = 1000000
srambase = c8bf8000
GPMC_CS_CONFIG7 value 0xf41
Shine:
1. 看一下TRM里的表Figure 7-6. Chip-Select Address Mapping and Decoding Maskhttp://www.ti.com/lit/ug/spruh73p/spruh73p.pdf2. Linux中的MMU页表比较复杂,建议google或者百度
xun yu1:
回复 Shine:
那外部SRAM的映射到linux的地址首地址与外部SRAM的地址0x000000对应吗?