广州佩特电子科技有限公司

示例图片三
网站首页 > 新闻资讯 > 业界资讯

嵌入式核心板开发的几种固件烧录方式介绍

2023-11-23 16:42:15 广州佩特电子科技有限公司 已读

嵌入式的固件需要烧录,今天佩特科技就来介绍一下嵌入式的集中固件烧录方式,大家在拿到嵌入式核心板开发板的时候也方便实用。


固件,也成为firmware。固件其实就是放在存储介质上的数据,当嵌入式核心板开发板启动时,能够从特定的位置找到这些文件,使得核心板开发板能够跑起来,这些文件就是固件。那么在嵌入式linux系统中,经常用到的文件如下:uboot:如uboot.bin;kernel:如uImage;rootfs:如system.yaffs2文件。


嵌入式核心板开发板上电后,会去特定的位置寻找uboot,uboot初始化内存,初始化串口,设置linux启动参数以后,会将内核从flash中加载到内存。然后内核会去挂载根文件系统并启动init。所以上面所说的三种文件可以理解为固件。


A40i核心板.png


一、什么是烧录?


烧录的意思是将一些嵌入式启动所必须的硬件下载到嵌入式的储存设备中,这可能是norflash, 有可能是nandflash,也有可能是SD卡。当这些固件烧录到储存器中,核心板开发板下次启动的时候,直接从这些储存器中找到这些文件,嵌入式系统就能够直接跑起来。


二、烧录哪几个固件


1、开发过程中固件的烧写


(1)只烧录uboot,其他的固件不用烧录?

答案是可以的 。当我们只烧录uboot后,进入uboot模式下,我们可以通过uboot模式下的命令来加载kernel和rootfs。在uboot模式下,我们使用tftp mem_addr kernel_file来加载内核,然后通过nfs来加载rootfs。这样做的前提是你的PC机提供tftp和nfs服务,并且你的开发板需要和PC机在同一网络下。这样做有一个缺点,每次核心板开发板上电时都需要去敲命令来加载内核以及nfs。


(2)烧录uboot和内核,rootfs以nfs的形式挂载到PC机上

在开发过程中经常用到的是这种方案。只烧录uboot和kernel,在核心板开发板启动时,内核会通过nfs去PC机上寻找文件系统。这种方式有的时候可能会导致系统起来比较慢,可能是因为网络状况不好,这样可能会影响你的体验。


(3)烧录uboot、kernel、rootfs

在常见的烧录方式是将这三个文件全部烧录到核心板开发板里,且内核需要支持nfs协议。核心板开发板能够从自己的存储器中将系统启动起来而不需要依赖网络。核心板开发板启动后,可以利用mount命令,将某一目录挂载到PC机上。当应用程序更新后,只需要将可执行文件拷贝到nfs目录下,核心板开发板就可以进行调试了。之前做个某创的FreeRtos项目,调试非常的麻烦,每次程序更新后就需要烧录系统,烧录一次需要5分钟,把脾气都磨没了。linux的调试还是很人性化的。


2、产品发布后的固件升级方式


产品发布后升级固件一般有下面两种方式:①对于Nand Flash或者Nor Flash,通过MTD的工具,即mtd-util中的nandwrite等,操作/dev/mtdN将新的固件写入进去。②对于SD/MMC,通过操作/dev/mmc设备,将新的固件写入进去。


三、将固件烧录到存储介质上的方式


1、通过uboot烧录(两步到位)


有这么几种情形可以使用uboot进行烧录:

· 内核损坏

· 文件系统加载不了

· 存储介质的uboot损坏


只要你的uboot起来,你就可以用这种方式来烧录系统。uboot起来就可以通过存储器起来,也可以通过SD卡起来。比如你之前的存储在inand里面的uboot被擦除了,那么此时你的系统是铁定跑步起来的,那么怎么办呢?你可以通过制作一张SD 卡,卡里面放油可以运行的uboot,将嵌入式核心板开发板的启动方式打到外部的SD卡启动,那么此时只要你的SD里的uboot启动了,你就可以通过uboot下的工具将内核镜像和文件系统烧录到存储器中。比如使用工具fastboot。(当然你也可以只用一步到位的方式进行烧录)


2、通过USB烧录(一步到位)


在工厂量产的环境下,使用USB烧录是做有效也是最简洁的方式。将三个镜像文件准备好,使用特定的烧录工具,将三个文件直接烧录到存储器中。如君正的clone工具。


四、Linux启动和烧录的区别


Linux启动是指linux以哪种方式启动,如从norflash中启动,从inand中启动,从SD卡启动等,可以理解为从哪个地方启动表明uboot放在哪个存储器中。这个是启动而已,但是并不代表启动就一定能够成功。有可能启动到uboot阶段,发现kernel被破坏了。系统起不起来。这个时候就需要重现烧录系统。而l烧录是指将这些固件下载到嵌入式的存储器中。这个两个概念。但是在linux启动uboot后,我们可以通过uboot的命令来烧录系统。


佩特科技是广州地区知名的嵌入式方案研发公司,主打产品为多款嵌入式核心板主板,如全志A133_全志A40i_全志D1-H开发板核心板,瑞芯微RK3288核心板开发板等等。佩特科技不仅研发技术先进,批量出货能力强大,也提供嵌入式芯片方案定制,欢迎咨询洽谈。


Powered by MetInfo 5.3.18 ©2008-2023 www.metinfo.cn