裸机开发
裸机开发,用通俗易懂的话就是不带操作系统的嵌入式开发。常会接触的芯片有51和STM32。生活常见的产品应用有3D眼镜和遥控器等,其都与裸机开发有关。
在裸机开发中,除了懂C语言,你还要学会看电路图。与此同时,你还需要学会看英文芯片手册。因为在开发中,芯片的说明使用手册通常都是国外产出的,所以其说明书大多数都是英文,所以需要你具备阅读英文阅读的能力。
总而言之,在裸机开发中,你需要具备C语言编程能力,英文阅读能力以及看电路图的能力。
驱动开发
驱动开发是建立在裸机开发的基础之上。驱动开发和裸机开发一个最大的不同点就是,驱动开发编写的程序是运行在操作系统的上。在驱动开发中,若想要把驱动加载进入操作系统,则你的驱动需要按照操作系统的编写规则去进行,如此才能把驱动加载进入操作系统,以此来完成驱动开发的工作。
在驱动开发中,除了具备上述裸机开发的所述的技能之外,还需要你具备Makefile,Linux命令,Linux的Shell编程以及Linux设备驱动原理等知识。
系统移植
系统移植就是将系统移植到对应开发板上,因为针对每种特定的开发板,原生操作系统烧录进去不一定可以运行,所以此时就需要对系统进行修改,然后将操作系统烧录到开发板,才能使开发板正常地运行操作系统。
常见的操作系统移植工作有两大类,Linux系统移植和Android系统移植。
系统移植是建立在驱动开发技能的基础上,除了掌握上述驱动开发的技能外,你还需要对操作系统的整个运行流程都较为熟悉。当操作系统在开发板上跑着报错了的时候,你才能准确定位问题所在,从而知道如何着手怎么解决此类问题。
总结
C语言只是大家进入软件开发领域的第一步,所以对于只学会了C语言又想进入嵌入式领域的小伙伴们,建议可以先着手从裸机开发开始。
关于嵌入式开发的其他细节,也可以参考偶的另一篇文章。希望此问题对于仅掌握C语言的同学有一定的帮助和认识。如果喜欢偶的文章,记得关注转发哦!
关注偶,不定期分享好玩科技知识,带大家一起体会探索科技的那份独有思考和乐趣。