1。C语言简介:大部分嵌入式编程使用C语言,还有少量汇编,C语言必须精通。电路:具有模拟电路和数字电路的基础知识,能大致看懂电路原理图;掌握从原理图到PCB板的技巧或常识;能够焊接、调试和使用常用仪器。51单片机:虽然落后,但学起来比较简单,IO、中断、定时器、AD、Flash、UART、IIC等基础;辅以简单的开发板练习,巩固基础和原理。基于C51,可以看datasheet,使用官方库或者寄存器设置,可以实现难度适中的裸机程序;达到这种能力后,学一个例子很容易,换成其他模型也能很快掌握。2、高级ARM单片机:8位单片机是基础,升级到32位ARM是阶段目标。一般选择STM32,资料丰富。在原厂库函数基础上实现复杂功能,连接外设,如蓝牙模块、GPS模块等,实现数据的采集、过滤、存储、传输。编译、链接、OTA、socket等理论方面也需要了解。实时操作系统:裸机开发是基础,要完善必须运行系统,如freerRTOS、rt-thread等。学习移植,使用系统接口开发复杂功能,尝试研究实时操作系统的源代码。它的数据结构和编码规范是学习的参考资料。注意软件分层和模块化的思想。应用层:掌握一定的C++或QT基础,开发一些辅助工具,快速验证纯软件的逻辑,体会面向对象开发的思想。其他语言如perl、shell、python、批处理等基本都可以学,只要会写就可以一边百度。正式项目一般都是基于原有的SDK开发,非通用芯片使用独特的开发环境、调试工具等,有了之前的基础,新平台1-3周就够了。做项目和学习侧重点不同,要求稳定,性价比高,不追求技术进步。总结学习过程中失败的教训,梳理开发过程和技巧,整理成技术文档,加深理解。这些文件不仅是给自己的,也是给别人的。3、规划有一定的基础。后续发展看个人爱好或市场需求,软件或硬件或全栈。与嵌入式软件相比,需求量更大。细分单片机开发支持RTOS实时系统或Linux。前者容易,后者需求大,但上手难。即使你精通某个组件或方向,你也可以发展得很好。Linux路线,先学应用开发,再驱动,最后深入内核。基本上,规划大概率决定了职业方向。早计划,提前准备,有针对性的学习RTOS或者Linux或者硬件电路,后期深入开发。如果技术路线不适合,稍微有点基础搞营销也是有好处的。除了技术,嵌入式开发对行业经验也有一定的要求。不同的行业有不同的技术重点。可以参考相关企业的招聘要求,有针对性地了解。选择比努力更重要。同样是软件开发,不同行业差异很大。尽量选好方向,第一份工作选择大公司。有了这些起步背景,后续发展会更好;如果一开始没有选好方向和平台,折腾下来就会走很多弯路。或许一生的事业发展都取决于一条错误的道路,无论你如何努力,都很难达到一定的高度。4、发展“三人行,必有我师;择善而从之,改恶”,无论从事何种职业,都要善于总结和学习身边人的长处,比如软件开发,优秀的阅读开源代码是快速提升软件开发水平的主要途径。不断学习,从深度和广度上发展,总结和分享技术成果。如果你觉得没有参考对象,说明你已经成为权威或者是时候换个地方了。5.个人想法:我曾经很迷茫。有的老人一辈子做饭,但厨艺还是有限;一些烹饪技校的学徒,几年下来,做的菜明显比普通家庭主妇高。或许这个问题的答案就是不断学习,不断改进。社会在进步,科技在更新,我们也不断接触新技术。没有必要自己做。能够评估可行性并知道如何实现就足够了。有需要的时候,我们可以细说。嵌入式系统开发有很多方向。只要肯专攻研究,精通一门,成为食物链顶端的人,人生轨迹就不会差。嵌入式软件开发,C语言是基础;如有需要请加个人微信,微信隐藏在C代码中://个人微信#defineUNKNOWN('-'-'-')#defineC(c)#c[0]+23#defineCC"%"#defineCCCC"c"CC"c"#defineCCCC(c)??=c"02"intmain(){inta=100;charerror=0xFF;charwork="RTOS"['/'/'/']/2021;printf("c"CCC"n"CCC"%c%"CCCC(c)"%c"CCC"\012",work["mtk"]-5,work["嵌入式系统"],work["gps"],\UNKNOWN["java"],UNKNOWN+3["linux"],(-~UNKNOWN)["Android"],\C(c),UNKNOWN??("my_wechat"??),"numberhere"??(2??)+错误);返回0;}
