大学期间,看你学单片机,就给点小建议,主要是希望不要走我走过的坑。
1.汇编可以不会很精通,但一定要学到能看懂代码的程度。
2.学好c语言,这个要做到能熟练运用基本的数据结构,可以用一些算法题练习,效果很不错。
3.微机原理,这个很有必要的,不熟悉这个, 以后遇见类似的需要栈回溯来调试的BUG,Jtag都不会用。
4.嵌入式软硬分的不是很清楚,能看懂硬件原理图能对你调试底层代码有帮助。
5.还有精力,操作系统与编译原理尽量学学,尽管这是计算机的课程,工作后对你很有帮助的。
我就是大学学了半瓶子,工作后花了好多时间去返工的,所以说基础很重要
楼主应该是想学习ARM9或者Cortex A这种跑linux,如果距离本科毕业还有段时间,可以学,如果马上要工作了,不建议直接学习linux,把stm32这种ARM Cortex M单片机学好,也能吃香的喝辣的
我面试从来没有人问过我单片机知识。都是问电路设计经验。用arm A9这样的linux板问程序。基本算是跨行没关系的行业。
当然有价值,本科单片机,ARM,FPGA,DSP这些搞会,一定要参加电赛,挑战杯这些重量级比赛,拿奖。以后工作不愁。
如果读研,那也是很受欢迎的,最好能保研,那就是导师的爱徒。
研究生一定要做项目,你就是比别人上手快,研究生一定要搞一些算法。以后工作妥妥的。
至于编程语言,java,C++,python什么的都接触接触。但是!这些终归是语言,不如在实战中来的快和扎实,不要舍本逐末。
然后就是开发环境,win下的还是linux下的,也是一样的道理。后者要重点学。
本科搞竞赛和学习,硕士做项目,博士做学术和项目。按这个总没错。
stm32就是arm架构。
嵌入开发基本用c语言,库函数已经封装了大多数硬件操作,并不需要对某个mpu有深入了解,知道资源就行了。
如开发需要涉及详细mpu细节,临时查手册吧,没有必要专门空对空学习。
你没有项目应用,说学习。。。怎么学都是皮毛!
stm32属于arm,如果以后想走工程路线,就做这个,如果要是做学术路线,还是要学算法和电路的知识。
说实话,一旦开了嵌入式的头,就是要走全栈路线。下到电子电路,上到前端页面。不要求全精通,但是都要会。给你一个项目,马上从前到后,从软到硬,门清。混合编程这个是趋势,比如,某个SB厂家的SDK只有Java的库支持Linux,我总不可能重新给他写个库吧?
可以这样分,软件层面与硬件层面,基本稍微牛一些的处理器都是Arm,如果没有涉及到系统那就是单片机,系统的话有很多,就看你往哪里发现,工业的话用实时系统多,linux属于应用广泛的系统
记住一个原则,做工程的时候不是根据你学了什么来使用什么单片机,而是要根据你工程的需要,先把单片机选好,比如说要多少IO多少AD,内存要多少?,通讯模式等等,选择好了单片机之后才开始开发软件。单片机基本上都是相通的,学了一个,另一个就很容易掌握,不需要专门去学。
先说一下笔者的情况,目前MCU开发,20K,已经到天花板了。
stm32也属于arm,不过是arm的m内核系列的,一般统称为mcu,且称为前者。猜你这里所说的arm应该是指mpu,称为后者,一般开发都会上linux之类的系统的。
市面上,一般情况下前者工资略低于后者,而且门槛相对后者较低。后者需要的知识体系更庞大,更杂,但是更容易进大厂。
如果能在前者的基础上深耕某一个领域,比如电机控制,无线传输等,发展也是不错的。
如果目前是学生阶段,还是值得学后者的。
顺带提一下,前一阵面了十来家,工资最多也就开到20K,基本上就是天花板了。
以上,仅供参考。
大学阶段 学习思维逻辑为重
先优先学java
然后再考虑linux
stm32直接放弃掉吧
第一个混个几年轻松年薪50w+
第二个混个几年轻松年薪30w+
第三个stm32,混个几十年估计都没有20w+
本科阶段我也以为学好这个很有用,后来看工作岗位,这些低级的根本就没什么用。这一行,要么精通,要么劝退。否则只是个人温饱线,果断放弃。现在在通信行业不做硬件,也可能是选对方向了吧,年薪十五万➕@
兄弟,stm32就是arm架构,还要学arm?先把概念弄清楚吧
不用,直接学上位机
学FPGA
不知道,学了和理解是完全不一样。
大学有个挑战杯,还有一个电子设计大赛,都是每两年一届的,全省前两名能保研,如果就业offer应该能任意选吧
如果不能拿奖,那你顶多就是个爱好者,读研导师做什么,你就能做什么,找工作的话基本也就是个社畜,研发轮不到你的,基本上就是项目经理(扯皮工程师)项目工程师(订货画图工程师)调试工程师(出差干活儿小师傅)
。。。熟悉指的什么???只是会跑程序还是构架非常清楚,能针对cpu的构架特点优化代码吗?