大家好,今天小编关注到一个比较有意思的话题,就是关于linux嵌入式开发学习路线的问题,于是小编就整理了2个相关介绍linux嵌入式开发学习路线的解答,让我们一起看看吧。
学嵌入式linux要先学什么?
嵌入式发展如此的快,可以说是现在最热的IT技术之一了,很多人加入嵌入式的行业,但是对于刚进入嵌入式或者刚接触嵌入式的人来说,学习嵌入式还是有一定的难度的,我跟前就有很多这样的人,下定决心想要去学嵌入式,但是不知道从何学起,今天我这只老鸟就分享一些嵌入式学习方法,快快搬小板凳来听。
对于嵌入式新手来说,知道一点嵌入式,知道嵌入式大概是做什么的,不是很懂,所以要熟悉掌握嵌入式的概念。我们可以看到网上或者书上很多解释:嵌入式系统是针对某个应用,软硬件可裁减的,对体积,功耗,成本等等有严格要求的一个计算机系统。看起来是很复杂的,其实我们来总结一下就是两点:
第一,嵌入式系统是一个计算机系统
第二,嵌入式系统是针对某个应用的,也就是通常所说的“专用的”。
其实再说的通俗易懂点就是针对某个应用的计算机系统!这样的话就很好理解了。
那么重点来了,那就是要学什么,对于嵌入式来说,不要觉得他学很多东西,你就会没有目的的学这学那的,这样只会让自己更加迷茫,不知道要学哪个了,你要知道,嵌入式也就是软件,硬件,编程这些方面的,最基础的也就是C语言了,那刚开始接触,你就需要先从C语言入手。
1、C语言,关于C语言要知道基本的语法,什么是结构体,什么是共同体,有的东西也不用一定要记忆,因为在实际中很少用到;
2、嵌入式最核心的操作系统,所以操作系统原理也应该是要有所了解的,比如时间片、任务调动等等;
3、Linux基本命令的使用(vi编辑器必须会用,因为在终端改文件的时候只能用这个),现在很多的人对鼠标早是情有独钟了,很少用到命令,在学习嵌入式Linux可要改改这个习惯了,Linux用命令操作具有效率高、功能强大的特点,这个是图形界面无法取代的,其实平时的图形界面操作都要转化为命令传输给硬件的。
4、Linux设备驱动的架构要了解,结合原理图和Linux设备驱动相关书籍把每一行代码分析清楚。
上面只是一些简单的嵌入式学习要点,你要先掌握这些,才能再继续后面的,在这里要切记你不要心急,心急吃不了热豆腐,不要希望看什么或者学什么一次就能会,而且记住要理解,不要死记硬背,要理论与实践相结合,实践的多了,那自然而然也就会弄了。还有,不要直接阅读Linux内核源码,看一些自己撞破头也想不明白的东西只能是浪费时间,要循序渐进。
对于初学者,还有一点小建议,我们拿到一个开发板,很兴奋也很激动,想法自然也很多,想用开发板实现自己的这个想法,实现那个想法,然后又不知道从何下手,然后就去论坛中发一个贴,“那个什么什么怎么实现啊,哪位大侠能详细说一下啊,跪求!!”然后等着别人去回复。见没人回复就抱怨。有想法是好的,我们要实现自己的想法也是有前提的,首先,我们对这部分知识了解吗?如果不了解就去google一下(最好别用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到问题,再去发贴问,这样也显得咱们有水平。比如自己连串口是什么都不太清楚呢,就问串口通信怎么做啊,就是人家把代码给咱,咱也不明白是怎么回事啊。
记住每个人都有每个人的方法,就是要勤于练习,不要懒惰,你可以根据我上面的学习方式来进行学习,这个方法就是我在我学习工作中总结的,还是很受用的,希望你和我一样从新手到老鸟,这是一个困难的过程,好好努力最重要。
如何学习嵌入式linux?
stm32确实是一个瓶颈。而且现在毕业的相关专业的学生越来越多,stm32的技术门槛和知识点确实相对容易掌握。那么在主流的电子行业对嵌入式的需求是比较大的。主要是在于Linux的广泛运行。哪怕是安卓系统也是可以运行在Linux相同的电路开发板上的。
开发板的话就不好推荐了,有点像广告了。
学习Linux分为两个大方向,底层驱动和上层运用,这也是操作系统的特点。底层涉及驱动系列,对于硬件有比较直接的相关性。而应用几乎和硬件没他大的关系,主要掌握的是如何使用Linux操作系统,涉及各种指令,可以看 很多Linux运用的书籍。进而写一些基于Linux GCC的程序来熟悉这个。可以玩一玩树莓派板子,这个资料比较多,可玩性,掌握知识是很有帮助的。最近出了新版的,可以备一个用来学习Linux。
而底层是比较枯燥的,需要投入比较多。主要是驱动层比较难,所以需求很多,不愁找不到工作。仅仅会单片机已经确实不太有很大的竞争力了。底层需要掌握很多知识,随便去买一个比较流行的开发板就行了,主要是资料多,不懂的好找到人来问。否则自己一个人遇到卡壳的就很慢了。可以看看原子的,stm32你应该知道他很出名,打算出Linux开发板了。
我目前只会各类单片机及电路板的设计,当然也自学了服务器后端的简单使用,以及网站前端开发,Android APP开发,IOS还没怎么学,时间不那么丰富。你趁着毕业前三年的业余时间,学习一下是很不错的,时间相对多一点,但是也需要靠自觉性,毕竟你的同事可能都在打游戏,你能坚持走下去吗?
技术工作是非常枯燥的,希望你能有找到自己的方向,多积累,多思考。
嵌入式Linux其实范围很广,只以我个人经验简单说说。
我们简单的把嵌入式Linux开发工作分成几类:
Bootloader层开发
驱动层开发
根文件系统搭建
应用程序开发
其中:
Bootloader层开发和Linux关系不太大,一般用汇编语言+C语言,更类似单片机开发
应用程序开发:其实就是受一定限制的Linux应用程序开发,和嵌入式关系不大
根文件系统搭建:根据具体需求搭建一套精简而高效的根文件系统?这就需要对各Linux发行版有所了解,对Linux常用软件和常见的库有一定了解,熟悉各类构建语言(如Makefile, CMake, bitbake)
驱动层开发:主要是在核心态用C+汇编语言开发特定的驱动程序,需要熟悉Linux内核架构,同时对硬件熟悉
根据题主的知识情况,从STM32单片机转学嵌入式Linux,可能更适合在Bootloader层和驱动层深入学习。开发板可以考虑:
新唐的NUC系列(ARM926,低端)
树莓派(算中端吧)
个人认为:比开发板更重要的是对Linux本身的熟悉,这一点在PC上就能很方便的学习了。
说的不全面,感谢阅读!
欢迎讨论具体问题。欢迎关注。
到此,以上就是小编对于linux嵌入式开发学习路线的问题就介绍到这了,希望介绍关于linux嵌入式开发学习路线的2点解答对大家有用。