如何学习嵌入式linux?

嵌入式Linux其实范围很广,只以我个人经验简单说说。我们简单的把嵌入式Linux开发工作分成几类:Bootloader层开发驱动层开发根文件系统搭建应用程序开发其中:Bootloader层开发和Linux关系不太大,一般用汇编语言 C语言,更类似单片机开发应用程序开发:其实就是受一定限制的Linux应用程序开发,和嵌入式关系不大根文件系统搭建:根据具体需求搭建一套精简而高效的根文件系统?这就需要对各Linux发行版有所了解,对Linux常用软件和常见的库有一定了解,熟悉各类构建语言(如Makefile, CMake, bitbake)驱动层开发:主要是在核心态用C 汇编语言开发特定的驱动程序,需要熟悉Linux内核架构,同时对硬件熟悉根据题主的知识情况,从STM32单片机转学嵌入式Linux,可能更适合在Bootloader层和驱动层深入学习。

FPGA与嵌入式Linux选哪个

我是通信工程专业的,算是 EE 吧,如今转到 CS 的,主要做 web 相关工作,今天 6 月份 刚刚毕业,相比和题主比较相似。先来说说我的 EE 学习经历,读书时候从C51、MSP430、STM32、ARM7、ARM9 都学过一遍,小奖拿过几个,总体来说差不多,只有指令集的不同,芯片接口用来基本差不多。

用的也全是 C 语言,所以在大四之前,全是用 C,EE 专业基本没有 C 和 JAVA。走招聘会时候基本一脸懵逼,感觉自己扫描都不合适,生无可恋。CS 基础学科就更不用说了,别的学校不知道,反正我们是一个都没有,这就导致了面试时候的尴尬。所以不抛弃老本行也是对的,从现实来说,EE 行业无论从平均工资和工作环境来看都不如做 CS 来的好,看你是现实大于理想,还是理想大于现实了。

貌似你还没找到工作,既然不想转 CS,那么也没有那么必要学一个高级技能傍身,半年时间怎么学都是皮毛,务实你的基础才是重要的,数电、模电是不是够熟悉,C 语言是不是够扎实,这都比是否会 FPGA 和嵌入式来的重要。换一句话说,如果你不是奔着创业公司去的,那么用的基础知识完全可以进入一家比成熟的公司,笔试题都是基础,面试也都是数据结构和简单算法什么的。

搞嵌入式linux开发还有前途吗?

对于这个问题,每个人的人生经历不同,所以会有不同的答案,你虽然提出这个问题,但我想你心里也对这个话题有自己的认识。在此我聊一下我的感受,仅供参考。1) 嵌入式这个行业知识壁垒比较高,投身这个行业,需要软件和硬件的知识组合起来,才能应对项目的挑战。例如:你正在编写一个SPI读写Flash的功能,你的硬件同事提醒你需要注意这款芯片的写时序需要注意精确的前置延时。

另外,你的硬件同事拉来一台示波器,让你代码在在DATA引脚输出一段方波。因此,较高的知识壁垒会相对减少从业人员的数量,物以稀为贵,这个行业会呈现两个特点:1) 工资水平较高 2) 经验累积与年龄正相关(也就是所谓的"越老越吃香")2) 这个行业真正挑战你的知识结构。计算机工业发展虽然日新月异,但是底层的技术体系很少发生改变,至今人类还没有跳脱出冯诺依曼的基础计算体系。

这个和互联网行业不一样,互联网是一个年轻的行业,有巨量的从业人员,短短几个月的速成班就可以轻松上手。在嵌入式这里,需要好几年的知识浸淫,承受各种Bug的捶打,最后才能功成名就,登堂入室。你老了,也变强了!3) 说一下不好的地方:在嵌入式行业从业几年,你对各大厂的MCU系列了如指掌,各类设备驱动移植轻车熟路,会让你有这样一种错觉:我已练就降龙十八掌,再厉害的高手也难不倒我了,真是独孤求败呀!但时代变迁了,现在的大势是互联网,云计算,人工智能的时代,各个大佬已经提前完成风口的布局,如果没有一颗学无止境的心态,不愿意踏出自己的舒适区,只守着嵌入式这一亩三分田,那么就会不知不觉被历史车轮甩到后面。

嵌入式一年半,现两份offer,一Linux驱动,单片机;二通信协议栈,网络安全产品。怎样选择好些?

谢谢邀请。linux 驱动linux驱动,主要写底层代码,各种外设接口调试,需要会用linux shell指令,能够对linux内核比较熟悉,需要掌握linux底层,以及各类外设接口协议。也需要一定的硬件理论和知识。涉及领域多,产品类型丰富,就业机会和就业岗位多,工资较高。 协议栈工程师而通信协议栈,如蓝牙ble协议栈,zigbee协议栈等类似通信协议栈。

做通信协议栈的工程师比linux驱动的人数少,所以有工作经验的人,工资会十分高。 去年和一个朋友聊天,为了找一个能写某一款蓝牙芯片固件的人,工资直接开到4万一个月。但同时,整个行业,需求通信协议栈的工程师岗位也相对于单片机和linux的岗位要少很多。主要是通信领域,行业比较专一,岗位机会少,选择性较linux驱动少,相同年限的协议栈工程师比linux工程师的工资要好一些。

总结 linux驱动和通信协议栈两个行业技术要求和门槛都比较高,工资也相对于其他一般的普通单片机开发等,工资待遇都好些,但这两个岗位的工作压力和工作强度都会比较大。而且各有优劣。怎么选择在于自己,可以先与公司相关人员沟通下工作内容,再查阅下相关的行业和产品的情况是否为热门,进行考虑。比如5g通信解析栈,那肯定选择通信的工作了。


文章TAG:linux  Linux  嵌入式  
没有了