对s3c2440、s3c2410的存储控制及启动代码的理解

对于s3c2440、s3c2410这样的片子,并不是想51那样简单的内存和启动操作

1、这两种芯片的地址线为addr0~addr26共有27条地址线即为128MB的寻址范围,为了更广的范围芯片厂家就多加了nGCS0~nGCS7(有了所谓的bank0~bank7),8个引脚作为外部的扩展即128*8MB=1GB的寻址范围。理论上这芯片有4GB(2的23次方)的寻址范围和采用统一编址的方式。但并不是全都用到的一般只用到其中的一部分。即可分为:外部地址空间bank0~bank7(0x00000000~0x40000000)、内部寄存器地址(0x48000000~0x5FFFFFFF)主要用于特殊功能寄存器 、未用地址段,这三个大部分组成。如图:

|————————————|  0x5FFFFFFF

|            |

|  特殊功能寄存器   |

|————————————|  0x48000000

|    未使用地址          |

|————————————|  0x40000000

|            |

|            |

|            |

|   bank0~bank7  |

|            |

|            |

|————————————|  0x00000000

 

2、对于arm9这种芯片一般都有多种启动方式,但一般nor flash和nand flash较为普遍。以nand flash为例:

从nand flash 启动:①、cpu自动将nand flash开始的4kB数据复制到称为“steppingstone”的4KB内部ram(sram)中。

          ②、指针自动跳转到0x00000000地址处开始执行代码。

          这都由cpu内部硬件自动完成

因此,我们可以在nand flash前4kb中储存相应的启动代码,即可实现外部SDRAM等外设的初始化。

 

posted @ 2010-10-12 23:03  stardream  阅读(1084)  评论(0编辑  收藏  举报