{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

如何学习嵌入式linux?

seanHaiseanHai 回答0 收藏1
问题描述:今年毕业,想要做嵌入式,有一些stm32的基础,但是感觉如果只是做这类的话,第一容易遇到瓶颈,第二工资也相对比较低。 所以想学习一下嵌入式linux,我这方面基础比较薄弱,而且网上教程大多是2440这种早已停产的芯片。 想问一下如果我想从事这方面的话该如何学习,选择哪块开发版进行学习? ,谢谢大家!
收藏问题

2条回答

tuniutech

tuniutech

回答于2022-06-27 16:58

嵌入式Linux其实范围很广,只以我个人经验简单说说。


我们简单的把嵌入式Linux开发工作分成几类:

  • Bootloader层开发

  • 驱动层开发

  • 根文件系统搭建

  • 应用程序开发


其中:

  • Bootloader层开发和Linux关系不太大,一般用汇编语言+C语言,更类似单片机开发

  • 应用程序开发:其实就是受一定限制的Linux应用程序开发,和嵌入式关系不大

  • 根文件系统搭建:根据具体需求搭建一套精简而高效的根文件系统?这就需要对各Linux发行版有所了解,对Linux常用软件和常见的库有一定了解,熟悉各类构建语言(如Makefile, CMake, bitbake)

  • 驱动层开发:主要是在核心态用C+汇编语言开发特定的驱动程序,需要熟悉Linux内核架构,同时对硬件熟悉


根据题主的知识情况,从STM32单片机转学嵌入式Linux,可能更适合在Bootloader层和驱动层深入学习。开发板可以考虑:

  • 新唐的NUC系列(ARM926,低端)

  • 树莓派(算中端吧)


个人认为:比开发板更重要的是对Linux本身的熟悉,这一点在PC上就能很方便的学习了。


说的不全面,感谢阅读!

欢迎讨论具体问题。欢迎关注。

评论0 赞同0
  •  加载中...
wenyiweb

wenyiweb

回答于2022-06-27 16:58

stm32确实是一个瓶颈。而且现在毕业的相关专业的学生越来越多,stm32的技术门槛和知识点确实相对容易掌握。那么在主流的电子行业对嵌入式的需求是比较大的。主要是在于Linux的广泛运行。哪怕是安卓系统也是可以运行在Linux相同的电路开发板上的。

开发板的话就不好推荐了,有点像广告了。

学习Linux分为两个大方向,底层驱动和上层运用,这也是操作系统的特点。底层涉及驱动系列,对于硬件有比较直接的相关性。而应用几乎和硬件没他大的关系,主要掌握的是如何使用Linux操作系统,涉及各种指令,可以看 很多Linux运用的书籍。进而写一些基于Linux GCC的程序来熟悉这个。可以玩一玩树莓派板子,这个资料比较多,可玩性,掌握知识是很有帮助的。最近出了新版的,可以备一个用来学习Linux。

而底层是比较枯燥的,需要投入比较多。主要是驱动层比较难,所以需求很多,不愁找不到工作。仅仅会单片机已经确实不太有很大的竞争力了。底层需要掌握很多知识,随便去买一个比较流行的开发板就行了,主要是资料多,不懂的好找到人来问。否则自己一个人遇到卡壳的就很慢了。可以看看原子的,stm32你应该知道他很出名,打算出Linux开发板了。

我目前只会各类单片机及电路板的设计,当然也自学了服务器后端的简单使用,以及网站前端开发,Android APP开发,IOS还没怎么学,时间不那么丰富。你趁着毕业前三年的业余时间,学习一下是很不错的,时间相对多一点,但是也需要靠自觉性,毕竟你的同事可能都在打游戏,你能坚持走下去吗?

技术工作是非常枯燥的,希望你能有找到自己的方向,多积累,多思考。

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<