分享

浅谈ARM和程序下载

 锅锅图书馆gg 2018-07-16

1.ARM是什么?

大家对单片机最熟悉的应该就是51单片机了吧,事实上51单片机指的是一个系列的单片机,有很多种。百度百科上面是这么说的:对所有兼容intel 8031指令系统的单片机的总称。所以大家会在市面上买到英特尔的80C51 87C51艾德梅尔的89C51 89S52 STC(国产宏晶)单片机 89C51 89C52 89C516 等等都是51单片机。所以说用51内核(兼容intel 8031指令系统)的单片机都是51单片机。

ARM就是所有支持RISC指令集(精简指令集)的处理器,也就是说运用ARM内核的控制器都属于ARM。ARM内核就是控制器运算的地方,由ARM公司开发。不同的公司对ARM内核加上I/O控制器,AD/DA模数数模转换模块,UART串口模块,IIC,SPI,CAN等等的通信模块,也就是说不同的公司对ARM处理器进行了二次开发。ARM进行了二次开发之后就变成了SOC(system on chip)片上系统,比如说STM公司对ARM处理器的Contex-M3版本进行了二次开发得到了自己公司的STM32,飞思卡尔公司(2015年3月被恩智浦收购2016年9月被高通收购)对ARM处理器的Contex-M4版本进行二次开发得到了自己公司的K60。

 

2.ARM相比其它类型处理器为什么处理速度更快?

ARM的定义是:ARM就是所有支持RISC指令集(精简指令集)的处理器。显然ARM的优点就和它的特点(支持RISC指令集)有关系。不懂得这一点的一般就是不懂RISC指令集是个什么东东?先说一下指令集是什么吧。指令集是储存在CPU内部(对于ARM处理器就是储存在ARM内核里面的)硬程序,精简指令集实质是对老指令集也就是复杂指令集进行了删减。我们的CPU执行指令的时候是将指令和内部的指令集里的指令一个个进行对比,当找到对应的指令就去执行相应的操作。如果我们指令集里需要对比指令少了,那我们将我们写入到CPU的指令和指令集的指令对比成功的这段时间就会被缩短,所以我们CPU处理指令的速度也就快了。然而有一些非常不常用的指令放到另一个地方,如果CPU在被删减的指令里面找不到对应上的指令就去那个不常用指令的地方再去对比查找(90%的情况都会找到,几乎不会在不常用指令出再对比)

 

3.怎么将程序下载到ARM控制器里面?

 一般用JTAG下载器下载,也可以用USB,也可以用网络。(USB下载和网络下载都需要ARM控制器里面有boot程序支持)

 

4.下载到ARM的程序是怎么存放的?

裸机程序:用JTAG下载是下载到flash里面,支持直接下载裸机程序,程序从可以放置到NorFlash也可放到Nandflash(下载时可以在下载软件的选项上选择)优点:稳定,可靠  缺点:相比网络和USB下载速度极慢(ARM下载裸机程序只能用JTAG下载)

USB下载或者网络下载:这种下载需要板子里面有程序配合,也就是所谓的boot程序(boot程序一定是JTAG下载到板子里的),如果boot程序在NorFlash则通过这种方式把需要下载的程序下载到NandFlash,反之则下载到NorFlash

 

5.下载程序到NorFlash和NandFlash的区别?

NorFlash:CPU可以直接执行程序,并且NorFlash的0地址就是CPU认为的0地址

NandFlash:CPU不能直接执行,硬件自动把NandFlash的程序复制到SDRAM里,然后再执行。

 

6.NandFlash和NorFlash的小介绍(Flash分为NandFlash和NorFlash)

NandFlash:容量大,廉价,一般ARM上带512M的NandFlash,程序下载到NandFlash要比下载到NorFlash要快。但是不能直接在NandFlash里面运行程序,因为容量大,廉价的缘故,买到NandFlash里面存在坏块是正常现象,不影响使用,使用NandFlash还需要一个NandFlash控制器使用(三星公司ARM9内核的s3c2440就就集成了NandFlash控制器)

NorFlash:容量小,价格高,一般ARM控制器带2M,可以直接运行程序

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多