嵌入式学习思考(1)

临近找工作一直在纠结找工作的方向,定于自己做的一些工作,又希望从事技术方向,最终定岗为嵌入式方向,主要希望以软件开发为主,硬件上熟悉手册怎么用什么的其实还是懂一点,但是要自己纯电路设计就感觉要哭了。

在这里记录一下自己纠结和迷茫的点,以及一些学习的经历,便于日后反省和提醒自己。

一直对于嵌入式的方向特别的困惑,自己一直做得其实就是单片机的上的开发,我感觉就是不断的操作寄存器的一些工作,本来我以为这算是做驱动的一些工作,但是百度了很多资料后,似乎这并不是做驱动,底层定义的一些东西和一些函数库都是厂家给定义好的,无非自己就是调用而已,在进一步浏览了很多工作的介绍以后,发现linux又是一项必备的技能,又开始进一步熟悉linux下的操作,为此了解了树莓派以后开始熟悉linux系统操作的同时又学习树莓派上的一些小应用,期间开始恶补一些操作系统原理的书,嵌入式开发的一些书之类的,读到后面越发的迷茫,不知道具体这些是干什么的,进程,线程的概念看了无数遍,仍然困惑到底是如何的编写,前两天和有一定工作经验的聊了一下,按照自己的理解对于嵌入式稍微做了一下梳理,不知道有没有错误。

  • 单片机开发-植入操作系统

最基本的其实还是单片机上的软件开发吧,自己一直很纠结自己学习的知识是属于软件开发吗?实现了SPI,CAN,UART通信的一些功能到底算应用层,驱动层,还是哪一部分的工作?现在的思考而言,对于一些功能不是非常复杂的系统而言,比如采集信号,识别信息,传输控制命令之类的,在单片机上锁做的开发就是应用层面的开发,而底层的一些驱动实际上应该是寄存器的定义操作这方面的工作,在应用层上调用。在熟悉linux操作系统后,自己又开始迷茫了,熟悉了这个操作系统到底有什么用?在linux下做开发到底是怎样去开发的?多线程多进程的应用是怎么实现的?和单片机到底有怎样的关系?看的越多脑子越乱,不知道该怎么一步步梳理自己的疑惑了。

现在自己的理解是,当一个以单片机为核心的硬件系统功能复杂到一定程度以后,有一些功能和检测需要并发同时进行的时候,整个软件就需要进一步的升级了,需要对单片机植入操作系统了,linux是几种可植入操作系统的一种,开对于硬件的控制和初始化也不再是和之前开发一样,在厂商提供的软件环境下进行编译操作,而是在要植入的linux系统下去创建控制,linux底层驱动的意思应该就是把寄存器定义的以工作移植到linux环境下调用吧(我也不知道,感觉应该是这样子的),我所纠结的线程进程的这样的操作在这里开始真正的实现了。

我现在开始明白我纠结和希望跨越的坎在哪了,我是要从单片机上的开发向植入操作系统的开发方向发展,这一步怎样的的跨出去真的还有很多东西要去学习,还是先好好打好C语言的基础把,熟悉好如何实现各类单片机上的功能,进一步在学习如何在操作系统下实现应用,这里再重新思考树莓派,这不就是一个植入了操作系统的完整硬件系统吗,虽然是不同的语言环境,但是开发的流程应该是一样的吧,也得好好的研究一下。

要选择嵌入式这样的道路,真有太多的东西要思考,太多的知识需要学习了。

工实习一段时间以后重新思考这个问题:

已经为自己选定的方向是汽车电子方向,暂时还是c用的比较大,为了不断的适应发展,以及操作系统会上的可能性吧,linux的基础肯定要打好,准备应对,拓宽未来的就业面,java要好好学习一下,主要应该是andoid上的应用开发,android of thing结合树莓派;

猜你喜欢

转载自blog.csdn.net/runkui8905/article/details/80262033