大学期间想向嵌入式开发方向发展,应该怎样自学

即便是计算机专业,嵌入式也是很难入门的。必要的前置课程很多(操作系统 、数据结构、数字电路、微机原理等一个都不能少),强大的内驱力(geek精神或屌丝逆袭精神)尤为重要。建议先把c语言先好好学起(远离大学c语言教材,《c专家编程》才是程序员该看的)。同时把linux玩起来。熟练掌握linux + c ,这2个是必学的。如果再有数学专业背景,则 进可攻(今后考研转嵌入式),退可守(linux+c,再利用数学优势熟练某种音视频算法或网络加密协议)。小康日子不用愁。你才大一,千万不要学颓废哦。
■网友
先说下态度,强烈建议搞嵌入式。
看了别人回答有是劝退的,劝退的原因有说硬件更新快的,害怕变化是很糟糕的想法,难道想获得一个技能,不用再学习,能一直工作到退休才是好技能?一旦入门,你会发现不会惧怕变化的,万变不离其宗,变化的往往是器件的性能越来越高,集成度越来越高,封装越来越小,功耗越来越低。但是接口外设这些东西变化很少,SPI,I2C,USB,UART,网口,I2S,MIPI,MDIO等这些接口又有什么变化呢。
嵌入式入门并不难,我感觉嵌入式对编程语言要求是非常低的。嵌入式的本质就是通过寄存器操作CPU以及其外设,来实现自己的业务逻辑。C语言能明白怎么把一个常量强制转化为指针,然后对指针解引用,就可以操作寄存器了。比如一个32位的单片机,在寄存器地址0x80000000的低位写1,就可以让GPIO输出一个高电平,这些样写就可以。*((volatile unsigned int *)0x80000000)|=0x00000001;这对C语言要求很低吧,更复杂的任务,本质是操作更多的寄存器,然后加一些逻辑组织起来。
先买一块单片机开发板作为入门,从点亮一个LED开始,然后逐个例程学起来。中途遇到问题就学什么,这样更有针对性,不要前期打太久的基础,比如先把模电数电都吃透,再开始搞,这样会很盲目,没有试验的辅助,很难理解的很深刻。前期可能会读了很多遍MCU的datasheet也不明白说的什么,但坚持多读几遍就明白了。入门阶段就要养成看英文datasheet的习惯,这个是基本素质。单片机能把GPIO,I2C,SPI,UART这四种最常用的接口以及ADC/DAC,定时器/计数器,数码管,按键、触摸屏,电机,LCD,蓝牙模块,GPS模块,WIFI模块等常用片上或者片外外设都能够学通,这基本算非常不错了。

单片机可以作为一个过渡阶段也可以作为自己以后的工作方向,这个就看自己的职业理想了。再更进一步可以学习ARM,DSP,FPGA等。关于ARM,DSP,FPGA的学习,后续再补充。



■网友
谢邀。。。嵌入式这个行业分类也是很多的,你才大一,先把基础打好,关键是要action,马上在电脑里面装个虚拟机,放个ubuntu或别的linux内核的系统,熟悉下系统操作,然后看下课程表,自己需要自学的课程有哪些,我个人认为比较好的路线是:linux系统的基本操作和管理----\u0026gt;shell编程-----\u0026gt;linux下的C语言编程-------\u0026gt;数据结构---------\u0026gt;linux系统的高级编程和网络编程-------\u0026gt;嵌入式体系结构--------\u0026gt;ARM硬件开发----------\u0026gt;linux内核开发-----------\u0026gt;linux驱动开发。。。这个路线是越来越难的,C语言是很关键的,它决定你能在这个领域的深度,不要小看它,把C语言学好没有个5、6年是不可能的。。 自学的话还需要强大的内驱力和坚持下去的毅力,我本身也不是计科或电子出身,我是学电气的,然后对嵌入式比较感兴趣,就干这一行了,这个领域很难,高手也很多,想要在这个领域弄点成就挺难的,做这一行压力也非常大,强健的体魄也是必须的。。英语也很关键哦。。。 学什么不重要,重要的是方法和技巧。。。。
■网友
特别提醒,如果入了坑,而且对硬件不是特别感兴趣的话,还是转软吧,我就是学嵌入式的,都大三了,只学会了一小部分,比如单片机编程,用c写硬件接口,就没了,我现在还在转型软件,这个比较简单,不过我也是做对应硬件的软件


推荐阅读