合集-驱动开发
摘要:一、安装VMware 首先先下载 Vmware Workstation ,我这里下载的是最新版17Pro,下面这个链接是阿里云盘下载地址。 https://www.aliyundrive.com/s/c7R9LyVVNEq 永久激活码选其一: JU090-6039P-08409-8J0QH-2YR7
阅读全文
摘要:一、完成VMware Tools安装 双击VMwareTool 打开Ubuntu终端快捷键Alt+Control+T 切换汉语的快捷键是Alt+空格 ls 打印出当前所在目录中所有文件和文件夹 cd 桌面 进入桌面文件夹 sudo ./vmware-install.pl 安装tool,输入之前设置的
阅读全文
摘要:一、Linux文件系统结构 Linux下都是文件,所以没有Windows一样的盘,有的只有文件夹。 cd / // 进入根目录 ls // 查看根目录"/"下的文件及文件夹 /bin :存储了很多系统命令, /usr/sbin 也存储了许多系统命令。 /sbin :超级用户 root 的根目录文件。
阅读全文
摘要:一、Hello World 1、在用户根目录下创建一个C_Program,并在这里面创建3.1文件夹来保存Hellow World程序; 2、安装最新版nvim ①sudo apt-get install ninja-build gettext cmake unzip curl ②sudo apt
阅读全文
摘要:一、Ubuntu和Windows文件互传 ① 开启Ubuntu的FTP服务: 下载vsftpd:sudo apt-get install vsftpd; 打开vsftpd.conf:sudo nvim /etc/vsftpd.conf; 确保这两行代码没有被注释: 之后重启FTP服务: ② Wind
阅读全文
摘要:1. ROM代码 这是ST官方写的代码,在STM32MP1出厂时就已经烧录进去,不能被修改。ROM代码是上电以后首先执行的程序,它的主要工作就是读取STM32MP1的BOOT引脚电平,然后根据电平来判断当前启动设备,最后从选定的启动设备里面读取FSBL代码,将FSBL代码放在对应的RAM空间。 ST
阅读全文
摘要:一、TF-A的使用 TF-A是什么? TF-A 全称是 Arm Trusted Firmware,TF-A是为了保证安全,arm退出的可信固件,简称TF-A。它的作用就是隔离硬件,为硬件提供一个安全环境并提供安全服务。 1. 系统源码获取 STM32MP1Dev - STM32MP1 OpenSTL
阅读全文
摘要:由于Ubuntu出现了一些问题,后面都是使用正点原子官方版本。 一、U-boot使用 1. U-boot源码 Linux 系统要启动需要通过 bootloader 程序引导,也就说芯片上电以后先运行一段 bootloader 程序。这段 bootloader 程序会先初始化 DDR 等外设,然后将
阅读全文
摘要:一、U-boot工程目录分析 如果要分析uboot源码,首先要将uboot源码进行编译,编译需要在Ubuntu进行,把uboot文件放在一个目录下。 编译完成后的文件是这样: 我们需要看的文件夹如下。 1. arch 文件夹 从上图可以看出有很多架构,比如 arm、 m68k、 x86 等,我们现在
阅读全文
摘要:通过对 uboot 启动流程的梳理,我们就可以掌握一些外设是在哪里被初始化的,这样当我们需要修改这些外设驱动的时候就会心里有数。 一、链接脚本 u-boot.lds 分析 uboot 的启动流程,首先要找到“入口”,找到第一行程序在哪里。程序的链接是由链接脚本来决定的,所以通过链接脚本可以找到程序的
阅读全文
摘要:一、ST 官方 U-boot 编译测试 1. ST 官方 uboot 源码打补丁 1.1 获得 ST 官方的 uboot 源码 https://www.cnblogs.com/toutiegongzhu/p/17578847.html 这里可以看如何下载uboot源码。解压完后输入以下命令: cd
阅读全文
摘要:一、编译 ST 的 Linux 系统 1. 压缩源码 首先先下载 ST 官方源码,之前章节已经下载过了,直接输入以下命令: cd linux/atk-mpl/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gn
阅读全文
摘要:一、根文件系统简介 根文件系统一般也叫做 rootfs,这个是属于 Linux 内核的一部分。 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所挂载(mount)的第一个文件系统,内核代码的映像文件保存在根
阅读全文
摘要:一、字符设备驱动简介 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、 IIC、 SPI,LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。 Linux 应用程序对驱动程序的调用
阅读全文
摘要:一、Linux 下的 LED 驱动原理 Linux 下的任何驱动,最后都是要配置相应的硬件寄存器。 1. 地址映射 MMU 全称叫做 MemoryManage Unit,也就是内存管理单元。 现在的 Linux 支持无 MMU 处理器。MMU 主要完成的功能为: 1、完成虚拟空间到物理空间的映射。
阅读全文
摘要:一、新字符设备驱动原理 因为 register_chrdev 和 unregister_chrdev 两个函数是老版本驱动文件,现在可以用新字符设备驱动 API 函数。 1. 分配和和释放设备号 使用 register_chrdev 函数注册字符设备的时候只需要给定一个主设备号即可,但是这样会带来两
阅读全文
摘要:一、什么是设备树? 设备树(Device Tree),描述设备树的文件叫做 DTS(DeviceTree Source),这个 DTS 文件采用树形结构描述板级设备,也就是开发板上的设备信息: 树的主干就是系统总线, IIC 控制器、 GPIO 控制器、 SPI 控制器等都是接到系统主线上的分支。I
阅读全文
摘要:一、修改设备树文件 首先进入该目录下 /linux/atk-mpl/linux/my_linux/linux-5.4.31/arch/arm/boot/dts 打开 stm32mp157d-atk.dts 文件,在根节点 "/" 最后输入以下内容: stm32mp1_led { compatible
阅读全文
摘要:一、pinctrl 子系统 1. 什么是 pinctrl 子系统? 首先回顾一下如何初始化 LED 所使用的 GPIO: ①、修改设备树,添加相应的节点,节点里面重点是设置 reg 属性, reg 属性包括了 GPIO相关寄存器。 ②、获取 reg 属性中 GPIOI_MODER、 GPIOI_OT
阅读全文
摘要:一、蜂鸣器驱动原理 常用蜂鸣器分两种,有源蜂鸣器和无源蜂鸣器。 它们俩的区别:有源蜂鸣器具有内置的振荡器和驱动电路,无源蜂鸣器没有;源蜂鸣器只需简单的数字信号来控制,无源蜂鸣器需要外部电路或微控制器来提供特定频率的脉冲信号。 在 Linux 下做的工作:①设备树中添加蜂鸣器节点,在蜂鸣器节点中加入
阅读全文