📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合?
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ?不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处
Firmware是软件,但不同于计算机软件产品,特指那些小型系统(各种各样的单片机控制器)上独立运行的特制的软件产品,比如:遥控器,电视机,洗衣机等等。Firmware是这些产品的大脑,几乎控制着产品所有用户交互功能的实现。它非常重要,对特定产品,Firmware往往是实现竞争优势的主要部分,因为它是软件,看不见摸不着,也就不容易抄袭模仿和破解。
Firmware开发岗位在市场上有多种称呼:嵌入式软件开发工程师,Firmware工程师,固件工程师。
由于现在的几乎所有的电子产品,内部都需要一个小MCU,也就都需要编写Firmware。这意味着这个行业是非常巨大的,相对应的,对Firmware开发人员的需求,也是巨大的。所以,Firmware开发人员市场需求体量是巨大的。
Firmware的市场薪资方面,类比上讲,比不了纯软件开发人员,当与硬件工程师,结构工程师比较的话,有着一定的优势。整体市场薪资略高于硬件和结构开发人员。
最开始都是初级 - 中级 - 高级Firmware工程师,再往后,转管理或继续技术路线,每个行业都差不多。天花板也就是看细分行业的天花板和平台。最好的技术平台是MCU原厂和细分行业的龙头老大企业。
芯片行业产出芯片,嵌入式行业出入芯片,产出智能硬件产品。因此芯片公司一般是有两种开发人员,一种是开发芯片的;一种是配合芯片研发相关软件(SDK),也就是固件开发,开发这个芯片非常贴近的那些底层代码。
1、能读懂电路图,理解产品的电子设计原理,Firmware开发是基于硬件设计的。不需要特别深入,但一定要能读懂硬件的设计,才能根据硬件设计,编写对应的Firmware功能。
2、熟悉计算机体系结构和原理,理解Firmware程序在单片机(MCU)上启动,执行过程。
3、掌握并熟练使用C语言进行开发,懂汇编语言。
4、掌握常用的MCU通讯接口协议:I2C,SPI,UART,I2S。
5、掌握特定领域的应用协议:HTTP,USB,BT/BLE,HDMI,WIFI。
6、熟悉至少一种常用的嵌入式操作系统:Lunix,uCOS-II,ThreadX,VxWorks,FreeRTOS。
固件的存储介质可以包括以下三种:
a. ROM(只读存储器):这是最常见的固件存储介质之一,其中的数据在制造过程中被固化,用户无法进行修改。
b. Flash存储器:Flash存储器是一种可擦写和可重写的存储介质,广泛用于固件存储。它可以通过专门的程序进行擦除和写入操作。
c. EEPROM(电可擦可编程只读存储器):EEPROM是一种可擦写的存储介质,它可以在电源关闭的情况下保留数据。与Flash存储器相比,EEPROM更适用于小容量的存储需求。
固件的生成文件格式通常根据不同的硬件平台和开发工具而有所不同,以下是其中三种常见的文件格式:
a.bin:二进制文件是最基本和常见的固件文件格式之一。它是由机器语言指令组成的二进制形式,可以直接加载到目标设备中运行。
b.hex:十六进制文件是一种常见的固件文件格式,通常用于微控制器和嵌入式系统。它将固件的机器语言指令以十六进制数的形式表示,适合直接烧写到存储器中。
c. elf(Executable and Linkable Format):ELF是一种通用的可执行文件格式,广泛用于嵌入式系统和操作系统。它包含了程序的可执行代码、数据和其他相关信息,可以用于调试和动态加载。