摘要: Linux 蜂鸣器实验 1、修改设备树文件 I.MX6U-ALPHA开发板上的BEEP使用了SNVS_TAMPER1这个PIN,打开imx6ull-alientekemmc.dts,在 iomuxc 节点的 imx6ul-evk 子节点下创建一个名为“pinctrl_beep”的子节点,节点内容如下 阅读全文
posted @ 2024-06-11 23:10 Bathwind_W 阅读(9) 评论(0) 推荐(0) 编辑
摘要: pinctrl 子系统主要工作内容如下: ①、获取设备树中 pin 信息。 ②、根据获取到的 pin 信息来设置 pin 的复用功能 ③、根据获取到的 pin 信息来设置 pin 的电气特性,比如上/下拉、速度、驱动能力等。 对于我们使用者来讲,只需要在设备树里面设置好某个 pin 的相关属性即可, 阅读全文
posted @ 2024-06-11 11:15 Bathwind_W 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 设备树下的 LED 驱动实验 本章实验重点内容如下: ①、在 imx6ull-alientek-emmc.dts 文件中创建相应的设备节点。 ②、编写驱动程序(在第四十二章实验基础上完成),获取设备树中的相关属性值。 ③、使用获取到的有关属性值来初始化 LED 所使用的 GPIO。 设备树文件添加设 阅读全文
posted @ 2024-06-08 19:33 Bathwind_W 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 设备树(Device Tree),将这个词分开就是“设备”和“树”,描述设备树的文件叫做 DTS(DeviceTree Source),这个 DTS 文件采用树形结构描述板级设备,也就是开发板上的设备信息,比如CPU 数量、 内存基地址、 IIC 接口上接了哪些设备、 SPI 接口上接了哪些设备等等 阅读全文
posted @ 2024-06-07 18:12 Bathwind_W 阅读(19) 评论(0) 推荐(0) 编辑
摘要: register_chrdev 和 unregister_chrdev 这两个函数是老版本驱动使用的函数,现在新的字符设备驱动已经不再使用这两个函数,而是使用Linux内核推荐的新字符设备驱动API函数。新字符设别驱动API函数在驱动模块加载的时候自动创建设备节点文件。 分配和释放设备号 使用 re 阅读全文
posted @ 2024-06-05 21:05 Bathwind_W 阅读(17) 评论(0) 推荐(0) 编辑
摘要: I.MX6U-ALPHA 开发板上的 LED 连接到 I.MX6ULL 的 GPIO1_IO03 这个引脚上,进行这个驱动开发实验之前,需要了解下地址映射。 地址映射 MMU 全称叫做 MemoryManage Unit,也就是内存管理单元。在老版本的 Linux 中要求处理器必须有 MMU,但是现 阅读全文
posted @ 2024-06-05 19:58 Bathwind_W 阅读(17) 评论(0) 推荐(0) 编辑
摘要: Linux 中的设备驱动程序是连接硬件设备和操作系统之间的重要桥梁,确保硬件设备能够在操作系统控制下正常工作。在 Linux 中,设备驱动主要分为三大类:字符设备驱动、块设备驱动和网络设备驱动。下面我将详细解释这三类驱动的特点、用途和区别。 字符设备驱动 字符设备驱动程序主要用于那些按字符(byte 阅读全文
posted @ 2024-06-03 16:34 Bathwind_W 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 终于这几天把这个移植的流程过了一遍,所以特此回来总结。 U-boot移植 首先是U-boot移植。Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段bootloader 程序。这段bootloader程序会先初始化DDR等外设,然后将Linux内核从fla 阅读全文
posted @ 2024-06-02 20:00 Bathwind_W 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 链接脚本 vmlinux.lds 示例代码 36.1.1 vmlinux.lds 链接脚本 492 OUTPUT_ARCH(arm) 493 ENTRY(stext) 494 jiffies = jiffies_64; 495 SECTIONS 496 { 497 /* 498 * XXX: The 阅读全文
posted @ 2024-05-30 10:15 Bathwind_W 阅读(18) 评论(0) 推荐(0) 编辑
摘要: makefile分析: 分析linux makefile文件时候我们需要在vscode下设置屏蔽下不用的文件夹。具体来说可以先建立一个.vscode文件夹和setting.json。具体内容为: {"search.exclude": { "**/node_modules": true, "**/bo 阅读全文
posted @ 2024-05-30 09:26 Bathwind_W 阅读(46) 评论(0) 推荐(0) 编辑