前辈多年嵌入式开发经验

时间:2021-02-06 14:40:31
作为有个多年开发经验的通信设备嵌入式开发人员我来说几句吧,我刚开始工作时第1年基本上是打杂,改改应用程序,做做一些手工测试。从第2年开始正式接触到完整的嵌入式系统(非Linux),而这个系统BSP基本上不需要更改,解决方案提供商已经提供了现成的demo,我们唯一需要做的只是在上层改应用程序,虽然只是更改没有编多少代码,不过阅读的代码量可就大了许多,也正是通过这个项目接触到嵌入式系统的方方面:bootloader,RTOS,driver,TCP/IP Stack。第3年才又回到嵌入式Linux,也是先从应用层开始,慢慢深入到kernel,改driver, 改bootloader,优化协议栈,netfilter防火墙,到目前自己能独立编写driver,基本上从应用层到内核都能独当一面。感觉个人的发展也要看机遇和公司环境,国内的公司基本上都买现成的解决方案来做二次开发,所谓的解决方案就是Turnkey Solution,包含从bootloader,kernel,driver到application,WEB UI都给你做好了,而所谓的设备商只需要拿过来做做定制,改改UI换下logo把产品包装一下就卖出去。外企普遍要好一些,Intel,qualcomm,WindRiver,Fujitu,EMC什么的,做的东西还是有技术含量的,可以接触到核心的东西。当然不同的公司对业务层面的偏重不一样,通信设备商偏重于各类协议,通信知识,要求对协议栈的了解比较深刻。而像EMC这种存储厂商偏重于存储,要求熟悉Filesystem。不管什么厂商,只要他要求嵌入式Linux开发人员,对kernel有深入了解的人都是他们prefer的。所以,我的建议是先application后kernel,只有对应用层编程熟练后,再进入kernel才能水到渠成易于理解,反过来对kernel的理解也会帮助你更好的写应用层程序。