嵌入式开发要学哪些?在这个技术瞬息万变的年代,嵌入式技术毫无疑问也得紧跟技术发展,这对于初涉行业的新人而言,摆在面前的问题很明显,嵌入式开发我得学习哪些技术点才能跟随企业的脚步呢?我愿意谈谈我接近十年对嵌入式开发的看法。
我的职业生涯起步于嵌入式开发,那时候在日企从事汽车的嵌入式开发,后也曾当过三年的讲师。不过现在依然混迹于嵌入式底层,以及android底层研发。可能还是觉得研发才是我的爱。那么针对嵌入式开发要学哪些我简单的说一下,仅代表当前主流观点。
嵌入式开发作为新人,第一步C语言,有很多人自认为自己C语言很厉害,但是实际上一个从事嵌入式开发的老人,至少需要3-5年你才敢对C语言说精通,特别涉及到的常用的指针、数组、数据类型、运算符与表达式、控制语句时?你真的都懂么?这些是学习嵌入式基础的知识。
第二步,有了这些代码的基础你才能能根据需求写程序,也就是常说的应用层,应用层是相对简单的。要有理解和编码调试的能力,如系统编程、标准的I/O,文件I/O,库的制作等等。一般而言这种应用层开发有1-2个月的时间都能学会。剩下的就是大量的编码来提升自己的经验。但只会这些也能找到工作,但我相信你看完下面的发现那绝对不是你的梦想!
第三步,更高级的内容也是难的内容,前两步更多是让你会根据需求编码,但是如何能让你的程序能在硬件平台上运行,这才是真正的难题。所以每当再进一步的话,我们会发现我们什么有很多的东西都运行的是Linux系统,可是他们和我的PC运行的Linux有什么区别呢,为什么我电脑要用风扇而手机不用风扇呢,我们打开网页查找手机的详细参数的时候,会看到Cortex-A15 、四核 、ARM等等字眼,什么是ARM,什么是Cortex-A15,这需要进一步的了解。
了解完ARM之后,就需要利用开发板了。这时操作系统的移植又成了一个比较重要的内容了,什么是bootloader,什么是kernel,什么是rootfs等等……。
花了很长时间系统做好了,发现板子上很多的什么不能用,怎么办呢?这时我们需要写一些驱动来驱动这些设备,这时我们需要知道,什么是字符设备驱动、块设备驱动、网络设备驱动,为了更好的写驱动我们需要了解更多的硬件相关的东西,我们需要看懂芯片手册,我们需要看懂原理图,只有我们懂我们的设备,才能更好的驱动它。等等,这里就列举更多的内容了,因为还有很多。
所以对于嵌入式开发者来说,他们都经历了学习的痛苦。有句话说的好,不经历风雨怎么见彩虹。对于学习嵌入式我比较不赞成自学,他不同于一般的应用层开发。你会面临很多问题。问百度?太慢了!来机构学习虽然花了一部分钱,从时间成本和效率上来讲,无疑还是比较值得的。