关于嵌入式的一些个人心得

       很高兴,自己能够在CSDN社区与各位大神讨论。这是字节的第一篇技术博客,以后有时间的时候会坚持写下去。本人职场技术小白,从事嵌入式软件开发。在这里想把自己对这个行业的一些体会和感受分享给各位。

1.嵌入式水很“深”

 这么说不是危言耸听,其实每个人对这个行业的认知也不一样,大体来说分为嵌入式软件和硬件领域。软件更偏向于策略,硬件层次更偏向与机制。所谓策略即是实现一种方式的过程,比如从A点到B点,可以有很多路径走,正如俗话说“条条大路通罗马”,这是我们所说的策略;但“走”这种方式并没有改变,这就是所谓的机制。而嵌入式软件层次又分为带操作系统的软件开发和不带操作系统的软件开发,很多人会理解为不带操作系统的开发就是操作物理地址,操作寄存器,这样理解并没有错,只是不全。这种不带OS的软件层次开发更多的是偏向于底层的开发。即连接硬件以及软件的中间层部分;而现在嵌入式软件开发更多的是带OS的开发,比如基于嵌入式Linux,实时操作系统(比如FreeRTOS),基于安卓的软件开发(包括上层app开发)。硬件部分涉及到电路设计,FPGA这一块。由于本人对硬件不是很熟悉,所以我们暂且讨论软件部分。

软件这一部分,含金量比较高的算是内核开发(更多的是OS的驱动开发),安卓底层以及中间层的开发,这些方向如果展开来        说,每一块都是很多本厚厚的书籍堆叠起来,这其中还包括对于OS的一些裁剪和移植,以及系统层次和硬件层次的代码或者内存等的优化。而主要用的编程语言就是C,C++,Python会有一些,用来搭建自动化测试平台等。如果向嵌入式软件上层方向发展,可选安卓app开发或者QT,QT是嵌入式领域应用较多的用于编写界面的IDE,跨平台和移植性很好。中间层往下的话,一般会有库移植,算法移植,说白了就是sdk,用于给上层提供API,这一部分应用的主要语言还是C,C++和JAVA(如果是安卓)。

底层就相对东西不多,驱动开发(分为带OS和不带OS的驱动开发),协议栈开发(又是厚厚的几坨书籍),安卓底层开发,因为底层大部分都是机 制问题,而不是策略。所以,向成为嵌入式领域的大牛,需要很多时间,并且你也不可能很多方面都是大牛,只能选择其中几个点进行钻研。

 2.嵌入式会是下一个互联网风口?

  这个问题看你怎么理解了,雷军说:站在风口猪都能飞起来。如今互联网的飞速发展,人工智能的大量应用,以及终端设备的智能化,小型化,都有嵌入式攻城狮们的影子。现在炒的比较火的物联网就是基于嵌入式技术发展而来,可以说是机遇也是挑战。同时,如何保证像人工智能这类“烧脑”算法移植到终端设备,这也是需要嵌入式攻城狮的努力。

3.推荐几本书

如果决定要在这个行业耕耘的小伙伴,可以先从基本的C语言开始,然后逐步深入学习自己感兴趣的一些具体方向

C语言推荐书籍:《C和指针》-- 只能说,这本书相当经典

操作系统书籍推荐:《深入理解操作系统》 -- 本书基于X86架构,里面会讲一些C常见错误,从上层一直讲到底层,此书是国内

                               TOP4的计算机专业以及国际知名学校的教材,墙裂推荐。

                               《Linux内核设计与实现》-- 此书是Linux内核贡献者love的力作,值得钻研。

                               《Unix高级环境编程》-- 也是知乎很多大神推荐的必读书籍

                                《深入理解Linux内核》-- 对内核深入剖析,讲解内核源码

                                 《Linux设备驱动程序》--写的不算生动,可以看~~

ARM相关书籍推荐:

                            《嵌入式Linux应用开发完全手册》--- 韦神力作,很棒的书籍,关于嵌入式的开发这里都有了。。

                               只是有些使用的软件比较老一些,win8、10不一定能运行。

4.写在最后

 不知不觉,自己已经写了这么多,真心希望能帮到那些想入“坑”的童鞋。由于时间仓促,想法不一定成熟,希望各位CSDN大神多多海涵。以后会继续更新下去,对,既然第一篇博客都写了,药不能停~

你可能感兴趣的:(关于嵌入式的一些个人心得)