0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式Linux驱动底层开发工程师的建议学习路线

工程师人生 来源:工程师吴畏 2019-06-26 17:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

不请自来。做电赛出身的程序猿一名,目前从事嵌入式Linux驱动开发。还有单片机从51到意法Ti都做过,DSP只用过TI的,主要是在开关电源控制方面的应用。建议学习路线:

1 学习51单片机,这个阶段你只需要跟着郭天翔的视频去学,只要求实现功能,不求甚解。但建议能够提出问题,比如“为什么往IO控制寄存器写入特定值能点亮LED灯?”“IO口的电路结构是什么样子的?”“什么是上拉下啦,灌电流拉电流?”,这一阶段主要是熟悉单片机的使用,并且在使用中思考发现问题,还能熟悉一些基本概念。

2 开始查资料看书,看模拟电路数字电路等等,开始去弄明白1中所提出的问题。这时候问题主要集中在电路方面。

3 开始学习STM32,随便买个板子,看原子的书跟着一步步去做。这时候你会遇到很多计算机方面的问题,这时候一边学习教程,一边学习:微机原理,编译原理,操作系统。你要弄清楚ARM架构,弄明白CPU如何取指,译码,执行,知道地址总线,控制总线,数据总线如何工作。要弄明白你编译各个阶段产生的各个文件是什么,什么是分散加载,什么是重定位,什么是代码段,什么是数据段,等等。还要能弄明白CPU如何启动,程序镜像在内存中如何布局。要知道中断的原理,以及现场保护等等。最后你了解了各个知识点之后,转向GCC开发STM32,这时候你如果知识掌握得不错,你应该可以很快地学会编写链接器脚本并且明白每一条语句所代表的含义。

4 开始增强C语言,深入挖掘C语言的各个死角。最好可以做到当你写下一条语句的时候知道编译器会如何处理。还需要数据结构和软件工程,建议最好还要学习一下设计模式。开始学习养成良好的代码风格,开始思考代码的结构。可以说设计模式如果能学好,在往后学习LINUX内核时大有裨益。你会发现LINUX的输入子系统有点像职责链模式,会发现ASOC音频系统有点像模板方法模式。私以为,如果能在两个以上不同方面考察同一种编程思想,你会得到更加深刻的理解,更能领会其精华。

5 认真研读OS方面的书,各个知识点都要弄明白,进程是什么程序是什么线程是什么,竞争死锁优先级反转,虚拟地址空间物理地址空间,用户空间内核空间等等。开始学习ucos,这个没什么可说的,如果在2中能熟练掌握各种知识点,知道CPU如何中断如何保护恢复现场,那么读ucos的源码时候,在原理上就不会有什么疑惑。如果能在4中养成把握代码整体结构的能力并且学习好数据结构和基本的算法,读源码就没有什么障碍。一旦原理弄通了,源码也能读懂,那么吃透ucos就是顺理成章的事情。

6 自己仿照ucos写一个stm32上的实时os出来。

7 进军LINUX。学习LINUX的基本使用,看赵炯那本内核剖析,啃LINUX内核设计与实现,把握总体的内核架构。之后可以学习驱动,看建议陈学松老师的书,弄明白基本的驱动架构和如何编写简单的驱动,认真对待,这里强调一下设备驱动模型。最后啃LINUX内核源码情景分析,上下两册用心读,这里着重强调一下内核中的VFS部分。之后就是看宋宝华老师的书,进一步学习驱动开发。最后。。。。。。。看内核源码看内核源码看内核源码。

8 其它的什么SPI,IIC,什么DMA,都只是技能问题,只要知识学的好,技能想咋点就咋点。

9 暂时没想到其它的了。想到再说

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5209

    文章

    20655

    浏览量

    336979
  • Linux
    +关注

    关注

    88

    文章

    11817

    浏览量

    219538
  • 开发工程师
    +关注

    关注

    1

    文章

    91

    浏览量

    15385
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何成为一名高薪嵌入式工程师

    嵌入式,也可以轻松入门。 如果你已经明确好,想要从事嵌入式开发,想要成为一名高薪的嵌入式工程师,那下面这几点建议请好好看看: 一、夯实
    发表于 04-09 09:03

    什么是BSP工程师

    ,全称Board Support Package,汉语意思即板级支持包。BSP工程师,顾名思义就是负责板级支持包的开发、调试和维护工作。那么什么是板级支持包呢?前面我们讲过,嵌入式硬件工程师
    发表于 01-13 06:54

    从小白到大牛:Linux嵌入式系统开发的完整指南

    从小白到大牛:Linux嵌入式系统开发的完整指南 一、小白入门:搭建 Linux 嵌入式开发的认知地基​ 对于零基础
    发表于 12-16 10:42

    系统嵌入式学习路线

    到搞的很精通,我要学会抓住重点,学会取舍,达到一通百通,事半功倍的学习效果。 首先嵌入式技术主要分为嵌入式软件和嵌入式硬件2大方向。 嵌入式
    发表于 12-16 07:49

    分享一个嵌入式开发学习路线

    如果你想要学习嵌入式开发,我建议按照这个学习路线准备: 1. 基础铺垫期(1-2个月) 理解嵌入式
    发表于 12-04 11:01

    ARM嵌入式这样学

    , UCOS 等等,一个操作系统移植到里面去,跑起来,然后就自己利用操作系统的接口写一些应用软件,就可以直接控制其强大的外设了。当然了,这中间还有另外一种工程师在工作,就是嵌入式驱动工程师,他是专门针对硬件
    发表于 12-04 07:48

    嵌入式就业形势好不好?

    STM32等基础单片机技术的工程师便能找到一份不错的工作,而如今,企业更倾向于招聘那些不仅精通硬件,还具备Linux驱动开发、AI模型调试乃至无线通信能力的复合型人才。这种变化,无疑给
    发表于 11-10 11:48

    为什么嵌入式驱动开发工程师可以拿高薪

    嵌入式驱动开发工程师能拿到高薪,核心在于这个岗位刚好踩中了行业刚需、技术壁垒高、人才缺口大这三个关键节点,而且这种需求还在随着智能硬件的普及持续扩大。首先得明确,
    的头像 发表于 10-30 16:37 994次阅读
    为什么<b class='flag-5'>嵌入式</b><b class='flag-5'>驱动</b><b class='flag-5'>开发</b><b class='flag-5'>工程师</b>可以拿高薪

    嵌入式 STM32 零基础入门:「降维打击学习法」适配零基础,高效进阶全栈工程师

    嵌入式学习难吗?今天就为你揭秘颠覆传统的——“降维打击嵌入式学习法”!初学嵌入式会感觉难,为什
    的头像 发表于 08-25 15:24 875次阅读
    <b class='flag-5'>嵌入式</b> STM32 零基础入门:「降维打击<b class='flag-5'>式</b><b class='flag-5'>学习</b>法」适配零基础,高效进阶全栈<b class='flag-5'>工程师</b>

    嵌入式工程师为什么要学QT?

    、车载系统和消费电子等领域尤为突出。其跨平台特性、丰富的库和工具、高性能以及强大的GUI支持,让Qt成为嵌入式开发最理想的选择。 嵌入式工程师学习Qt有很多好处。 跨平台支持 Qt支持多种操作系统,如
    发表于 08-14 15:15

    嵌入式工程师的进阶之路

    嵌入式工程师的进阶之路 (一)初级工程师(0-3 年)核心技能: 单片机开发:STM32F103系列 GPIO/USART/SPI 外设驱动
    发表于 08-13 11:08

    盘点嵌入式就业所需要的技能有哪些?

    良好的沟通能力和团队合作精神,能够与不同领域的工程师协作。 综上所述,嵌入式行业的就业方向丰富多样,不同行业对嵌入式技术的需求也各有侧重。因此,嵌入式
    发表于 08-11 15:43

    Linux嵌入式和单片机嵌入式的区别?

    新的应用程序和驱动程序来扩展功能。 6. 开发难度 : 单片机嵌入式开发难度相对较低,适合初学者入门。 Linux
    发表于 06-20 09:46

    物联网工程师为什么要学Linux

    物联网工程师需要掌握Linux的主要原因可以从技术生态、开发需求、行业应用及就业竞争力四个角度来分析: 一、技术生态与行业适配性 1)嵌入式开发的主流平台 物联网设备往往基于
    发表于 05-26 10:32

    嵌入式开发入门指南:从零开始学习嵌入式

    基础 3. 学习路径推荐第一阶段:熟悉开发环境(如Keil、IAR、STM32)第二阶段:掌握裸机编程与驱动开发第三阶段:学习RTOS(实时
    发表于 05-15 09:29