IMX6ULL——启动流程(与stm32对比)
一、IMX6ULL——启动流程
飞向深空关注
2021.02.08 10:26:55字数 1,387阅读 1,754
1.IMX6拿C来编程需要C运行环境,这个运行环境由arm汇编来实现,文件夹的start.s文件就是启动文件,来实现C运行环境。其实STM32也有这个.s文件,拿H7举例,startup_stm32h753xx.s,这个文件是MDK自动生成的,不需要自己编写。
2.IMX6编程到运行需要把所有.c文件变成.o可执行文件,然后把所有.o文件链接在运行地址0x87800000转变成一个.bin文件,但是仅仅是.bin文件并不能在IMX中跑,需要在.bin文件头部加上数据头变成.imx文件传入IMX才能运行。
3.上述操作,可以编写make文件来实现,make文件可以实现通用,避免每增加一个文件就需要更改上述的命令。其实make文件也是实现了上述步骤,但最终是实现.bin文件。其实STM32也背地里帮你实现了make文件的功能,MDK帮你把.c文件变为.o然后变为.bin最后变为.hex文件即stm32要的执行文件,等价于IMX6的.imx文件
4.生成了.imx文件,但是如何让imx6获取到代码并执行? 这就涉及到了启动方式。IMX6的启动方式由26个IO所决定,其中有boot0,boot1和其余24个IO。boot1 - boot00 0 从FUSE启动 , 不用0 1 串行下载 , 用到但是代码定型使用到1 0 内部boot模式,用到,常用
串行下载:串行下载的意思就是可以通过 USB 或者 UART 将代码下载到板子上的外置存储设备中这个下载是需要用到 NXP 提供的一个软件,一般用来最终量产的时候将代码烧写到外置存储设备中的。
内部boot模式:在此模式下,芯片会执行内部的 boot ROM 代码,这段 boot ROM 代码会进行硬件初始化(一部分外设),然后从 boot 设 备(就是存放代码的设备、比如 SD/EMMC、NAND)中将代码拷贝出来复制到指定的 RAM 中,一般是 DDR。上面这句话看起来有点难懂,其实就是选了这个模式就先执行内部boot rom程序初始化硬件,然后根据boot0/1的选择和24个IO的选择的启动方式把从什么地方取到.imx文件。可以根据启动方式的配置,配置为从①、接到 EIM 接口的 CS0 上的 16 位 NOR Flash。②、接到 EIM 接口的 CS0 上的 OneNAND Flash。③、接到 GPMI 接口上的 MLC/SLC NAND Flash,NAND Flash 页大小支持 2KByte、4KByte和 8KByte,8 位宽。④、Quad SPI Flash。⑤、接到 USDHC 接口上的 SD/MMC/eSD/SDXC/eMMC 等设备。⑥、SPI 接口的 EEPROM。从这几个地方取.imx文件,其实就是在这几个地方启动,我现在看到的章节,原子说它用5,从SD卡启动。Boot ROM还会初始化IMX的时钟式,主频396Mhz。其实.imx文件下载到SD卡并不算完,代码最终要被放在跟IMX6u连接的DDR3(SDRAM)中,因为imx6没有内部SRAM使用,所以代码最后放到SDRAM运行了,Boot ROM 中有初始化DDR3的代码。
boot0,boot1如上,其余的24个IO,在正点原子板子上用于了LCD , 其实这24个IO用啥都没关系,它只在启动时候用于启动方式选择,后面自动变成普通IO。这个24个IO全部下拉, 实际只用其实6个。具体是哪几个我目前不去管它,只需要知道这板子上8个管脚作用。设置 启动设备0 1 x x x x x x 串行下载,可以通过 USB 烧写镜像文件。1 0 0 0 0 0 1 0 SD 卡启动。1 0 1 0 0 1 1 0 EMMC 启动。1 0 0 0 1 0 0 1 NAND FLASH 启动。
目前选SD卡启动方式
5..bin文件转化成.imx文件。也需要几个步骤,但正点原子提供了一个软件imxdownload来实现了着几个步骤,只需要把这个软件放在.bin文件同级目录下就行了,但此时观察软件名字发现是灰色,需要使用chmod 777 imxdownload来给这个软件可执行权限,发现名字变成绿色可以执行。软件是可以执行了,但如何来使用?上面说到启动设备选择SD卡,于是就用这个软件把.bin文件变成.imx文件传入到SD卡。目前软件有了,启动方式决定了,还插SD卡,拿读卡器装上SD卡,插到电脑上,选择接入到Ubuntu , 执行命令 ls /dev/sd* 看看有没有新增的sd* ,不能决定就插拔SD卡看谁在变化,找不到SD卡重启ubuntu。有SD卡文件化的文件后,执行命令 ./imxdownload led.bin /dev/sdf 就可以把.imx文件传到SD卡。注意拿空SD卡,因为会先格式化清空SD卡。
0人点赞
日记本
NAND Flash与NOR Flash究竟有何不同|半导体行业观察
来源:内容由 微信公众号 半导体行业观察 (ID:icbank) 翻译自「embedded」,作者 Avinash Aravindan,谢谢。
嵌入式系统设计人员在选择闪存时必须考虑许多因素:使用哪种类型的Flash架构,是选择串行接口还是并行接口,是否需要校验码(ECC)等。如果处理器或控制器仅支持一种类型的接口,则会限制选项,因此可以轻松选择内存。但是,情况往往并非如此。例如,一些FPGA支持串行NOR闪存、并行NOR闪存和NAND闪存来存储配置数据,同样,它们也可以用来存储用户数据,这使得选择正确的存储器件更加困难。本文将讨论闪存的不同方面,重点放在NOR闪存和NAND闪存的差异方面。
存储架构
闪存将信息存储在由浮栅晶体管制成的存储单元中。这些技术的名称解释了存储器单元的组织方式。在NOR闪存中,每个存储器单元的一端连接到源极线,另一端直接连接到类似于NOR门的位线。在NAND闪存中,几个存储器单元(通常是8个单元)串联连接,类似于NAND门(参见图1)。
NOR Flash(左)具有类似NOR门的架构。NAND Flash(右)类似于NAN
NOR Flash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100%已知的零件寿命。缺点包括较大的单元尺寸导致每比特的较高成本和较慢的写入和擦除速度。
相比之下,与NOR闪存相比,NAND闪存具有更小的单元尺寸和更高的写入和擦除速度。缺点包括较慢的读取速度和I / O映射类型或间接接口,这更复杂并且不允许随机访问。值得注意的是,NAND Flash中的代码执行是通过将内容映射到RAM来实现的,这与直接从NOR Flash执行代码不同。另一个主要缺点是存在坏块。NAND闪存通常在部件的整个生命周期内出现额外的位故障时具有98%的良好位,因此,器件内需要ECC功能。
存储容量
与NOR闪存相比,NAND闪存的密度要高得多,主要是因为其每比特成本较低。NAND闪存通常具有1Gb至16Gb的容量。NOR闪存的密度范围从64Mb到2Gb。由于NAND Flash具有更高的密度,因此主要用于数据存储应用。
擦除/读写
在NOR和NAND闪存中,存储器被组织成擦除块。该架构有助于在保持性能的同时保持较低的成本,例如,较小的块尺寸可以实现更快的擦除周期。然而,较小块的缺点是芯片面积和存储器成本增加。由于每比特成本较低,与NOR闪存相比,NAND闪存可以更经济高效地支持更小的擦除块。目前,NAND闪存的典型块大小为8KB至32KB,NOR Flash为64KB至256KB。
NAND闪存中的擦除操作非常简单,而在NOR闪存中,每个字节在擦除之前都需要写入“0”。这使得NOR闪存的擦除操作比NAND闪存慢得多。例如,NAND闪存S34ML04G2需要3.5ms才能擦除128KB块,而NOR闪存S70GL02GT则需要约520ms来擦除类似的128KB扇区。这相差近150倍。
如前所述,NOR闪存具有足够的地址和数据线来映射整个存储区域,类似于SRAM的工作方式。例如,具有16位数据总线的2Gbit(256MB)NOR闪存将具有27条地址线,可以对任何存储器位置进行随机读取访问。在NAND闪存中,使用多路复用地址和数据总线访问存储器。典型的NAND闪存使用8位或16位多路复用地址/数据总线以及其他信号,如芯片使能,写使能,读使能,地址锁存使能,命令锁存使能和就绪/忙碌。NAND Flash需要提供命令(读,写或擦除),然后是地址和数据。这些额外的操作使NAND闪存的随机读取速度慢得多。例如,NAND闪存S34ML04G2需要30μS,而NOR闪存S70GL02GT需要120nS。因此,NOR比NAND快250倍。
为了克服或减少较慢读取速度的限制,通常以NAND闪存中的页方式读取数据,每个页是擦除块的较小子部分。仅在每个读取周期开始时使用地址和命令周期顺序读取一页的内容。NAND闪存的顺序访问持续时间通常低于NOR闪存设备中的随机访问持续时间。利用NOR Flash的随机访问架构,需要在每个读取周期切换地址线,从而累积随机访问以进行顺序读取。随着要读取的数据块的大小增加,NOR闪存中的累积延迟变得大于NAND闪存。因此,NAND Flash顺序读取可以更快。但是,由于NAND Flash的初始读取访问持续时间要长得多,两者的性能差异只有在传输大数据块时才是明显的,通常大小要超过1 KB。
在两种Flash技术中,只有在块为空时才能将数据写入块。NOR Flash的慢速擦除操作使写操作更慢。在NAND Flash中,类似于读取,数据通常以页形式编写或编程(通常为2KB)。例如,单独使用NAND闪存S34ML04G2 写入页面需要300μS。
为了加快写入操作,现代NOR Flashes还采用类似于页面写入的缓冲区编程。例如,前文所述的NOR闪存S70GL02GT,支持缓冲器编程,这使其能够实现与单词相似写入超时多字节编程。例如,512字节数据的缓冲区编程可以实现1.14MBps的吞吐量。
能耗
NOR闪存在初始上电期间通常需要比NAND闪存更多的电流。但是,NOR Flash的待机电流远低于NAND Flash。两个闪存的瞬时有功功率相当。因此,有效功率由存储器活动的持续时间决定。NOR Flash在随机读取方面具有优势,而NAND Flash在擦除,写入和顺序读取操作中消耗的功率相对较低。
可靠性
保存数据的可靠性是任何存储设备的重要性能指标。闪存会遭遇称为位翻转的现象,其中一些位可以被反转。这种现象在NAND闪存中比在NOR闪存中更常见。出于产量考虑,NAND闪存随附着散布的坏块,随着擦除和编程周期在NAND闪存的整个生命周期中持续,更多的存储器单元变坏。因此,坏块处理是NAND闪存的强制性功能。另一方面,NOR闪存带有零坏块,在存储器的使用寿命期间具有非常低的坏块累积。因此,当涉及存储数据的可靠性时,NOR Flash具有优于NAND Flash的优势。
可靠性的另一个方面是数据保留,这方面,NOR Flash再次占据优势,例如,NOR Flash闪存S70GL02GT提供20年的数据保留,最高可达1K编程/擦除周期,NAND闪存S34ML04G2提供10年的典型数据保留。
编程和擦除周期的数量曾是一个需要考虑的重要特性。这是因为与NOR闪存相比,NAND闪存用于提供10倍更好的编程和擦除周期。随着技术进步,这已不再适用,因为这两种存储器在这方面的性能已经很接近。例如,S70GL02GT NOR和S34ML04G2 NAND都支持100,000个编程 - 擦除周期。但是,由于NAND闪存中使用的块尺寸较小,因此每次操作都会擦除较小的区域。与NOR Flash相比,其整体寿命更长。
表1提供了本文中讨论的主要内容摘要。
NOR闪存和NAND闪存的主要特性与一般和具体比较数据的比较。
通常,NOR闪存是需要较低容量、快速随机读取访问和更高数据可靠性的应用的理想选择,例如代码执行所需。NAND闪存则非常适用于需要更高内存容量和更快写入和擦除操作的数据存储等应用。
相关问答
nandflash 最快读写速度?NAND闪存的最快读写速度取决于具体的技术和规格。目前,高性能NAND闪存的读取速度可以达到几百兆字节每秒(MB/s),而写入速度通常在几十到一百多兆字节每秒之间...
inand是什么文件?inand是一个文件系统的缩写,全称为"InternalNANDFlashDisk",意为内部NAND闪存磁盘。它是一种用于嵌入式系统中的存储设备,通常用于存储操作系统、应用...
512M NANDFLASH 是啥意思?扩充(展)内存的意思吧.应该是指你的机扩充(展)了512M的内存.或者最大可以扩充(展)512M内存扩充(展)内存的意思吧.应该是指你的机扩充(展)了512M的内存.或...
为什么 nand flash 会重启?NANDFlash有可能会在使用过程中出现重启的情况,主要是因为其内部电路存在一些问题,比如电容放电不完全、电路噪声等。这些问题会导致NANDFlash内部的某些...
英文 flash 是什么意思?_作业帮[最佳回答]flash:[fl����]n.闪光,闪现,一瞬间v.闪光,闪现,闪烁[计算机]Adobe公司的动画技术词形变化:动词过去式:flashed过去分词:flashed现在分词:f...
nand flash 寿命多长?nand闪存寿命3年左右,寿命基本差不多,个人觉得闪存卡还是寿命短于U盘因为U盘是存储芯片焊接在一个微电路板上的,外面还有塑料或者金属的外壳保护,而闪存里面...
nand flash 详解?Nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速...
nandflash norflashmcpflash的区别?norflash的存储区是连续的支持连续烧录,nand不支持连续烧录,其存储区不是连续的。nor出厂可以保证是好的,不存在坏块;nand可能存在坏块。其他的区别网上可查...
CHECKINGNVRAM中文是什么意思啊?检查NVRAMNVRAM是非易失性随机存储器的意思,在电脑中就是内存,楼主遇到的问题是主板在检测内存通不过,可能有几个原因,一个是主板出现故障,另外可能是内存...
ssd nand 区别?SSD指的固态硬盘,固态硬盘上存储信息的方式是采用Flash芯片,Flash芯片主要分为NANDFlash和NorFlash。简单来说,SSD硬盘是一个由若干个NANDFlash或者NorFl...