RK3399平台入门到精通系列讲解(导读篇)21天学习挑战介绍

Posted 内核笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RK3399平台入门到精通系列讲解(导读篇)21天学习挑战介绍相关的知识,希望对你有一定的参考价值。


活动地址:CSDN21天学习挑战赛

🚀返回总目录

文章目录

每个人在突破自己技术瓶颈时都会经历一段痛苦的时光,只有我们具有坚定的信念,并努力坚持下去,相信我等你回过头来再看曾经认为难以理解的技术和知识时,你会有一种阔然开朗、融会贯通的感觉,这就是成长和进步所带来最大的成就感。

一、关于作者

博主从事Linux内核和驱动开发七年多,是Linux内核的爱好者,在智能汽车行业上市公司从事Linux底层软件开发工作。
撰写博文是博主多年来一直坚持的事情,一是为了沉淀自己,二是只有不断的向前奔跑才能赶上Linux内核发展的步伐,故博主依靠RK3399此平台进行相关Linux内核驱动,android框架的研究。

1、博主的联系方式

由于博主知识水平有限,博文中难免存在纰漏和理解错误之处,敬请各位读者朋友批评指正。大家可添加博主的微信。allen_yxs

2、支持

  • 若读者有比较感兴趣的Linux内核板块,可以联系博主,博主会尽力去研读代码输出博文。

二、需要具备的知识和工具

RK3399平台上进行内核驱动开发,并非像C语言开发一样简单,需要我们付出一定的学习成本和时间成本,还要求我们有一定的基础知识,有的是需要掌握的,有的是只需要了解即可。

1、需掌握知识点

  1. C语言Linux内核的语言基石就是C语言,故我们必须掌握。
  2. 数据结构:内核中遍布了链表等数据结构。
  3. 硬件基础:我们开发驱动过程中会接触到形形色色的硬件,这个时候就需要你可以看懂硬件原理图。
  4. 英文阅读技巧:我们还需要经常通过芯片的数据手册查找相关寄存器地址等信息,故需要看懂英文芯片手册。

2、需了解的知识点

  1. C++面向对象的思想Linux内核设备管理的核心思想就是面向对象思想,设备管理的基石是Kobject(对象)结构体,故我们只需要了解这个面向对象的思想即可。
  2. git代码管理工具:现在主流的代码管理使用git,我们只需要了解几个简单的命令即可
  3. 硬件调试工具:虽然公司中有硬件工程师的帮助,但身为驱动工程师了解常见的万用表、示波器、逻辑分析仪等工具的使用,必不可少。

三、通过系列博客可以学到什么

1、本系列博文特色

  1. 图文并茂Linux内核庞大而复杂,任何一本厚厚的的Linux内核书籍都可能让人看得昏昏欲睡。因此博主在博客中都会插入思维导图的形式,让错综复杂的Linux内核子系统结构体关系明了。
  2. 以实战为出发角度:博主大部分博文中都会对应一个使用例子,这样才能学以致用。

2、21天学习目标

工作后学习的过程一定是要跟实际工作结合起来的,从工作中用到的知识出发,延伸到之前未接触到的地方,逐步构建自己的知识网络,本专栏也是工作调试过程中的经验记录。

微信:15168364509 拉大家入学习群

下面我根据自身经验,介绍下前期的学习顺序。

  1. 8月1日-8月7日 内核设备树学习:掌握内核硬件HW 配置。
  2. 8月8日-8月14日 内核调试技巧学习:掌握内核的调试手段。
  3. 8月15日-8月21日 内核驱动子系统学习:掌握iic、spi等总线子系统驱动。

3、21天学习内容

8月1日-8月7日 :

  1. 设备树(Device Tree)的由来
  2. 图解Kernel Device Tree(设备树)的使用
  3. 设备树二进制文件DTB解析
  4. 设备树dtb信息转化为device_node结构
  5. DTS 架构下 Device 与 Driver 匹配流程
  6. 内核对设备树的处理
  7. 设备树的解析of函数介绍
  8. DTB的基本调试方法
  9. 内核启动阶段获得dtb位置指针过程介绍

8月8日-8月14日 :

  1. 如何使用dynamic debug动态打印调试
  2. 如何使用dump_stack分析函数调用关系
  3. 休眠唤醒standby调试指南
  4. 如何创建一个proc节点供上层app调试使用
  5. devmem直接读写寄存器进行调试
  6. Linux Kernel Printk
  7. 利用debugfs调试

8月15日-8月21日

  1. GPIO子系统
  2. Pinctrl子系统详解
  3. SPI子系统
  4. I2C子系统
  5. UART子系统
  6. Input子系统

4、学习时间

  • 周一至周五晚上 7 点—晚上9点
  • 周六上午 9 点-上午 11 点
  • 周日上午 9 点-上午 11 点

5、学习产出

技术笔记 3 篇,每周周末输出一篇本周总结。


四、一些经验

1、学习时间

  1. 平时周内工作一定要做好记录,然后周末进行汇总总结。
  2. 早上可以去阅读代码,整理代码框架。

只要肯愿意去积累,两个月入门,两年精通,五年大成

2、学习方法

  1. 自己闭门造车不好,不如将自己的总结发出来,这样会更好的激励自己。
  2. dump_stack分析函数调用关系,这个手段掌握了,分析代码框架就是如鱼得水。

以上是关于RK3399平台入门到精通系列讲解(导读篇)21天学习挑战介绍的主要内容,如果未能解决你的问题,请参考以下文章

RK3399平台入门到精通系列讲解(导读篇)RK3399平台介绍

RK3399平台入门到精通系列讲解(导读篇)资料下载与介绍

RK3399平台入门到精通系列讲解(导读篇)烧写工具使用

RK3399平台入门到精通系列讲解(导读篇)前言

RK3399平台入门到精通系列讲解(导读篇)使用到的工具

RK3399平台入门到精通系列讲解 - 总目录