摘要:
一、新字符设备驱动原理 因为 register_chrdev 和 unregister_chrdev 两个函数是老版本驱动文件,现在可以用新字符设备驱动 API 函数。 1. 分配和和释放设备号 使用 register_chrdev 函数注册字符设备的时候只需要给定一个主设备号即可,但是这样会带来两 阅读全文
摘要:
一、Linux 下的 LED 驱动原理 Linux 下的任何驱动,最后都是要配置相应的硬件寄存器。 1. 地址映射 MMU 全称叫做 MemoryManage Unit,也就是内存管理单元。 现在的 Linux 支持无 MMU 处理器。MMU 主要完成的功能为: 1、完成虚拟空间到物理空间的映射。 阅读全文
摘要:
一、字符设备驱动简介 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、 IIC、 SPI,LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。 Linux 应用程序对驱动程序的调用 阅读全文
摘要:
一、根文件系统简介 根文件系统一般也叫做 rootfs,这个是属于 Linux 内核的一部分。 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所挂载(mount)的第一个文件系统,内核代码的映像文件保存在根 阅读全文
摘要:
一、编译 ST 的 Linux 系统 1. 压缩源码 首先先下载 ST 官方源码,之前章节已经下载过了,直接输入以下命令: cd linux/atk-mpl/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gn 阅读全文
摘要:
一、ST 官方 U-boot 编译测试 1. ST 官方 uboot 源码打补丁 1.1 获得 ST 官方的 uboot 源码 https://www.cnblogs.com/toutiegongzhu/p/17578847.html 这里可以看如何下载uboot源码。解压完后输入以下命令: cd 阅读全文
摘要:
通过对 uboot 启动流程的梳理,我们就可以掌握一些外设是在哪里被初始化的,这样当我们需要修改这些外设驱动的时候就会心里有数。 一、链接脚本 u-boot.lds 分析 uboot 的启动流程,首先要找到“入口”,找到第一行程序在哪里。程序的链接是由链接脚本来决定的,所以通过链接脚本可以找到程序的 阅读全文
摘要:
一、U-boot工程目录分析 如果要分析uboot源码,首先要将uboot源码进行编译,编译需要在Ubuntu进行,把uboot文件放在一个目录下。 编译完成后的文件是这样: 我们需要看的文件夹如下。 1. arch 文件夹 从上图可以看出有很多架构,比如 arm、 m68k、 x86 等,我们现在 阅读全文
摘要:
由于Ubuntu出现了一些问题,后面都是使用正点原子官方版本。 一、U-boot使用 1. U-boot源码 Linux 系统要启动需要通过 bootloader 程序引导,也就说芯片上电以后先运行一段 bootloader 程序。这段 bootloader 程序会先初始化 DDR 等外设,然后将 阅读全文
摘要:
一、TF-A的使用 TF-A是什么? TF-A 全称是 Arm Trusted Firmware,TF-A是为了保证安全,arm退出的可信固件,简称TF-A。它的作用就是隔离硬件,为硬件提供一个安全环境并提供安全服务。 1. 系统源码获取 STM32MP1Dev - STM32MP1 OpenSTL 阅读全文