Linux Kernel入门到精通系列讲解 - 总目录

在这里插入图片描述

一、Linux入门篇

1、开发环境准备篇

在学习Linux ARM之前,需要先准备开发环境,方便后续进行开发。可以根据自身情况,选择性阅读该章节

1.1 开发环境搭建合集

Linux ARM平台开发系列讲解(入门篇) 1.1.1 配置NFS服务器
Linux ARM平台开发系列讲解(入门篇) 1.1.2 TFTP服务安装
Linux ARM平台开发系列讲解(入门篇) 1.1.3 开发板、Ubuntu和windows三者相互连接,无需路由器,全网最详细
Linux ARM平台开发系列讲解(入门篇) 1.1.4 挂载Ubuntu(Linux)实现文件共享传输
Linux ARM平台开发系列讲解(入门篇) 1.1.5 arm-linux交叉编译工具链安装
Linux ARM平台开发系列讲解(入门篇) 1.1.6 Ubuntu更换下载源为下载源提升下载速度
Linux ARM平台开发系列讲解(入门篇) 1.1.7 VSCODE 安装配置阅读Linux内核源码环境及其使用

1.2 IMX8开发

Linux ARM平台开发系列讲解(调试篇) 1.2.1 如何编译IMX8-SDK
Linux ARM平台开发系列讲解(调试篇) 1.2.2 如何编译IMX8MPUS-SDK

1.3 RK3399开发

Linux ARM平台开发系列讲解(调试篇) 1.3.1 RK3399 SKD编译及其使用
Linux ARM平台开发系列讲解(调试篇) 1.3.2 RK3399移植Ubuntu文件系统步骤

1.4 S32G274A开发

Linux ARM平台开发系列讲解(调试篇) 1.4.1 如何获取S32G274ASDK及其编译
Linux ARM平台开发系列讲解(调试篇) 1.4.1 S32G274A如何使用TFTP加载内核和NFS挂载文件系统
Linux ARM平台开发系列讲解(调试篇) 1.4.2 S32G274A PCIe调试
Linux ARM平台开发系列讲解(调试篇) 1.4.3 S32G274A CAN和LLCE CAN调试

1.5 文件系统移植搭建

Linux ARM平台开发系列讲解(调试篇) 1.5.1 如何使用QEMU移植Ubuntu18.04.5到ARM芯片上
Linux ARM平台开发系列讲解(调试篇) 1.5.2 RK3399移植Ubuntu文件系统步骤

1.6 NVIDIA AGX开发

Linux ARM平台开发系列讲解(调试篇) 1.6.1 NVIDIA AGX Kernel源码获取及其编译
Linux ARM平台开发系列讲解(调试篇) 1.6.2 NVIDIA AGX Kernel_BSP文件目录分析及其烧录更新方法
Linux ARM平台开发系列讲解(调试篇) 1.6.3 NVIDIA AGX Xavier刷机方法
Linux ARM平台开发系列讲解(调试篇) 1.6.4 NVIDIA AGX Xavier以太网MAC TO MAC模式

1.7 RK3399Pro开发

Linux ARM平台开发系列讲解(调试篇) 1.7.1 RK3399Pro环境搭建及其编译

2、内核驱动开发入门篇

Linux ARM平台开发系列讲解(LED) 2.1.1 如何点亮一个LED之添加设备树信息
Linux ARM平台开发系列讲解(LED) 2.1.2 如何点亮一个LED之驱动编写
Linux ARM平台开发系列讲解(LED) 2.1.3 如何点亮一个LED之注册字符设备驱动

Linux ARM平台开发系列讲解(定时器) 2.2.1 内核定时器的使用

Linux ARM平台开发系列讲解(GPIO子系统) 2.3.1 初识GPIO子系统框架
Linux ARM平台开发系列讲解(GPIO子系统) 2.3.2 GPIO子系统常用函数解析

Linux ARM平台开发系列讲解(SPI) 2.4.1 SPI通信过程介绍
Linux ARM平台开发系列讲解(SPI) 2.4.2 SPI主设备驱动分析

Linux ARM平台开发系列讲解(TTY) 2.5.1 串口TTY子系统框架
Linux ARM平台开发系列讲解(TTY) 2.5.2 串口TTY子系统驱动源码分析

Linux ARM平台开发系列讲解(SPI与TTY实战) 2.6.1 SPI主设备驱动WK2124实战

Linux ARM平台开发系列讲解(IIC) 2.7.1 IIC总线驱动框架分析
Linux ARM平台开发系列讲解(IIC) 2.7.2 i2c-tools的使用方法
Linux ARM平台开发系列讲解(IIC) 2.7.3 I2C设备驱动分析
Linux ARM平台开发系列讲解(IIC) 2.7.4 I2C设备驱动实战开发

Linux ARM平台开发系列讲解(IIO子系统) 2.8.1 IIO驱动开发分析

Linux ARM平台开发系列讲解(ADC) 2.9.1 ADC驱动详解
Linux ARM平台开发系列讲解(ADC) 2.9.2 ADC驱动调试方法

Linux ARM平台开发系列讲解(platform平台子系统) 2.10.1 platform平台子系统介绍

Linux ARM平台开发系列讲解(IPCF异核通信) 2.11.1 IPCF异核通信介绍
Linux ARM平台开发系列讲解(IPCF异核通信) 2.11.2 IPCF异核通信框架分析及其源码编译
Linux ARM平台开发系列讲解(IPCF异核通信) 2.11.3 IPCF异核通信驱动编译及其测试

Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.1 摄像头介绍及其工具获取
Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.2 摄像头V4L2出图框架介绍
Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.3 注册V4L2子设备
Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.4 V4L2子设备操作函数结构体分析
Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.5 V4L2 control的原理和实现
Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.6 OV13850 v4l2_subdev注册匹配、摄像头出图测试和工具介绍
Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.7 摄像头V4L2驱动开发流程总结

Linux ARM平台开发系列讲解(PCIE) 2.13.1 从软件的角度去理解PCIE
Linux ARM平台开发系列讲解(PCIE) 2.13.2 PCI设备的访问方法(非桥设备)
Linux ARM平台开发系列讲解(PCIE) 2.13.3 PCI设备的访问方法(桥设备)
Linux ARM平台开发系列讲解(PCIE) 2.13.4 从软件的角度去学习PCIE硬件结构
Linux ARM平台开发系列讲解(PCIE) 2.13.5 PCIE的配置过程

Linux ARM平台开发系列讲解(CAN) 2.14.1 CAN基础协议分析
Linux ARM平台开发系列讲解(CAN) 2.14.2 CAN调试工具安装及其使用
Linux ARM平台开发系列讲解(CAN) 2.14.3 CANFD协议介绍
Linux ARM平台开发系列讲解(CAN) 2.14.4 FlexCAN Controller 介绍

3、内核驱动通信机制

Linux ARM平台开发系列讲解(Linux并发与竞争) 3.1.1 Linux并发与竞争概述

Linux ARM平台开发系列讲解(原子操作) 3.2.1 Linux内核原子操作

Linux ARM平台开发系列讲解(自旋锁) 3.3.1 Linux内核自旋锁描述

Linux ARM平台开发系列讲解(信号量) 3.4.1 Linux内核信号量描述

Linux ARM平台开发系列讲解(互斥体) 3.5.1 Linux内核互斥体描述

4、设备树篇

Linux ARM平台开发系列讲解(设备树篇) 4.1.1 设备树的原理详解
Linux ARM平台开发系列讲解(设备树篇) 4.2.1 设备树常用的函数详解

5、u-boot篇

Linux ARM平台开发系列讲解(u-boot篇) 5.1 u-boot的启动流程分析(ARMv8-a)

二、Linux驱动网络篇

1、Linux通用网络驱动框架

学习该章节之前,你应该了解一下网络概念,明白为什么要讲这些,才能更有方向的去理解学习
Linux ARM平台开发系列讲解(网络篇)1.0 以太网接口详解
Linux ARM平台开发系列讲解(网络篇)1.1 SMI 接口(MDIO)及其协议讲解
Linux ARM平台开发系列讲解(网络篇)1.2 MDIO总线驱动框架分析
Linux ARM平台开发系列讲解(网络篇)1.3 MDIO总线设备device和设备driver匹配
Linux ARM平台开发系列讲解(网络篇)1.4 MDIO总线设备phy device设备ID定义和获取
Linux ARM平台开发系列讲解(网络篇)1.5 MDIO总线设备phy driver中phy ID的定义
Linux ARM平台开发系列讲解(网络篇)1.6 STMMAC网络驱动框架分析
Linux ARM平台开发系列讲解(网络篇)1.7 PHY状态机分析
Linux ARM平台开发系列讲解(网络篇)1.8 PHY中断机制分析
Linux ARM平台开发系列讲解(网络篇)1.9 以太网帧格式IEEE802.3介绍

2、Marvell 88EA6321/88EA6320 Switch交换机驱动开发

Linux ARM平台开发系列讲解(交换机) 2.1 Marvell 88EA6321/88EA6320 Switch 数据手册阅读之了解芯片功能
Linux ARM平台开发系列讲解(交换机) 2.2 Marvell 88EA6321/88EA6320 Switch 寄存器解读篇
Linux ARM平台开发系列讲解(交换机) 2.3 Marvell 88EA6321/88EA6320 Switch 设备树的配置分析
Linux ARM平台开发系列讲解(交换机) 2.4 Marvell 88EA6321/88EA6320 交换机内核驱动初始化分析
Linux ARM平台开发系列讲解(交换机) 2.5 Marvell 88EA6321/88EA6320 交换机注册框架分析
Linux ARM平台开发系列讲解(交换机) 2.6 Marvell 88EA6321/88EA6320 交换机编译

三、Linux摄像头驱动篇

1、MAX9296 & MAX9295 和摄像头AR0233 GMSL摄像头开发

Linux ARM平台开发系列讲解(GMSL摄像头篇)1.1 GMSL协议介绍
Linux ARM平台开发系列讲解(GMSL摄像头篇)1.2 MAX9296 GMSL链路配置
Linux ARM平台开发系列讲解(GMSL摄像头篇)1.3 MAX9295 GMSL注意事项

四、QEMU 篇

  • 本章节我们将会亲手去虚拟化一个CPU(基于RISC-V64),本章节你可以学习到CPU的内部结构、U-bootLinux Kernel和一些IPDriver体验篇中讲解了如何搭建环境,没有搭建环境的可以先看体验篇跟着做一遍,不然后面你可能跟不上。
  • 本项目的代码仓库地址:Git 仓库地址
  • 本项目完全开源,仅供学习使用,如需其他用途,请与本人联系。
  • 阅读顺序遵循QEMU—>OpenSBI—>U-boot—>Linux Kernel
  • 另外,提一句,分类讲解的目的是为了一些用户可以快速找到自己需要的东西,快速将其bringup,所以我没有把从qemu实现到Linux都混在一起写,希望理解。

1、QEMU 设备构建篇

Linux Kernel入门到精通系列讲解(QEMU-体验篇) 1.1 编译QEMU 构建RISC-V64架构 运行Linux kernel
Linux Kernel入门到精通系列讲解(QEMU-体验篇) 1.2 新添加一个Linux kernel设备树

2、基于QEMU从零搭建一颗属于自己的CPU(基于RISC-V64 )

Linux Kernel入门到精通系列讲解(QEMU-虚拟化篇) 2.1 新增加一个RISC-V CPU
Linux Kernel入门到精通系列讲解(QEMU-虚拟化篇) 2.2 新增加CPU外设之UART、中断控制器和pFLASH
Linux Kernel入门到精通系列讲解(QEMU-虚拟化篇) 2.3 创建OpenSBI虚拟化环境
Linux Kernel入门到精通系列讲解(QEMU-虚拟化篇) 2.4 创建Virtio和fw_cfg虚拟化环境
Linux Kernel入门到精通系列讲解(QEMU-虚拟化篇) 2.5 Qemu实现RTC设备
Linux Kernel入门到精通系列讲解(QEMU-虚拟化篇) 2.6 Qemu实现power控制器,实现reboot和halt指令

3、RISC-V64 OpenSBI 篇

Linux Kernel入门到精通系列讲解(OpenSBI 篇) 3.1 OpenSBI 源码分析之汇编
Linux Kernel入门到精通系列讲解(OpenSBI 篇) 3.2 OpenSBI 源码分析之初始化
Linux Kernel入门到精通系列讲解(OpenSBI 篇) 3.3 OpenSBI 源码分析之domain

4、RISC-V64 U-boot 篇

Linux Kernel入门到精通系列讲解(RV-U-boot 篇) 4.1 RISC-V快速移植启动一个U-boot
Linux Kernel入门到精通系列讲解(RV-U-boot 篇) 4.2 RISC-V从零移植自己的Uboot
Linux Kernel入门到精通系列讲解(RV-U-boot 篇) 4.3 U-boot中加入virtio和fw_cfg

5、RISC-V64 Kernel 篇

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.1 从零移植 Linux kernel,基于RISC-V
Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.2 从零移植 Ubuntu,基于RISC-V
Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.3 从零移植 busybox,基于RISC-V
Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.4 添加GPU和Framebuffer显示设备
Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.5 RTC设备编写与实现
Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.6 在kernel 中实现系统复位和系统关机驱动

6、RISC-V64 Baremetal 篇

7、RISC-V64 RTOS 篇

  • 12
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌入式内核源码

给我一点肉啊

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

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

打赏作者

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

抵扣说明:

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

余额充值