大家不要只收藏不关注啊,哪怕点个赞都行哇。😭
嵌入式体系框架
我更愿意用数据的流通方式去划分体系框架,我想用这幅图来划分:
我希望大家都对嵌入式的体系有一定的了解,这样能让你分清楚你将来想要从事什么部分的工作,嵌入式是个很庞大的体系,首先我们从最底层开始说起,对于结构完成的事情,我们选择不纳入这个体系,因为结构是做产品的外观设计,相当于是做了产品的壳子。往里面一层,也就是嵌入式的一部分----硬件,硬件工程师要完成的事情是设计PCB版,如果PCB板坏掉的话还需要去维修板卡,感觉硬件是个水磨功夫,肯花时间就能越做越好,入门的话可以抄板子,B站上有很多视频,随便找一个学学软件怎么使用,然后找个单片机开发版的图,去抄下来,然后找嘉立创去打免费的板子。硬件能够自行搭建系统便能入门,可能我说的比较笼统,我也没很深入学习硬件,这方面路线可能并不是很清楚,当然你也要学会焊接,以及示波器的使用等等。
硬件往上有嵌入式驱动开发,驱动开发的这部分,当然搭建bootrom的平台也是驱动这部分做的事情,相当于有一个底层软件的系统,然后在把设备添加到这个系统之中,能够进行读写操作,其实相当于把硬件采集到的模拟信号能够转化为数字信号,一般来说只要能够读写器件,便算成功,在嵌入式系统里面,所有的设备都会转换成文件的形式,如果你要获取数据那就是读,如果要发送数据那就是写。驱动将硬件的设备添加到系统之中并且能够操作,并将数据接口发给应用部分。
底层还有一部分就是逻辑,是FPGA的部分,这部分挺难的,FPGA的工作便是将数据做一些简单的处理,发送或者接受信号,比如某个中断来的时侯把某个寄存器里面的值读取出来发送给驱动,驱动再发送给应用,或者是应用接收到信号之后,发送某些值到驱动,驱动再给FPGA,FPGA处理后再把值填入某个寄存器。
关系类似于:
如果数据一定要经过FPGA的话,那就是硬件---->FPGA---->驱动——>应用。
但是也有可能不经过FPGA,直接就是硬件---->驱动——>应用。
希望这里能理清楚。
这样就来到了应用层,应用层分为下位机应用层、上位机应用,下位机应用就是这块板卡中CPU要跑的应用,是板卡要实现的功能,这部分是应用的核心部分,板卡的功能都是下位机完成。上位机应用就是在本地电脑中将下位机实现的功能显示出来的应用,安装在电脑本地,我希望大家都会对这个体系有一个笼统的了解。这样方便你分清你的职责。
C语言的入门学习
编程语言的学习:因为单片机、linux、或是Vxworks这几种嵌入式系统都是以C语言或者是C++为开发语言,所以C语言要学扎实,有可能大多数大学生的C语言的水平是计算机二级的水平,有的人或许还没有考过,这不重要,只要对C有基本的了解就可以,如果你的时间充足,那么我推荐你看课,在B站上可以去搜索比特鹏哥的C语言课,我觉得这个课是B站里C语言讲的最好的课,唯一的缺点是课时比较长,但是确实是精华,学习C++还是要在C语言之后,至于C++那么我推荐B站里黑马程序员的C++课,清晰明了,C++和C不同,C是面向过程,C++是面向对象,这样说你可能理解不了,那么我说的更加好理解一点就是,C语言用来写好一个个函数,C++给你封装好了很多库函数,并且C++具有封装(同一个类里面有很多类函数集成到一块)、继承(子类可以用父类的函数)、多态(同一个函数名可以完成不同的函数功能)的特性。这两门课在B站上都有资料,可以下载文档到淘宝的打印店里面打印出来,这样学习起来更快,而且方便以后复习。
C语言的进阶学习
学习完这个视频课后你的C语言水平可以到入门的阶段,要多加练习如果不练习会忘得很快。C语言的进阶我推荐一边在工作中实战一边去看书。在此我推荐C语言三剑客:《C和指针》、《C陷阱与缺陷》、《C专家编程》。不知道大家大学本科的C语言书是什么,《C和指针》是我最推荐的一本C语言书,这本书内容详尽,例子丰富,比教科书不知道好多少,作为C语言进阶的第一本书,《C陷阱与缺陷》作为第二本书,里面会提示你平时编码应该注意的问题和要改正的错误。《C专家编程》是我推荐的第三本。
后期我会将这三本的学习笔记全部做好,供参考,能够为复习省些时间。能看完这三本书,你的C语言的水平已经足够应对工作所需,以后只需要在工作中多加打磨即可。
单片机的入门学习
对于单片机的学习我可能也只是停留在入门阶段,只是能做毕设的水平,但是对于单片机的理解能够帮助我们学习嵌入式的东西,单片机我推荐在淘宝上买一套野火的开发板去调试,当应用库里面的所有例程你都能正常使用的时候,那么你就达到了入门的阶段,而且野火官网对于这些资料和视频都是免费的,推荐直接下载观看。
linux的入门学习
有关linux的学习我推荐将鸟哥的私房菜作为我们入门学习的第一本书,首先安装好虚拟机,安装的教程网上都有,B站里都能找到资源,书里面也有安装步骤。安装好主流的linux虚拟机之后,便能开始虚拟机的摸索,将鸟哥的私房菜里的代码该写的都写一遍,之后便将这本书作为字典使用,随查随用。这本书作为linux的基础书,让你学会linux系统的基本操作。
在此基础上,如果你想要学习嵌入式驱动开发,我推荐你的书是《Linux设备驱动开发详解》——宋宝华,最主要的是你要有一块板子供你去调试,这部分必须边调边学,这样才能理解学习的更多。
如果你走的路线是嵌入式下位机应用开发,那么我推荐你看《嵌入式应用程序设计综合教程》华清远见嵌入式学院 人民邮电出版社出版的一本书。这本书里面会告诉你linux系统应用如何开发,Linux应用程序怎么写?这本书简单的例子,让你对嵌入式应用开发有一个基本的了解。
至于嵌入式的进阶,我推荐的学习方法是按需学习,需要用到什么的时候就去学习这方面的资料,B站上有很多这方面的视频可供学习。
VxWorks的入门学习
当你学习完linux、之后再来看Vxworks你会轻松一点,至少你是对于系统有一个基本的认识,系统的内容大致都是相同的,Vxworks的入门我推荐你去看我上传的PPT与文档,这部分我之前查了很多资料和课件,整理出来的两套PPT与一篇系统启动的文档。
Vxworks进阶我建议你学习《Vxworks内核、设备驱动和BSP开发详解》这本书,学习方法依旧是按需学习,这样不仅学的快吗,而且理解的更加深刻。
上位机的入门学习
对于上位机,有很多种编程语言,我所接触的是用C++编程,使用Qt编程软件进行开发,B站上有6天学会Qt这个系列的视频我觉得6天略显夸张,但是作为入门视频是蛮好的,如果需要更加深入,推荐看的书有《QtC++开发指南》。
《C陷阱与缺陷》笔记
我工作的两年
计算机软考笔记