历史上的今天
返回首页

历史上的今天

今天是:2025年05月08日(星期四)

正在发生

2020年05月08日 | S3C2440 启动流程及汇编代码知识

2020-05-08 来源:eefocus

1、框架

在这里插入图片描述

2、启动过程

大多数ARM芯片从0地址启动


NOR启动:NOR Flash 基地址为0,片内 RAM 地址为 0X4000,0000

CPU 读出Nor上第一个指令(前四个字节),执行

CPU继续读出其他指令执行


Nand启动:片内 4K RAM 基地址为0,Nor Flash 不可访问

2440硬件把Nand前4K内容复制到片内 RAM

然后 CPU 从0地址取出第一条指令


例如:(汇编代码)


ldr sp, =4096  /* nand启动 */

ldr sp, =0x40000000+4096  /* nor启动 */


3、几条常用汇编指令

LDR: 读内存

LDR     R0,[R1]

读取地址 R1 的数据(四字节),保存到R0中 


STR: 写内存命令

STR R0,[R1]

将 R0 的值写入地址 R1 (四字节)


B: 跳转

MOV:

MOV     R0,R1

把 R1 的值赋给 R0 , R0 = R1

MOV     R0,#0x100 , R0 = 0x100


    LDR    R0,=0x12345678

    R0 = 0x12345678


伪指令,他会被拆分为几条真正的RAM指令

MOV R0,=0x12345678 错误的

在这里插入图片描述

6. 加指令


add   r0,r1,#4 r0 = r1 + 4

sub   r0,r1,#4 r0 = r1- 4

sub   r0,r1,r2 r0 = r1- r2


BL:

跳转到***

把返回地址保存到LR寄存器即下一条指令的起始地址


ldm:读内存,写入多个寄存器

stm:把多个寄存器的值写入内存


内存就是寄存器


4、NOR启动和NAND启动的区别

nand flash与nor flash的最主要区别

性能区别

在JZ2440开发板上有两种Flash,分别为nand flash和nor flash。这两种flash的最主要的区别为:nor flash比较稳定,存在里面的数据不易丢失,但是容量小,nor flash在读的时候可以像内存一样操作;其次,NOR的读速度比NAND稍快一些。NAND的写入速度比NOR快很多。nand flash容量大,但是存在位反转,会导致数据丢失,读写需要通过一定的时序。所以一般nor flash里面存放的uboot代码,而nand flash里面存放的是占用容量比较大的linux内核和文件系统。在JZ2440上,nand flash的容量为256M,而nor flash只有2M。


当从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中执行)。


Uboot里的流程:

启动时先将0x4000003C处的数据清零,再读出0x0000003C处地址的数据,如果为0就意味着,这个地址是同时映射在0x4000003C处和0x0000003C处即为nandflash启动,不相等则为norflash启动。


但是最后有一点很重要:

如果是Nand flash启动,必须要复原清零的数据。原因是:在nand boot过后,会核对内部SRAM中的4K程序,和从Nand中拷贝到SDRAM的前4K程序是否一致,如果不一致会进入死循环。

推荐阅读

史海拾趣

Equator Technologies公司的发展小趣事

在XX年代中期,Equator迎来了一个重要的转折点——被Pixelworks公司收购。Pixelworks是一家在显示图像处理领域具有领先地位的公司,其产品线广泛,包括用于各种显示设备的图像处理芯片和软件。与Pixelworks的合并使Equator获得了更广阔的市场和资源支持,加速了其技术和产品的发展。合并后,Equator继续专注于视频处理技术的研发,并与Pixelworks共同推出了多款创新产品。

AMS公司的发展小趣事

随着智能手机市场的迅速崛起,Equator敏锐地捕捉到了这一市场机会。从XX年代后期开始,公司逐渐将业务重心转向手机图像处理领域。通过与手机厂商的合作,Equator成功地将其先进的视频处理技术应用于智能手机中,显著提升了手机的显示效果和用户体验。这一转型不仅为Equator带来了丰厚的回报,也进一步巩固了其在电子行业的地位。

Control Sciences Inc公司的发展小趣事

为了确保产品质量的稳定和可靠,Control Sciences Inc建立了一套完善的质量管理体系。公司从原材料采购、生产过程到产品出厂,都实行了严格的质量控制。同时,公司还引入了先进的质量检测设备和方法,确保每一台产品都符合客户的要求。这一举措使得Control Sciences Inc的产品在市场上赢得了良好的声誉。

Furukawa Electric Co Ltd公司的发展小趣事

随着技术的不断进步,Control Sciences Inc开始寻求更广阔的市场空间。公司积极参与国内外各大电子展会,展示其先进的产品和技术。同时,公司还加大了市场推广力度,与多个知名企业建立了战略合作关系。通过这些努力,Control Sciences Inc的产品逐渐走进了更多的企业和家庭,其品牌影响力也日益增强。

昭华(CHA)公司的发展小趣事

昭华公司一直注重品牌建设和市场拓展。他们通过参加各种行业展会、举办技术研讨会等方式,积极宣传公司的产品和技术优势。同时,昭华公司还加强了与客户的沟通和合作,深入了解客户需求并提供定制化的解决方案。这些努力使得昭华公司的品牌知名度不断提升,市场份额也逐渐扩大。

Blaze Display Technology Co Ltd公司的发展小趣事

在国内市场取得一定成绩后,Blaze公司开始积极拓展国际市场。通过与全球知名企业的合作,公司成功将产品打入国际市场,并赢得了良好的口碑。此外,公司还积极参加国际电子展会和交流活动,与全球同行建立了广泛的合作关系,为公司的进一步发展奠定了坚实的基础。

问答坊 | AI 解惑

嵌入式构架206页

送给需要的朋友。   …

查看全部问答>

51视频教程

经典的视频教程,还不错…

查看全部问答>

RNDIS问题

我将usb设备口切换到rndis功能下。 更新了同步软件后系统自动安装了驱动。 但是,每次wince重启PC才能发现wince,通过插拔usb线没有效果。 另外,驱动有问题,启动不了,错误码(10)。 更新驱动发现同步软件的目录下没有*.sys文件,只有inf文 ...…

查看全部问答>

请问wince 扫描仪驱动的一些问题

   最近需要开发一个扫描仪在wince下的驱动程序,但是没有一点头绪,希望做过的兄弟帮忙给点提示。 我用的板子是2440+wince5.0,扫描仪还没确定。    要做这样一个驱动需要做些什么准备?怎么开始?如果有具体流程就更好了, ...…

查看全部问答>

如何测试storage驱动?

ddk里面有些例子,但是不知道如何测试,我改如何调试呢?thx…

查看全部问答>

如何判断串口数据发送完毕

平台:s3c2440 + wince5.0 在串口驱动文件pdds3c2440_ser.cpp中 void    CPdd2440Uart::XmitInterruptHandler(PUCHAR pTxBuffer, ULONG *pBuffLen) {     ......     for (DWORD dwByteWrite=0; dwByteWriteWrite ...…

查看全部问答>

关于CCS安装的问题,小女子急!没分了,真抱歉啊,5555~

CCS 2.2版本,同一个软件我在公司的机子上安装没有出现任何问题,在自己的机子上安装,装了好几次都出现同样的问题,每次open一个新的工程,就出现no build tools were found.两台机子都同是xp的系统. 请高手指点,拜托了!…

查看全部问答>

想开始学学430,不知道选什么小项目开始玩起

想开始学学430,不知道选什么小项目开始玩起,手上有lauchpad. 大家给给意见…

查看全部问答>

ST新网站真差劲

                                 网站搞得挺漂亮的,但是打开速度很慢,很费劲,找资料也不方便。太差劲了,我觉得还是以前的那个好,所有资料一目 ...…

查看全部问答>

模电中的二级放大电路的动态交流分析

请问这个电路的交流等效电路中,T2管子的电流怎样流?一般来说不是都是由基极b流向射极e,由受控电流源上的电流由集电极c流向射极e,但是为什么答案的电流是由e流向b,受控电流源的电流是由e流向c的呢第二个问题,第二级的输入电阻是不是就是第一级 ...…

查看全部问答>