嵌入式驱动学习目录索引(更新中)

本文档详述了学习嵌入式Linux驱动开发的过程,涵盖基础知识如工具使用、C语言技巧,以及驱动开发的核心内容,包括Linux驱动框架、子系统和常见问题解决方法,对初学者和开发者极具参考价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

   这是一篇索引博客,用来作为索引记录学习嵌入式Linux的过程,可以用来给自己以及需要的读者作为一个目录索引,每次更新完博客都会添加进该目录中。

   嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以关注本博主并订阅本专栏,一起讨论一起学习。现在关注就是老粉啦!

1. 基础知识部分

1.1 工具使用与调试手段

   git使用教程
   vim的使用教程
   Linux内核打印——dmsg指令与printk函数
   使用perf进行性能优化
   Linux网络基础调试命
   Windows下远程连接Ubuntu的解决方案——优雅的在Windows下进行Linux开发
   内核函数调用——打印堆栈(dump_stack、WARN_ON、BUG_ON、panic等)
   跟踪系统事件——ltrace、strace、ptrace

1.2 linux与C语言

   C语言的断言机制
   Linux系统的休眠(挂起)唤醒
   container_of()宏
   linux内核链表list_head
   Linux内核中的继承思想与私有指针private_data

1.3 linux驱动相关基础知识

   自旋锁与互斥锁
   linux内核定时器与延时函数
   内核的中断机制与下半部
   Linux错误码以及 IS_ERR、ERR_PTR、PTR_ERR
   阻塞IO,进程的休眠与唤醒
   linux设备管理模型初探——总线、设备、驱动关系
   优化驱动及提高驱动稳定性——ioctl优化,检测用户空间地址有效性,likely优化

2. 驱动开发

2.1 Linux驱动基础

   字符设备驱动关键结构体(file_operation、inode、file)与虚拟文件系统(VFS)
   Linux设备号与字符设备的注册、分配、释放
   platform总线
   设备树相关知识
   驱动模块相关知识(驱动入口,驱动出口,用户空间和内核空间)

2.2 Linux驱动框架(子系统)

   pinctrl子系统
   gpio子系统
   I2C子系统

bug解决

安装相关的问题

   perf的安装与迁移
   解决/sys/kernel/debug/下没有任何文件的bug
   解决/sys/power下没有autosleep的问题

代码相关问题

   vscode中解决驱动编写的时候static int __init chrdev_init()报错的问题
   驱动开发中,解决<stdlib.h> no such file的问题

移植相关问题

   I.MX6ull mini板的uboot移植
   修改uboot连接的主机的ip地址

其他

   modprobe加载驱动模块时报错:modprobe: module xxx.ko not found in modules.dep

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值