【嵌入式Linux】学习路径

太久没有做过相关的开发和学习了,技术这东西,一段时间不用就容易忘记,再加上本来就不熟悉,忘得更快。大学时候在tb买了某原子的一块开发板,就开始的时候学习了一段时间,后面因为毕业工作等原因,就放那吃灰了。当然这些都是借口,工作虽然事儿多,但是也没到没有时间学习的地步。

从今天开始,我将围绕这块开发板,利用工作空闲时间对嵌入式Linux驱动和应用做一个系统的学习。

如果你也是一个初学者,对于嵌入式Linux的学习比较懵逼,而且,如果你是非科班出身,且对技术没有热爱的话,我还是持劝退态度。如果你还是想写代码,我的意见是去搞纯软件吧,比如前端、后端、Android等,这些东西只需要一台电脑,就可以轻松上手(注意,我这里只是说上手),但是嵌入式则不一样,入门都是不容易的,很容易把你劝退。

言归正传,什么是嵌入式呢?目前国际还没有一个通用的结论,我们国内给了嵌入式一个概念:
嵌入式开发,其实就是对嵌入式系统的开发。
详细的讲嵌入式系统是以是以应用为中心,以计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。

总结就两点:
①以应用为中心;
②软硬件可裁剪的专用系统。

这个概念,你可以这么理解:当前的电子产品,除了通用的PC和服务器,都属于嵌入式的范畴。所以,在未来的很长一段时间内,搞嵌入式你想失业都难。然而这也意味着嵌入式的学习是十分漫长的,入门门槛高,难度较大,但是一旦学会了,剩下的大多时候都是依葫芦画瓢。

嵌入式的学习,开发板必不可少,为什么呢?理由很简单啊,嵌入式是以应用为主,你需要在实际电路上反复验证和观察,有很多现象你是在电路仿真中是看不到的,更不可能可以光靠想象。选开发板要注意以下几点:
①资料是否丰富,有否有足够的案例供你参考学习?
②售后技术支持如何?有老师带路和没老师带路完全是两码事!
③板子本身资源是否丰富?

如果通过各种途径查询你想买的开发板以上三点都可以达到你的期望,那么不需要犹豫,直接买就是了。

现阶段学习他的路径应该可以按照下面顺序:
1. C/C++语言的学习
C是后面学习嵌入式的充分必要条件,他的学习就像学习数学的加减乘除一样,学习数学不会加减乘除,后面你是不可能学得懂。不需要学到很深,你买本书,只需要将除了指针外的其他内容熟练运用就可以了,至于指针,你需要看得懂,知道他的意思和常用使用方式就可以了,剩下的只需要在后续的学习和开发过程中不断完善和加深理解即可。
这里要强调的是,我们学习一门高级语言是为了使用它,它只是一个工具,对于某个知识难点,不要过分计较,因为你计较的东西,可能在你以后的开发中都不会用到。先继续学习,学习很多时候都是触类旁通的。

2. 8位MCU(单片机)学习
有很多人说不需要学习8位的单片机。而我要说的是,这个过程必不可少,如果你是非科班出身,后面想要更上一层楼,这些步骤一个都不可少。嵌入式的很多概念都是一通百通。学习了8位单片机,你将知道什么是GPIO(输入、输出)、中断、定时器、PWM、串口、IIC、SPI等常用外设接口和通讯协议。当然,你直接开始后面的学习也会学习到这些,但是,就像是学习乘除,你得先学习加减,学完加减时再去学习乘除法,你理解会更加深入。如果你直接学习乘除,也能学习到加减,但是你没有练习过加减,你不熟练加减,可能你学习乘除也不会那么容易。

8位的单片机这里推荐51的,tb一搜一大把,教程也俯拾皆是,你找一个你看得上觉得不错的,买一块学习就可以了。

3. 16位/32位MCU的学习
学习完8位单片机后,再来学习16位/32位的单片机,这个时候,你会发现很多概念你都清晰了,自然学习起来会更加得心应手。在16位/32位单片机,你将会学习到更多高级的东西,比如更加高级的外设接口SDIO(可用来驱动SD/TF卡、摄像头等)、USB、网口等;学习到操作系统FreeRTOS、UCOS、RTThread等;你可能还会遇到WiFi、蓝牙、ZigBee、lora、4G等无线通信方式和协议等。这些可能都是你在8位单片机里面少有的概念。

32位单片机我推荐某原子和某火的stm32,他们是最早做stm32的,就是靠着stm32一步一步走到今天。售后不错,资料也是十分丰富,教程做的也相当不错。

4. 嵌入式Linux的学习(包含驱动和应用开发)
这一块儿是我接下来要深入了解和学习内容。学习上面的内容都是为了这里做铺垫。嵌入式Linux的学习主要包含两个部分,一是嵌入式Linux驱动开发、二是嵌入器Linux应用开发。当然嵌入式不只有Linux,那为什么我们说起嵌入式,首先想到的就是Linux,甚至一说起它就把他和Linux对等起来?这其中一个很重要的原因就是Linux操作系统他是开源的,这么一个比肩windows的强大开源操作系统,你不用它用谁呢?

嵌入式Linux的开发板也是一样,某原子和某火都有相应的开发板,还有某东山。某东山在嵌入式Linux有很深的耕耘,相比较某原子和某火而言,可能某东山更有经验,但是价格也会相应的提高。看自己取舍了。

①嵌入式Linux驱动开发:
驱动开发就是我们常说的嵌入式底层开发,比如我们的芯片有USB、SDIO、GPIO、PWM、SPI、IIC等外设接口,我们就需要编写这些外设驱动代码,以便上层接口可以调用,比如我想在这个芯片上接个摄像头拍照获取图像,那怎么办?写代码控制?你知道怎么写代码去控制他吗?这么说可能比较抽象。拿电脑来说,你应该听过蓝牙驱动、显示屏驱动、显卡驱动这些概念,如果你想要使用蓝牙、显示屏、显卡,就必须先安装这些驱动才可以死正常使用。就这么理解就可以。咱们嵌入式Linux驱动开发,做的就是差不多这些工作。

②嵌入式Linux应用开发:
应用开发顾名思义就是用Linux做应用开发的,当一颗芯片的各种外设驱动搞定后,就可以在这颗芯片上做应用开发了。我们可能听过Qt(一个优秀的,跨平台的上位机编写工具),他就属于是应用层的开发。应用层只需要直接调用给的接口,便可让想要外设工作,比如我的芯片接了一颗摄像头,应用层只需要直接调用接口,便可直接获取到摄像头数据获取的图像数据。再比如我想联网获取网络数据,我可以直接用代码调用对应的网卡接口获取网络数据等。Linux应用主要学习的内容有:
A. 文件IO;
B. 多线程/多进程;
C. 网络编程等。

当然远不止这些,这里面还涉及很多问题,需要学习很多东西,但是这些大多数东西都是一样的,也就是说你熟练掌握后,后续在其他芯片或者平台上应用也是一样的。

除此之外,你还要会一点模电和数电的常识,能看明白原理图,学会使用万用表、示波器、函数信号发生器、逻辑分析仪等基本工具。任何一点都需要你做一些项目才能熟练掌握,记住,嵌入式是以应用为主,光看书和视频是不可能学会的,动手实践才是王道。

当然,上面我说的这些,你只需要熟练掌握任何一点,都能找到一份不错的工作。现在还有很多使用8位单片机做开发的,比如我们实习的家电行业;还有很多使用32位单片机的场合,比如功能稍微复杂一点的手表/手环等带显示屏的电子产品等。

嵌入式的学习还远远不止我上面说到的这些,在学习和开发过程中还会碰到很多的东西,很多的概念,很多你不熟悉的东西。不过不用怕,如果你热爱它,那就动手干吧!

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 嵌入Linux音频驱动需要以下几个步骤: 1. 下载并安装音频驱动程序,可以从设备制造商的网站获取或从Linux社区获取。解压文件并按照说明进行安装。 2. 确保您的内核已启用音频功能。可以通过进入内核配置并确认ALSA和音频驱动是否启用来检查。 3. 检查你的板子是否与内核兼容。内核设备驱动程序负责管理硬件和操作系统之间的接口。确认您的硬件设备是否与内核兼容,以便正确识别硬件并为其分配驱动程序。 4. 更改内核配置并重新编译内核。如果需要启用一些新的功能或支持,例如编解码和协议支持,则需要更改内核配置。请按照注意事项进行更改,重新编译内核,并将其部署到您的设备上。 5. 配置您的设备如何访问内核。确保内核可以正确识别您的硬件,并为其分配正确的驱动程序。如果设备没有正确配置,它将无法访问驱动程序,并可能无法正常工作。 6. 测试音频设备并调整设置。在确保设备已正确配置和分配驱动程序之后,测试音频设备以确保其正常工作。您可能需要调整一些设置以获得最佳效果。 总的来说,嵌入式Linux音频驱动的安装和配置需要一些技术知识和系统工程经验。建议在进行该过程之前,详细了解设备配置和内核配置,并遵循说明。 ### 回答2: 嵌入式音频驱动在Linux系统中的嵌入是一个重要的过程,它要求开发人员对音频硬件及其接口进行深入了解,还需要一定的嵌入式开发技能。下面是嵌入式Linux音频驱动的主要步骤: 1. 确定音频硬件型号和接口。在嵌入式系统中开发音频驱动,首先需要明确所使用的音频硬件型号和接口,这决定了驱动程序开发的难度和目标。 2. 编写驱动程序。根据确定的音频硬件型号和接口,编写相应的音频驱动程序。该程序包括初始化程序、中断处理程序、读写程序等。 3. 编译驱动程序。将编写好的音频驱动程序合并到嵌入式Linux内核中,然后进行编译。在编译过程中,需要根据驱动程序中音频硬件的型号和接口进行配置。 4. 安装驱动程序。安装编译好的内核到目标系统中,并启用相应的音频驱动程序。此时,系统外设管理器即可自动识别并加载音频驱动程序。 总之,嵌入式Linux音频驱动的开发需要掌握嵌入式开发技能,熟悉音频硬件和接口知识,并具备一定的调试能力。同时,还需要积极参与Linux开发社区,获取必要的技术资料和交流经验。 ### 回答3: 嵌入Linux音频驱动需要了解Linux内核的架构和音频驱动的工作原理。Linux内核是一个模块化的结构,每个外部设备都有专门的驱动程序与之配合,将设备与内核进行交互。嵌入音频驱动的过程包括几个主要步骤: 1. 在内核中选择相应的音频驱动模块,配置内核源码编译。 2. 编译内核时将所选的音频驱动模块编译进内核镜像中或作为可加载模块。 3. 重新编译内核并安装内核镜像。 4. 驱动模块被加载到系统中后,需要配置相应的音频设备和调整参数。 5. 在应用层编写适配驱动的相关程序,连接音频设备与应用程序。 以上步骤涵盖了嵌入Linux音频驱动的主要流程。需要注意的是,对于不同的硬件平台,可能需要进行一定的自定义开发,以确保驱动程序能够充分支持设备。同时,Linux内核更新频繁,需要及时更新驱动程序以确保正常运行。此外,为了提高稳定性和可靠性,需要进行一定的测试验证工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

all of the time

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值