1、6410地址空间

Part8-不用内存怎么行_6410内存初始化lesson3_html

外设区:从0x70000000-0x7FFFFFFF有256MB

主存储区:从0x00000000-0x6FFFFFFF有1972MB

对于主存储区:

Part8-不用内存怎么行_6410内存初始化lesson3_初始化_02

静态存储区可以接我们的NOR Flash以及One nand等等设备,它的6*128MB意思是有6个BANK,每个BANK有128MB.

动态存储区:它的起始地址为0x50000000,是内存的起始地址,故我们把DDR的内存放到了动态存储区。

2、内存芯片硬件连接

用的两块128MB的芯片形成了256MB的内存容量。

Part8-不用内存怎么行_6410内存初始化lesson3_.net_03

3、芯片手册导读

打开芯片手册找到DRAM控制器章节, (注意2440对存储器控制器的初始化过程没有固定的顺序的!)

中文版芯片手册5.3小节,英文版5.4小节,是控制器初始化流程

Part8-不用内存怎么行_6410内存初始化lesson3_.net_04

Part8-不用内存怎么行_6410内存初始化lesson3_初始化_05

Part8-不用内存怎么行_6410内存初始化lesson3_.net_06

Part8-不用内存怎么行_6410内存初始化lesson3_初始化_07

4、手把手写代码

进入到给的代码目录下:uboot_6410/cpu/S3C64XX/S3C6410/,里面有一个文件cpu_init.S

Part8-不用内存怎么行_6410内存初始化lesson3_html_08

Part8-不用内存怎么行_6410内存初始化lesson3_初始化_09

Part8-不用内存怎么行_6410内存初始化lesson3_.net_10

编写自己的代码:

start.S

Part8-不用内存怎么行_6410内存初始化lesson3_初始化_11

makefile

Part8-不用内存怎么行_6410内存初始化lesson3_.net_12

mem.S

Part8-不用内存怎么行_6410内存初始化lesson3_html_13

Part8-不用内存怎么行_6410内存初始化lesson3_初始化_14

Part8-不用内存怎么行_6410内存初始化lesson3_初始化_15

Part8-不用内存怎么行_6410内存初始化lesson3_初始化_16

​ http://comm.chinaaet.com/adi/blogdetail/40034.html​