历史上的今天
返回首页

历史上的今天

今天是:2024年11月25日(星期一)

正在发生

2019年11月25日 | s3c2440 NAND与NOR启动方式详解+个人验证

2019-11-25 来源:eefocus

一:地址空间的分配
1:s3c2440是32位的,所以可以寻址4GB空间,内存(SDRAM)和端口(特殊寄存器),还有ROM都映射到同一个4G空间里.

2:开发板上一般都用SDRAM做内存flash(nor、nand)来当做ROM。其中nand flash没有地址线,一次至少要读一页(512B).其他两个有地址线

3:nandflash不用来运行代码,只用来存储代码,NORflash,SDRAM可以直接运行代码)

4:s3c2440总共有8个内存banks
6个内存bank可以当作ROM或者SRAM来使用
留下的2个bank除了当作ROM或者SRAM,还可以用SDRAM(各种内存的读写方式不一样)
7个bank的起始地址是固定的
还有一个灵活的bank的内存地址,并且bank大小也可以改变

5:s3c2440支持两种启动模式:NAND和非NAND(这里是nor flash)。
具体采用的方式取决于OM0、OM1两个引脚

OM[1:0所决定的启动方式

OM[1:0]=00时,处理器从NAND Flash启动

OM[1:0]=01时,处理器从16位宽度的ROM启动

OM[1:0]=10时,处理器从32位宽度的ROM启动。

OM[1:0]=11时,处理器从Test Mode启动。


上述结论,本人已验证。验证过程如下:

使用2440init.s文件中启动方式源码,验证启动方式。

方法:读取BWSCON寄存器中[2:1]即读取OM[1:0]状态


ldr r0, =BWSCON

ldr r0, [r0]

ands r0, r0, #6 ;OM[1:0] != 0, NOR FLash boot

bne copy_proc_beg ;do not read nand flash


1、nor flash启动+Jlink调试过程,详见下图

     

注:BWSCON寄存器地址ox4800, 0000


结论:由上图可知:BWSCON=0x2212,1112 ,即OM[1:0]=01,即处理器从16位宽度的ROM启动。而实际开发板确实从NOR flash启动,同时NOR flash型号是EN29LV160AB 确实是16位宽度。

 

2、nand flash启动+Jlink调试,详见下图

      

结论:由上图可知:BWSCON=0x2212,1110,即OM[1:0]=00,即处理器从nand flash启动。而实际开发板确实从nand flash启动。


当从NAND启动时

cpu会自动从NAND flash中读取前4KB的数据放置在片内SRAM里(s3c2440是soc),同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000)。cpu是从0x00000000开始执行,也就是NAND flash里的前4KB内容。因为NAND FLASH连地址线都没有,不能直接把NAND映射到0x00000000,只好使用片内SRAM做一个载体。通过这个载体把nandflash中大代码复制到RAM(一般是SDRAM)中去执行


当从非NAND flash启动时

nor flash被映射到0x00000000地址(就是nGCS0,这里就不需要片内SRAM来辅助了,所以片内SRAM的起始地址还是0x40000000).然后cpu从0x00000000开始执行(也就是在Norfalsh中执行)。

  

总结:

Arm的启动都是从0地址开始,所不同的是地址的映射不一样。在arm开电的时候,要想让arm知道以某种方式(地址映射方式)运行,不可能通过你写的某段程序控制,因为这时候你的程序还没启动,这时候arm会通过引脚的电平来判断。

1当引脚OM0跟OM1有一个是高电平时,这时地址0会映射到外部nGCS0片选的空间,也就是Norflash,程序就会从Norflash中启动,arm直接取Norflash中的指令运行。

2当OM0跟OM1都为低电平,则0地址内部bootbuf(一段4k的SRAM)开始。系统上电,arm会自动把NANDflash中的前4K内容考到bootbuf(也就是0地址),然后从0地址运行。

这时NANDFlash中的前4K就是启动代码(他的功能就是初始化硬件然后在把NANDFlash中的代码复制到RAM中,再把相应的指针指向该运行的地方)

为什么会有这两种启动方式,关键还是两种flash的不同特点造成,NOR FLASH容量小,速度快,稳定性好,输入地址,然后给出读写信号即可从数据口得到数据,适合做程序存储器。NAND FLASH 总容量大,但是读写都需要复杂的时序,更适合做数据存储器。这种不同就造成了NORflash可以直接连接到arm的总线并且可以运行程序,而NANDflash必须搬移到内存(SDRAM)中运行。

在实际的开发中,一般可以把bootloader烧入到Norflash,程序运行可以通过串口交互,进行一定的操作,比如下载,调试。这样就很可以很方便的调试你的一些代码。Norflash中的Bootloader还可以烧录内核到Norflash等等功能。

推荐阅读

史海拾趣

ASSMANN WSW components公司的发展小趣事

ASSMANN WSW components公司的创立源于一个对电子行业充满热情的家族。起初,它只是一个小型家族企业,专注于为当地电子市场提供连接器和其他基础电子元件。然而,凭借其出色的产品质量和专业的服务态度,ASSMANN WSW逐渐赢得了客户的信任和好评。随着时间的推移,公司的业务范围逐渐扩大,不仅在国内市场取得了显著成绩,还开始进军国际市场。

Adaptive Networks Inc公司的发展小趣事

随着公司规模的扩大和产品质量的提升,ASSMANN WSW components公司开始积极拓展全球市场。通过与全球知名企业的合作,公司成功打入国际市场,产品远销海外。同时,公司还积极参加国际电子展会和交流活动,与全球同行建立了广泛的合作关系。这些举措不仅提升了ASSMANN WSW的品牌知名度和影响力,还为公司带来了更多的商业机会和发展空间。

振宝佳(DMBJ)公司的发展小趣事

振宝佳(DMBJ)公司自成立之初,就专注于贴片铝电解电容的研发与生产。在1998年之前,公司一直在台湾深耕细作,积累了丰富的技术实力和市场资源。进入21世纪,随着电子产业的快速发展,振宝佳意识到技术突破的重要性。于是,公司投入大量资源,研发出多项专利技术,这些技术不仅提升了产品的性能,也增强了公司的市场竞争力。

CITIZEN公司的发展小趣事

进入21世纪,西铁城公司在技术创新方面继续取得显著进展。其中,光动能技术的开发是公司历史上的一大里程碑。1995年,西铁城推出了第一只光动能手表,这一技术能够吸收任何可见光源并转化为动能,为腕表提供持续的动力。随后,公司不断对光动能技术进行改进和优化,使其更加精确、高效。这一技术的成功应用,不仅提升了西铁城产品的竞争力,也为整个电子行业带来了新的发展方向。

Cooper Industries公司的发展小趣事

随着市场需求的不断变化,Cooper Industries不断通过收购来扩大其业务范围和提升技术实力。例如,在2008年,公司宣布收购了三家公司:Sure Power Industries、OMNEX Control Systems和Roam Secure。这三家公司在各自的领域都有着丰富的经验和卓越的技术,收购后极大地增强了Cooper在电力系统管理、无线电远程控制以及文字报警、区域警示系统等领域的能力。这些收购不仅使公司的产品线更加丰富,也为其在全球市场的竞争提供了有力武器。

Gentron Corp公司的发展小趣事
确保电源插头和插座正常工作,电源线未损坏,电源电压符合电路要求。

问答坊 | AI 解惑

初学PIC单片机

想知道学PIC单片机需要什么软件? 在网上查的是需要: 1、MPLABV8.43(从microchip网站下的) 2、PICC编译器(C语言编译器) 3、PIC单片机单片机烧写器(具体软件暂时没查到)    有精通PIC单片机的高手请给予一下指点,其中第二,第 ...…

查看全部问答>

gogogo

[url=http://www.artgoin.com][/url]爱艺购,艺术的天堂,艺术的宝库,爱好艺术的人都该去看看,获取能找到一件稀世珍宝欧…

查看全部问答>

关于加速计和陀螺仪的测试

各位高手有没有测试过加速计和陀螺仪这两颗的功能阿,三轴加速计有X,Y,Z三个电压输出,都是经过其内部的AD转换后输出的,不知道这三个方向上的电压是怎么变化的,是有加速度的时候变化呢,还是位置改变了变化啊? 陀螺仪有X,Y两个电压输出,也是 ...…

查看全部问答>

关于MTD驱动的问题

很多MTD驱动都有调用simple_map_init()函数来初始化read,write等函数,不知道这个函数的用法,请大虾帮忙讲一讲啊,如果我需要改变这些read,write函数,该怎么办啦?…

查看全部问答>

求职: 请问有没有人需要高级WINCE工程师--限深圳地区!

求职: 请问有没有人需要高级WINCE驱动工程师--限深圳地区! 如有,请如下EMAIL联系 lumit_hu@126.com…

查看全部问答>

英蓓特STM32ARM开发板的初级改造(有图)

上周在研讨会上买了英蓓特的开发板,试了下,感觉有几个地方不爽,所以就自己动手DIY了:1)USB供电问题,必须插2条USB线,可怜我的本本一共才3个,鼠标用了一个,被他全占了,其它USB-232就没法用了;2)板子附带的1602没有接背光,而实际这 ...…

查看全部问答>

關於LMF232H5QD的UART問題

各位高手大家好,小妹我用此板子的UART出了一點問題,大家可以幫幫我嗎? 感激不盡 問題是這樣的,我開啟了八個UART,為了使輸入資料可以做辨識,個別在UART4跟UART5的地方 加了三個#字號跟一個通道編號 例如:UART4是  ###Edata 這樣 ...…

查看全部问答>

今年会出功率放大类的吗?

本帖最后由 paulhyde 于 2014-9-15 03:16 编辑 今年会出功率放大类的吗    …

查看全部问答>

这几天学习SimpliciTI协议栈的小总结合小纠结

SimpliciTI简介: SimpliciTI是TI开发的专门针对其CCxxxx系列无线通信芯片的网络协议。 它支持两种网络拓扑结构:严格的点对点通信和基于星型的网络拓扑结构,在星型连接中Hub点在SimplciTI被称为Access Point,简称AP.(AP就是常说的网关,数据中 ...…

查看全部问答>

TM4C 1294XL

老师给了一块tm4c 1294的launchpad,说让我们自己玩,但之前没接触过arm这些东西,接触过单片机;所以完全不知道怎么开始??这块板子能干嘛我都不知道,该怎么学习??完全处于迷茫状态??望大神相助,指点一二,让我有个方向!!非常感谢! …

查看全部问答>