食堂窗外有感

食堂窗外

不知不觉已经在华为工作了将近4年,第二个合同又要开始了。回首4年前,恍如隔日,入职的影子历历在目。从那时开始第一次接触嵌入式开发,进入光电领域,一头雾水,满脸迷茫。三年过后,从新兵蛋子变成了会扯皮的老油条。这几年项目虽然做的不少,但总觉得缺少点什么,反思来反思去,是自我的知识水平不足以支撑现在的躯体了,所以近一个月疯狂的看书,疯狂的补习以前知识体系的不足。

当前从事的工作为光电领域软件开发,主要是在ST等MCU上进行软件开发,实现光电信号的控制。分析当前工作主要需要几类知识技能:软件知识,硬件知识,器件原理。

1.软件知识

首先要懂得嵌入式软件是怎么跑的,基于哪个MCU片子开发的软件。如何配置MCU的基础功能,包括:电源/时钟/外设/中断/flash/ADC/DAC/SPI/I2C/UART等各种配置,不管是否调试过各种接口各种外设,至少要达到对这些功能有个整体的认知,遇到问题时,能够心中有个解决问题的思路,如果能够做到对各种问题了然于心,那就非常棒了。按说这些知识应该是在读书期间都已经熟练掌握的,如果没有掌握只能工作期间进行脑补,否则就会交智商税。各种芯片的使用手册,嵌入式相关的数据都是很好的学习资料。

其次熟练掌握C语言,编译原理,汇编原理,操作系统原理,软件工程。对于嵌入式系统开发,以上的几点属于基本功,要稳扎稳打。其实以上这些都是大学学过的课程,到了真刀真枪的实战阶段,才知道这些知识的重要性。

2.硬件知识

作为嵌入式开发人员,也需要掌握相关的硬件知识,这样在分析问题的时候才能够有理有据。AD值如何转换成电压呢?如果不了解硬件电路基础知识,只能够根据电气工程师给的软硬件接口文档中的公式计算,那到底计算的是否正确,只有电气工程师知道。遇到不靠谱的电气工程师,导致重发版本就掉大了,还是自己知道怎么得来的靠谱些。这些都是可以从电路原理图上分析出来的,所以我们软件也要懂得看电路原理图和PCB布线图。这条路很长,就像生米煮熟饭,媳妇熬成婆,什么乱七八糟的。

3.器件原理知识

根据自己不同工作,学习不同的器件原理。比如激光器的控制相关工作,那就要加强光激光器理论的学习,包括DBR原理,DFB原理,外腔式激光器控制原理等。很多途径都可以学习到相关知识:器件问题的相关邮件,培训,会议等。

书中自有黄金屋,当感到工作的乏力时,便需要充电了。多读书多思考,完善知识体系架构,才能够建立技术壁垒,长久发展。后面继续加油!!!