文档章节

S3C6410 DDR

For_MGP
 For_MGP
发布于 2014/10/19 20:58
字数 476
阅读 50
收藏 0

以nand flash启动,则,nand flash 前 8K 的内容就会被原原本本的(硬件自动)复制到 6410 片内
    8K 内存中,且被映射到 0x0 地址中,然后从 0 地址开始运行。(ARM 的 CPU 都这样)
    
    当程序大于 8K 时,就得用DDR(需要初始化 DRAMC 和 DDR )。启动时吧全部程序复杂到DDR里面。
    
问题:DDR共128MBYTE,那,把程序复制到DDR哪里?
    答:复制到链接地址。
    
    
一个程序分为3段:
            1.代码段:指令
            2.数据段:有初始值并且初始值不等于零的全局变量、静态变量。
            3.BSS段:初始值为零或无初始值的全局变量、静态变量。
            
二进制文件中不包含BSS段。

总结:
    1.程序运行时,“应该”位于它的链接地址
    2.由硬件决定了,一上电,则程序被复制到片内8K里面,从0x0开始运行。而又由
        于程序大于8K,所以需要用到DDR,因此需要重定位,前面一小段代码把程序复制
        到DDR上它对应的链接地址(这里的前一段代码作用有两个:一是重定位,二是把程序代码复制到对应DDR的链接地址上然后清零BSS段)。
    3.那为何前面一小段代码能够正确运行?因为这一段代码是用位置无关码写的
        位置无关码:
                1)跳转用b,bl这些相对跳转指令
                2)不用全局变量,静态变量。
                
    
从原理图上看出DDR由15条地址线链接,能访问2的15次方(即32k)个地址。

怎么访问DDR?
        1.初始化 DRAMC (动态内存控制器)
                        1)地址线的设置(行/列地址)
                        2)位宽
                        3)设置时序(时间参数)
        2.初始化 DDR

        
不会设置,需查找网络资源。

© 著作权归作者所有

For_MGP
粉丝 2
博文 66
码字总数 20576
作品 0
深圳
程序员
私信 提问
Samsung ARM处理器iROM启动模式介绍

最近在使用三星S3C2416这个处理器,需要在EBOOT 上实现SD卡文件系统,并从SD卡中烧写wince系统,与S3C2416的从SD卡启动不同。我用的BSP是 SMDK2416WinCE50PMREL0.01_080611的,Bootloader文件...

慎思
2012/09/10
323
0
S3C6410开发全纪录(二)《如何计算内存大小,并在UBOOT中调整内存大小》

http://bbs.2beanet.com/boot-f31/s3c6410-uboot-t3135.html 前章我们已经可以制作出用来启动的SD卡了,并将自己编译的UBOOT烧录到了SD卡中 这份UBOOT代码中的内存配置肯定和手头的开发板不一...

nothingfinal
2012/04/22
0
0
OK6410开发板linux系统下的SPI驱动和测试

OK6410下的SPI驱动是可以用的,但是飞凌把它作为其它用途了,我们修改一些代码才能在/dev目录下创建SPI的设备节点文件 Step1:打开arch/arm/machs3c64XX/machmini6410.c 增加如下代码: 点击...

WXXGoodJob
2018/11/12
0
0
S3C6410和DM9000驱动

添加DM9000驱动 Linux 内核下的 drivers/net/dm9000.c 实现了与体系结构无关的 DM9000 网卡驱动,只需要在 BSP 的板文件(arch/arm/mach-s3c6410/smdk-6410.c)中定义相关的 platform 设备和数...

慎思
2012/08/09
341
0
ISSCC一大看点 下一代内存DDR4规格曝光

【IT168 资讯】目前的DRAM市场分两类主流技术:一种是用于服务器和PC的DDR3,另一种是用于智能手机、平板电脑等移动设备的LPDDR2,这些技术具体的指标均由各大半导体公司及其客户组成的业界组...

比特
2012/02/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

解答二进制求和

思路:创建一个新的字符串,用于记录原两个字符串每位相加的结果。 1、因为是从左到右计算,所以要把字符串先进行反转,用reverse()方法。 2、字符串对齐,采用补零的方法。 3、计算的时候...

无名氏的程序员
7分钟前
1
0
JSONUtils

package com.demo.utils;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Tr......

任梁荣
7分钟前
2
1
在jest中配置typescript

测试是报错: Property 'assign' does not exist on type 'ObjectConstructor' NodeJS已经是最新版了,但道理不需要polyfill。 然后发现是typescript的lib没有"es2015.core",说明ts-jest没有......

linsk1998
8分钟前
1
0
Redis实现分布式文件夹锁

缘起 最近做一个项目,类似某度云盘,另外附加定制功能,本人负责云盘相关功能实现,这个项目跟云盘不同的是,以项目为分配权限的单位,同一个项目及子目录所有有权限的用户可以同时操作所有...

逸竹小站
17分钟前
2
0
Andorid SQLite数据库开发基础教程(2)

Andorid SQLite数据库开发基础教程(2) 数据库生成方式 数据库的生成有两种方式,一种是使用数据库管理工具生成的数据库,我们将此类数据库称为预设数据库,另一种是使用代码生成的数据库。...

大学霸
37分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部