历史上的今天
返回首页

历史上的今天

今天是:2025年02月28日(星期五)

正在发生

2020年02月28日 | s32440启动流程 分析(2)

2020-02-28 来源:eefocus

经典

2440启动过程分析

2440启动过程算是一个难点,不太容易理解,而对于2440启动过程的理解,影响了后面裸机代码执行流程的分析,从而看出2440启动过程的重要性。


2440启动方式和启动方式选择
在S3C2440的datasheet《S3C2440A_UserManual_Rev13.pdf》中搜索map,可以在第5章中搜索到下图。

从此图中,可以得知

OM[1:0] = 01,10,Not using NAND flash for boot ROM

OM[1:0] = 00,  Using NAND flash for boot ROM

而OM[1:0]又是什么呢?

从S3C2440的datasheet《S3C2440A_UserManual_Rev13.pdf》中搜索OM,

可以在第50页“S3C2440A Signal Descriptions”(芯片信号描述)得到下面的表格。

此外,OM[1:0]还决定了nGCS0的总线宽度(后面可以知道:nGCS0对应bank0)。只能在生产中才能将OM[1:0]设置成S3C2440A的测试模式;

在芯片RESET复位周期间,OM[1:0]上的上拉/下拉电阻确定其逻辑电平

00:Nand启动   01:16位    10:32位   11:测试模式

后面可以知道:

OM[1:0]=01,代表的是nor flash的数据宽度为16位。

OM[1:0]=10,代表的是nor flash的数据宽度为32位。

从而,可以得出结论:

2440启动方式有两种启动方式:NOR FLASH启动或NAND FLASH启动。


如何选择从那种方式启动呢?

答案是:通过2440启动方式OM0和OM1引脚来选择。

 

在S3C2440的datasheet《S3C2440A_UserManual_Rev13.pdf》中第5章还可以得到:

BANK0(nGCS0)的数据总线应当配置为16位或32位的宽度。因为BANK0是作为引导ROM的bank(映射到0x0000_0000),应当在第一个ROM访问前决定BANK0的总线宽度,其依赖于复位时OM[1:0]的逻辑电平。

从JZ2440原理图NOR FLASH电路可以得知,使用的NOR FLASH的数据总线宽度为16位。

(NOR FLASH使用了LDATA0到LDATA15,共16根,即NOR FLASH的数据总线宽度为16位)

从而,我们只会使用到OM1=0,OM0=0或1这两种情况。


从而,可以得出下面的结论:

补充:

一般芯片有多种启动方式,而这些启动方式都可以由配置引脚来选择。芯片在启动时读取这些配置引脚的电平,就可以判断从那种方式启动。通常在研发阶段的实验板或者很多学习板(如:JZ2440)通常采用开关或跳线帽等方式来将配置引脚的电平置为高电平或置为低电平。在出厂时, 配置引脚一般通过上下拉电阻来设置电平。


从NOR FLASH启动
从NOR FLASH启动时,由前面的图1,由nGCS0控制的bank0直接连接了nor flash,而bank0能访问的地址范围为:256M(0X00000000----0X08000000),JZ2440开发板使用的nor flash大小为2M(0X00000000----0X00200000),从而S3C2440芯片的物理地址(0X00000000----0X00200000)就由nor flash来占据。


选择从NOR FLASH启动,上电,S3C2440芯片就会去运行nor flash上地址为0x0处的指令。从后面的实验中,可以清楚的知道,读nor flash可以像读内存那样读,但是要用额外的命令向nor flash写入数据。如果nor flash像内存那样读和那样写,那nor flash完全可以被内存所替代。

从NAND FLASH启动
在看本节内容之前,建议仔细看S3C2440A的datasheet《S3C2440A_UserManual_Rev13.pdf》的第6章,对S3C2440芯片对nand flash的支持有一个大概的认识。

 

使用nand flash的理由
目前的NOR Flash存储器价格较高,相对而言SDRAM和NAND Flash存储器更经济,这样促使了一些用户在NAND Flash中执行引导代码,在SDRAM中执行主代码。

可以得到一点:NAND Flash存储器更经济。

 

从NAND FLASH原理图来分析数据总线
可以在网上搜索nand  flash的特点,其实我们从原理图或者nand flash的引脚数目,也可以分析出:nand flash无法像访问内存SDRAM那样直接访问。


JZ2440开发板使用的NAND FLASH大小为256M。如果像内存SDRAM那样,一次将地址全部发出,至少需要28根地址线才能完成256M的寻址。由JZ2440开发板使用的NAND FLASH

芯片手册可知,该芯片实际使用了29根地址线。多一根地址线访问范围更大一些。


而nand flash只有8根数据线和其他控制线,那怎么办?


通过查询NAND FLASH芯片手册知道,只能将地址分成多个字节,按照某种规则,分批传递给8根数据线。nand flash内部再按照某种规则,将几个批次的8根数据线上的数据合并成29根地址线的数据。从而,可以得出读写NAND FLASH都需要特定命令规则来控制传送的数据。

如何识别nand flash的类型
nand flash的页容量有大页(2k、1k)/小页(512字节、256字节),总线宽度有8位/16位,如何区分开发板使用的哪一类型的NAND FLASH呢?


从S3C2440A的datasheet《S3C2440A_UserManual_Rev13.pdf》的第6章,可以得到NAND FLASH启动时的引脚配置:

当复位时,芯片的NAND Flash控制器通过读取引脚NCON、GPG13、GPG14、GPG15的电平来得到外接的NAND FLASH的页大小,地址周期,总线宽度等信息。


在JZ2440V2开发板上实际使用的是大页(一页有2K字节),5个地址周期,8位宽度的NAND FLASH。在JZ2440原理图中,关于NAND FLASH的启动引脚配置的原理图如下:

其中,R15,R16,R17,R14标记为NC,即这些电阻没有焊接。

从而NCON为高电平,EINT21为高电平,EINT22为高电平,EINT23为低电平。

从上图可以知道:

GPG13和 EINT21是同一信号。

GPG14和EINT22是同一信号。

GPG15和EINT23是同一信号。

从而NCON为高电平,GPG13为高电平,GPG14为高电平,GPG15为低电平。

从而S3C2440A芯片从nand flash启动时,让S3C2440A芯片确定外部挂接的是一个大页(一页有2K字节),5个地址周期,8位宽度的NAND FLASH。


从nand flash启动流程
现在已经知道S3C2440A外部挂接的哪一类nand flash,那么就要准备去复制nand中的代码,然后去执行该代码。问题又来了,复制大小是多少?复制到哪里去?复制完接着做什么?并且这个复制过程也只能由S3C2440A的硬件来完成。


从S3C2440A的datasheet《S3C2440A_UserManual_Rev13.pdf》的第6章中:

S3C2440A boot code can be executed on an external NAND flash memory. In order to support NAND flash boot loader, the S3C2440A is equipped with an internal SRAM buffer called ‘Steppingstone’. When booting, the first 4 KBytes of the NAND flash memory will be loaded into Steppingstone and the boot code loaded into Steppingstone will be executed.


 S3C2440A引导代码可以在外部NAND Flash存储器上存储。为了支持从NAND Flash启动,S3C2440A配备了一个内置的SRAM缓冲器,叫做“Steppingstone(垫脚石)”。从nand flash启动时,NAND Flash存储器的前4K字节将被加载到Steppingstone中并且执行加载到Steppingstone的引导代码。


复制大小为多少:4K。

复制到哪里去:Steppingstone(垫脚石)。

复制完接着做什么:执行加载到Steppingstone的引导代码。

从图1,OM[1:0]=00时,选择从nand flash启动,S3C2440A的前4K(0X00000000----0X00001000)就被BootSRAM(即:Steppingstone(垫脚石))所占据。

 总结:

推荐阅读

史海拾趣

Habia Cable公司的发展小趣事

在电子行业中,高博(GBG)公司的发展涉及多个领域和维度,以下是根据不同业务线整理出的五个相关发展故事,每个故事均基于事实描述:

1. 高博教育:私立高等教育与终身学习的引领者

高博教育作为全球教育管理集团(GEM)在中国的旗舰机构,由前摩托罗拉中国区总裁赖炳荣先生创立。公司坐落于苏州工业园区独墅湖高等教育区,致力于发展私立高等教育和终身学习。高博教育成功与香港大学及苏州科技学院合作,创办了苏州港大思培学院,成为江苏省首家香港与内陆合作的院校。此外,高博还与微软(中国)有限公司合资建设苏州高博软件技术学院,开展多层次的软件人才教育,成为江苏省软件人才培养的重要基地。高博教育通过整合全球优质教育资源,为学员提供国际化的课程和学习空间,培养了大量高素质、实用型和国际化的软件人才。

2. 高博(鞍山)半导体有限公司:LED技术的创新者

高博(鞍山)半导体有限公司成立于2019年,位于辽宁省鞍山市,是一家专注于研发、生产及销售LED发光二极管的企业。公司为客户提供多元化的产品,广泛应用于计算机、通讯、消费类电子、汽车电子、工业自动化及医疗等领域。高博(鞍山)半导体有限公司凭借其在LED技术领域的创新能力和完善的产品链,迅速在市场中占据一席之地。公司不仅拥有多项专利和著作权,还积极投资研发,推动LED技术的不断进步。

3. 高博起重设备:物料输送解决方案的提供者

高博公司(GORBEL)自1977年在美国纽约州成立以来,便以提供高效、安全、人性化的物料高架输送解决方案而闻名。公司在北美市场拥有极高的市场占有率,其组合式起重机和旋臂起重机等产品深受客户信赖。为了更好地服务亚洲市场,高博(天津)起重设备有限公司于2006年在天津滨海新区成立,成为美国Gorbel International Inc.在中国的首个生产基地。高博起重设备以其卓越的产品性能和优质的客户服务,在工程机械制造、汽车制造、铁路、风能、航空航天等多个领域赢得了广泛赞誉。

4. 高博医疗集团:血液病与肿瘤治疗的创新者

高博医疗集团是一家专注于血液病和肿瘤治疗的医疗机构集团。近年来,集团通过不断开拓创新,实现了地理版图的快速扩张。在北京、广东、上海等地设立了多家以血液病为专科特色的医疗机构,并成立了以肿瘤为特色的上海阿特蒙医院。高博医疗集团拥有一支由国内外权威专家组成的医疗团队,为患者提供个性化的治疗方案和高质量的医疗服务。同时,集团还积极投入科研创新,取得了一系列卓越的临床和科研成果,在国内外学术界产生了广泛影响。

5. 高博职场文化:激发人才潜能的典范

高博公司在职场文化建设方面也取得了显著成效。公司打破了传统的“论资排辈”体系,以技术、人才为导向,为优秀人才提供了广阔的发展空间。中高管通过高管进阶之旅提升综合能力,新生代员工则通过量身定制的管培生项目进行培养。高博还注重提升员工的职场体验,推出了“高博文化平台和福利平台”,打造数字化职场社交新体验。同时,公司倡导“悦生活·享工作be better@GHG”的健康理念,重视员工的身心健康和职业发展。这些举措不仅增强了员工的归属感和幸福感,也为企业的发展注入了源源不断的动力。

Datasensor公司的发展小趣事

在汽车制造行业中,DATASENSOR的光电传感器被广泛应用于装配线上的物体检测、定位和计数等任务。这些传感器能够快速而可靠地提供准确的数据,帮助企业避免商品受损或不合格产品进入市场。这一应用案例充分展示了DATASENSOR公司产品的出色性能和广泛适用性,也为其在工业自动化领域的领先地位提供了有力支撑。同时,公司还注重客户需求和售后服务,致力于为客户提供最优质的产品和服务,赢得了广泛的好评和信任。

这些故事只是Datasensor公司发展历程中的一部分,但它们充分展示了公司不断创新、追求卓越的精神和实力。作为一家专注于工业自动化光电检测领域的公司,Datasensor将继续秉持客户至上的理念,不断推出更多优质的产品和服务,为全球工业自动化的发展贡献自己的力量。

Dionics Inc公司的发展小趣事

进入21世纪后,随着物联网、人工智能等技术的快速发展,电子行业也面临着深刻的变革。Dionics Inc敏锐地捕捉到了这一趋势,并开始积极布局相关领域。通过持续的技术创新和产品升级,公司成功推出了一系列具有竞争力的新产品,并在市场上取得了不俗的成绩。同时,公司还加强了与高校、科研机构的合作,共同推动电子行业的创新发展。

Electron Products Inc公司的发展小趣事

Electron Products Inc(简称EPI)成立于XXXX年,由一群对电子技术充满热情的工程师共同创立。初期,公司主要从事电子产品的设计和研发,致力于为小型企业和消费者提供高质量的电子产品。通过不断创新和优化产品,EPI逐渐在市场上树立了自己的品牌形象。

Applied Micro Circuits (MACOM)公司的发展小趣事

在经历了多次的收购与转手后,MACOM公司重新获得了独立地位,并开始了新的发展历程。公司推出了首个GaN功率器件,这一技术创新在行业内引起了广泛关注。随后,MACOM继续通过收购微波和射频公司MIMIX以及高速光通信公司Optomai来扩展其业务范围。这些举措不仅增强了公司的技术实力,也为其在全球市场上取得竞争优势奠定了基础。

Central Semiconductor公司的发展小趣事

随着全球电子市场的不断扩大和竞争的加剧,Central Semiconductor积极实施全球化战略,拓展国际市场。公司在全球范围内建立了完善的销售网络和供应链体系,以确保产品能够及时、准确地到达客户手中。

同时,Central还不断开拓新的业务领域,如汽车电子、工业控制、医疗电子等。通过不断的技术创新和市场拓展,Central逐渐在多个领域取得了显著的业绩和市场份额。

这五个故事分别从不同的角度展示了Central Semiconductor在电子行业中的发展历程和成就。无论是坚守与转型、创新开发、对停产产品的支持、裸片产品的开发还是全球化布局与业务拓展,Central都展现出了其敏锐的市场洞察力和强大的市场竞争力。这些故事不仅是对Central发展历史的回顾,也是对其未来发展的展望和期许。

问答坊 | AI 解惑

基于DSP和FPGA技术的液晶显示数字存储示波器研究

基于DSP和FPGA技术的液晶显示数字存储示波器研究 …

查看全部问答>

AXD调试为何加载不了某些源文件

在工程中有loader.c源文件,但进入AXD调试环境后不能自动加载该文件和其他几个源文件。调试到loader.c的函数部分时,看到的是一些汇编代码。请问各位大侠,这种情况发生的原因是什么,该如何解决?…

查看全部问答>

版主在没?为什么串口接受超过8个字节就出错啊?

//设置串口读写时间 COMMTIMEOUTS CommTimeOuts; GetCommTimeouts (m_hComm, &CommTimeOuts); CommTimeOuts.ReadIntervalTimeout = MAXDWORD;   CommTimeOuts.ReadTotalTimeoutMultiplier = 0;   CommTimeOuts.ReadTot ...…

查看全部问答>

关于如何修改自己做成的BIN文件里的一张图或者说一个变量的问题

如题:如何修改自己做成的BIN文件里的一张图或者说一个变量的问题? 一直在想这个问题,有哪个高手指点一下? 就是自己开发的源程序,给别的生产厂商,有些很简单的问题或者标志位就想让他们自己改了,如何用C++来做一个程序呢?? 多少谢了 ...…

查看全部问答>

什么是Tiny Kernel Test Sample Application

Wince的catalog中Tiny Kernel Test Sample Application是什么作用?是不是选中后在生成的系统中就有一个测试tiny kernel的程序? …

查看全部问答>

有人做过MCU51单片机uIP协议栈+ENC28J60网卡实现tcp协议通讯的大大吗?

本帖最后由 paulhyde 于 2014-9-15 03:44 编辑       如题之前在淘宝上买了…

查看全部问答>

这个有意思《令人拍案称奇的存储器演变简史(图文)》

比尔盖茨曾说过一句很著名的话,640K的PC RAM足以满足任何人的需求!当你看完本文时,你将会由此可以证实此话的真实性,与此同时你也会领略到640K是多么庞大的一个存储数字。  穿孔卡片   在磁和电子存储器尚未出现之前,工程师就使 ...…

查看全部问答>

Hire, 有人知道BlackJack这个游戏吗?

Random number generator 怎么写verilog code? Cyclon2 的。 我想在DE2 board显示出random 后出现的数字。 很急。。…

查看全部问答>

信号放大和滤波的顺序

是否信号都需要先滤波再放大呢?如果我的信号噪声放大后不至于使运放失真的话是不是也可以先放大再滤波,这样还能把前级运放产生的噪声一块虑掉?还有如果我使用带增益的有源滤波的话效果和前两种方法又有何区别呢?…

查看全部问答>