谈谈对固件的初步理解

1. 起因

最近搞嵌入式,接触到了固件(Firmware)这个词。问了一下元宝,它的回答很官方,感觉是那么回事,但是让我自己说,又说不来个所以然来,于是自己就开始揣摩。

2. 揣摩

经过一段时间揣摩,然后接触了一次刷固件的过程,灵光一闪,有种茅塞顿开的感觉。

一般一个嵌入式板子上面,需要用到很多专用芯片。这些专用芯片,一般来说出厂以后,里面的程序就是固定的,基本上不会修改了。所以呢,一般这种专用芯片,在正常工作的情况下,芯片内的程序是不会被修改的,因为它对主控芯片的接口一般都是做一些数据交互,并没有提供更新芯片内部程序的接口。

如果确实想要修改怎么办?办法是有的,只能使用某种专用软硬件工具,把程序烧写到专用芯片的内部存储中。通常内部存储种类有Flash,EEPROM等ROM存储。

讲到这里,大家应该都明白了。固件这个“固”字,是指在正常使用情况下,大部分专用芯片的程序一般无法修改,程序相对固定。而单片机这种东西,我们在开发的时候,是需要频繁烧写程序的,所以单片机里的程序,相对于开发者来说,叫固件就不合适了,叫软件更合适。如果我们想要修改芯片内的程序,一般来说,需要用专门的工具,当然还要有新的程序,把新的程序烧写到芯片中替代老的程序的过程,叫“刷固件”。刷固件一般需要把芯片给拆下来,放到专门刷固件的工具中,进行烧写。

但是呢,技术在发展,有的芯片厂商为了使用方便,在已有通信接口的基础上,增加了直接刷固件的接口。如此一来,主控芯片,一般是单片机的CPU,就可以在不把芯片拆下来的情况下,通过厂家提供的接口来刷固件。这个过程呢就叫OTA升级

3. 结论

综上呢,固件是一个相对的概念,它是指在正常使用过程中,一般不会被修改的程序。对开发者来说,某些第三方的芯片里面的程序,就是固件;对电子产品的用户来说,电子产品里面的程序需要专业人员才能修改,所以电子产品内部的程序,对用户来说也叫固件。如果用户可以自由下载程序,更新程序,修改程序,那么这种程序就更偏向于被称作软件。技术在发展,固件也可以通过比较方便的方式进行升级,比如说通过连接网络就可以升级。这种升级方式就叫做“OTA升级”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

撬动未来的支点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值