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

发布者:快乐舞蹈最新更新时间:2024-07-18 来源: cnblogs关键字: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等外设的初始化。


关键字:s3c2440  s3c2410  存储控制  启动代码 引用地址:对s3c2440、s3c2410的存储控制及启动代码的理解

上一篇:基于openwrt和s3c2440的无线ap实现
下一篇:ARM特殊寄存器定义详解——#define A (* (volatile unsigned long *) 0x48000000

推荐阅读最新更新时间:2026-03-20 11:03

S3C2410-WinCE6.0-OAL的启动代码分析
到现在为止,我们已经了解了S3C2410平台上WinCE6.0的启动过程,包括NBOOT、EBOOT、OAL.exe、Kernel.dll的工作流程。关于WINCE600的目录也做了介绍。准备工作都做好了,接下来开始介绍S3C2410平台上WinCE6.0的移植。BSP的移植很大一部分是代码的移植,所以,这里仍然以代码为主线,以函数为单位来做介绍。BSP的代码一般来说也不是自己从无到有CODE出来的,大多由芯片厂商或者微软提供,OEM厂商需要做得事情是修改相关代码以满足自己硬件的特定需求,快速推出新的产品。如果BSP的移植从零开始,那么市场的先机就完全丧失了。所以这里的介绍将基于现有代码,着重说明移植时需要修改和注意的地方。
[单片机]
<font color='red'>S3C2410</font>-WinCE6.0-OAL的<font color='red'>启动</font><font color='red'>代码</font>分析
S3C2410-2440启动代码内数据复制过程的分析
S3C2410 启动后先进行一些必要的设置,如关 WatchDog,设置 PLL 与时钟,配置 SDRAM,初始化堆栈等,网上有很多分析启动代码的文章,本文不打算再进行说明。 本文分从 NOR Flash 与 NAND Flash 启动两种情况分别进行分析。首先要知道 NOR Flash 是 XIP 的,如果从 NOR 启动,代码首先在 NOR Flash 内执行,考虑到运行速度,我们要把代码要复制到 SDRAM 内去执行。 当系统被设置成从 NAND FALSH 启动(使用 OM[1:0]引脚的电平来控制)时,由于其自身的特点,NAND Flash 不具备运行程序的功能,程序不能在 NAND Flash 内执行,CPU 会自
[单片机]
s3c2440启动代码学习笔记
启动代码: 设置中断向量,顺序为 RESET UDEF SWI PREFETCHUDEF DATAABT NOP      //保留地址 IRQ FIQ 共七个中断向量 机器上电后从0x00000000地址执行指令,到RESET处初始化系统 1.关闭Watchdog,否则cpu会不断重启 2. 如果需要使用C函数需要设置sp   注意每个工作模式都有自己的sp,需要设置,另外上电时内存空间只有SteppingStone的4k内部ram,sp不能超过4k   ATPCS规定栈为FD,sp指针必须指向栈顶元素,启动代码在跳转到绝对地址运行之前必须使用相对跳转指令 3.初始化SDRAM 4.设置cpu运行速度 5.复制运行代
[单片机]
S3C2410启动代码从ADSv1.2移植到KEIL For ARM uV4的方法
深圳旋极ARM9实验箱上面的ARM9实验教程是基于ADSv1.2 和 Mult-ICE2.2并口仿真器的,大概是04~09年期间流行的开发方式。目前ARM公司主推RVMDK(KEIL For ARM uVsion4)和ULINK(中国ARM玩家主要是JLINK V8)仿真器了,怎么把原来的ADS程序移植到KEIL上面呢? 经过分析ADS工程下面的文件,可以看到,原来的工程文件主程序是main.C,其他必须的汇编文件、C头文件、C源文件都放在common和include目录下。首先我们需要把这些工程都需要的基本文件都copy出来,放到一个“基本文件”目录下。 里面的“DebugInRAM.ini“文件,是通过JTAG将镜像文件下载
[单片机]
<font color='red'>S3C2410</font><font color='red'>启动</font><font color='red'>代码</font>从ADSv1.2移植到KEIL For ARM uV4的方法
s3c2410启动代码分析
嵌入式系统对功能、可靠性、成本、体积、功耗等均有严格要求,以ARM体系结构为基础的各种RISC微处理器具有灵活的特性和强大的性能,在嵌入式系统中得到了广泛的应用。 ---S3C2410是三星公司基于ARM920T设计的一款处理器,在开发基于S3C2410的系统的过程中,如何让系统快速稳定地启动是一个重要问题。嵌入式系统的资源有限,程序通常都是固化在ROM中运行。但在实际应用中,为提高系统的实时性,加快代码的执行速度,系统启动后程序往往要被搬移到RAM中,因为RAM的存取速度要比ROM快得多,这样大大提升系统的性能。启动程序要完成的任务包括:硬件初始化,系统存储系统的配置,复制二级中断向量表。 启动程序过程 ● 系统硬件初始化 --
[单片机]
s3c2410汇编启动代码与中断跳转分析
最开始的代码,大家都很熟悉 ,最基本的中断跳转 b ResetHandler b HandlerUndef ;handler for Undefined mode b HandlerSWI ;handler for SWI interrupt b HandlerPabort ;handler for PAbort b HandlerDabort ;handler for DAbort b . ;reserved b HandlerIRQ ;handler for IRQ interrupt b HandlerFIQ ;handler for FIQ interrupt 跳转的标号是一系列的宏 LTORG HandlerFIQ
[单片机]
S3C2440启动代码执行顺序
一张mini2440启动代码执行顺序表
[单片机]
<font color='red'>S3C2440</font><font color='red'>启动</font><font color='red'>代码</font>执行顺序
深入分析S3C2440启动代码中大小端问题
一、ADS1.2中关于大小端的设置以及对编译后的代码的影响 下面是一段代码在线段模式下编译,生成的二进制文件的内容 大端模式下编译,生成二进制文件的内容 根据上面的内容可以看出:它们的字节序是相反的,也就是说,ADS1.2中对大小端的设置会影响最终生成的二进制文件的字节序。 二、S3C2440启动代码中与大小管相关的代码 Option.inc中相关代码 view plain copy print ? GBLL ENDIAN_CHANGE NDIAN_CHANGE SETL {FALSE} GBLA ENTRY_BUS_WIDTH NTRY_BUS_WIDT
[单片机]
深入分析<font color='red'>S3C2440</font><font color='red'>启动</font><font color='red'>代码</font>中大小端问题
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved