新手学习ARM,对片内ram、SDRAM、NOR FLASH和NAND FLASH启动这几个概念不理解,还有uboot不懂,求大虾指点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手学习ARM,对片内ram、SDRAM、NOR FLASH和NAND FLASH启动这几个概念不理解,还有uboot不懂,求大虾指点相关的知识,希望对你有一定的参考价值。

能否给说下ARM板子的这几块内容有什么作用。
首先,我的板子的核心板上,有一个S3C2440的ARM9芯片,SDRAM内存,nand flash,NOR FLASH等。那么,我不明白,片内ram是什么?
还有,系统启动,包括nor flash 启动,nand flash启动,而操作系统是放在nand flash的好像,那么这两块有点像电脑的硬盘吧,而sdram就像内存吧,那片内ram有个什么用啊?
我看到ARM里经常有一个概念叫uboot,和boot-loader是一回事么?而且flash的前4K的内容,是引导程序,这个又是什么,也是uboot么?

总是,对启动的流程和乱,乱的受不了了,感觉门都如不了,希望能给点帮助啊,大侠

    片内的ram用来存储启动代码,在2440初始化sdram之前,代码就在片内ram中运行。片内ram装载的是norflash中的内容,即u-boot。

    uboot放在norflash里,nandflash就存放的操作系统。所以norflash相当于电脑的bios,nanflash才是硬盘。sdram就是内存了

    uboot是一级启动代码,即bootloader,用来加载操作系统(nandflash)到sdram并且执行,当然uboot还能格式化nandflash和安装新系统的功能。

追问

哎,新手啊,刚买的板子,刚又遇到一堆问题,还没解决。
再问下哈,我想知道的细一点,就比如说,现在一个ARM板子,我还没有启动电源,那么这个片内ram,和sdram肯定是没有东西的,那么这个时候,nor flash 和 nand flash里面有个啥呢?
还有,我现在启动板子之后,又有啥跑到片内ram里,有啥跑到sdram中呢?嗯,多谢帮助啊,我会加分的撒,能按照顺序给我大概说下,我略微有个印象先

追答

nor flash 和 nand flash里面肯定有程序啊!!ARM启动后,有个自动的逻辑先从norflash开始执行程序(就像51单片机复位后PC=0000H,从这里开始执行程序),norflash是允许片内执行程序的,这个特性你需要了解。执行程序时,就把部分代码复制到内部sram,再跳转到sram执行完成sdram初始化,再将nandflash中的系统复制到sdram并运行,这样就启动了。

具体的启动过程,你可以在网上搜索到的。

参考技术A 片内RAM,速度最快,CPU存取总线速度最快,静态存储器,总而言之就是快!但造价高而且是易失的(断电不保存数据),用于CPU数据指令暂存,位置在内核

SDRAM,属于动态RAM,位置在内核之外,甚至片外. 速度比静态RAM慢,也是易失的,用于系统计算数据/指令存储

NAND FLAHS NOR FLASH等属于FLASH, 断电可保存数据,用于存储程序代码和常量数据.两者的区别是: NOR是芯片内执行应用程序可以直接在flash内运行,传输效率很高,但是写入和擦除速度慢。 NAND存储密度高,并且写入和擦除的速度也很快但flash的管理和需要特殊的系统接口。

uboot是bootloader的一种.

引导程序是系统上电后一些初始化指令程序,主要是为系统运行做好准备,而没有什么用户功能(如串口读写代码), UBOOT就增加了一些用户功能和界面

2440启动流程

目录


title: 2440启动流程
tags: ARM
date: 2018-09-10 18:59:53
---

2440启动流程

NOR启动

  • NOR启动的时候,NOR Flash 自身地址为0,片内RAM为0x4000,0000
  • 程序直接在NOR上读取,运行
  • NOR 能够像内存一样的读取 ,但不能直接写

NAND 启动

  • 片内4KRAM的地址为0x0000,0000,NOR FLASH 不可见
  • 自动复制Nand前4K的程序到片内RAM中运行

堆栈设置

堆栈可以设置在内部sram,也可以设置在片外的sdram

  • 片内sram分为nor启动和nand启动,nor启动设置为0x40000000+4k,nand启动为4k

  • 使用片外sdram的话要先初始化sdram,地址倒是固定的,可以统一设置sp到这个sdram 0x30000000+32M*2=0x34000000

    技术分享图片

如何判断

  • 当从NAND启动的时候,其实程序是从片内4K的RAM启动,也就是能读能写了
  • 当从NOR启动的时候,NOR是只读的

FAQ:

  • 单片机上电瞬间是怎样在未编程的情况下将程序从nandflash考入sram的?

    2440 有一个 boot rom 阶段,厂家固化了一段启动代码在片内rom中,这段代码能够简单的操作nandflash,把前4K拷贝到sram




以上是关于新手学习ARM,对片内ram、SDRAM、NOR FLASH和NAND FLASH启动这几个概念不理解,还有uboot不懂,求大虾指点的主要内容,如果未能解决你的问题,请参考以下文章

到底啥是nandflash,norflash,sdram,emmc,rom,ram

到底啥是nandflash,norflash,sdram,emmc,rom,ram

s3c2440启动流程

2440启动流程

TQ2440开发板学习纪实--- 初始化片外RAM,让程序有更大内存空间

ARM 地址问题