自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 【C语言】format属性 | 变参函数

在C语言中,变参函数并不强制要求声明format属性,但这取决于你的用途。如果你的变参函数是用来处理格式化字符串的,比如类似于printf这样的函数,那么使用format属性是非常推荐的,因为它可以帮助静态分析工具理解函数参数的预期用途,从而提高代码的安全性和可维护性。

2024-07-03 17:12:27 1004

原创 【Linux驱动】设备树引入&内核对设备树的处理

如上图所示,是设备树的模型,之所以叫“树”,是因为所有的设备节点都挂载在系统总线上,形成一个树状结构。其中,所有的设备节点都是“根节点”的子节点,且子节点还可以继续挂载子节点,可以无限挂载下去,所以该模型有着较强的扩展能力。而驱动程序所需要的硬件信息,由内核读取设备树文件后,转化为platform_device结构体,提供给驱动程序。表示根节点,后面紧跟一对花括号,根节点的属性和根节点下挂载的子节点在花括号内定义。文件中定义了很多设备,但是在板子上某些设备是没有的,这时可以给这些设备添加一个。

2024-05-29 23:49:42 1468

原创 【Linux驱动】驱动模型进化 && 总线设备驱动模型

这就带来了一个问题——如果我们此时更换了一个开发板,就需要修改驱动程序中要操作的寄存器,每更换一个开发板,就需要对寄存器操作进行修改,这样的代码维护起来非常的麻烦,也不利于扩展。如上图所示,可以看出,在platform_bus中维护了两条链表,一条是挂载在该总线下的设备链表,另一条是挂载在该总线下的驱动链表。在linux系统中,大量使用了的面向对象的思想,因此,针对驱动层的分层,也抽象出了不同的结构体对象。在上一篇文章中,基于最基础的驱动程序框架,实现了一个简单的LED驱动程序,但驱动程序中的。

2024-05-09 00:46:23 1130 1

原创 【Linux驱动】最简单的LED驱动

上面步骤1(申请设备编号。

2024-04-18 00:49:23 994 1

原创 【linux驱动】最基本的驱动框架

我们上面步骤4中注册。

2024-04-14 00:23:43 1782 1

原创 【Linux驱动】Linux内核移植(基于百问网imx6ull_pro开发板)

是home目录下一个隐藏的shell文件,用于储存用户的个性化设置。在bash每次启动时都会加载.bashrc文件中的内容,并根据内容定制当前bash的配置和环境。

2024-04-08 00:02:24 1078 4

原创 【Linux驱动】pinctrl子系统主要数据结构

在前面的文章中学习了pinctrl子系统的相关概念和使用方法,对于驱动工程师来说已经够用了,但是如果作为BSP工程师,就需要了解pinctrl是怎么实现的。

2024-04-07 23:57:44 812

原创 【Linux驱动】pinctrl子系统的概念与使用

如果我们想让pinA和pinB用于SPI功能,需要设置IOMUX,配置这两个引脚连接到SPI模块。如果我们想让pinA和pinB用于GPIO功能,需要设置IOMUX,配置这两个引脚连接到GPIO模块。📌 此处的GPIO模块与SPIIICUART等为并列关系,它与pinctrl子系统的关系是,使用pinctrl子系统将pinApinB等复用至GPIO模块,然后才能将pinApinB用于GPIO功能。除了将引脚复用为某种功能外,有时候还需要配置引脚的电气属性,如上拉、下拉、开漏等等。

2024-03-19 01:18:41 1943 1

原创 【Linux驱动】Input子系统

输入子系统由驱动层(input_driver)、核心层(input_core)以及事件层(input_event_handle)组成,如下图所示:Note:Input子系统中所有输入设备的主设备号都是13,核心层通过次设备号来将输入设备分类,例如如0-31是游戏杆,32-63是鼠标(对应Mouse Handler)、64-95是事件设备(如触摸屏,对应Event Handler)。在使用input系统时,不需要去注册字符设备,只需要向系统申请一个input_device即可。在Linux内核中,使用inp

2024-03-07 00:12:29 1934 1

原创 UBOOT移植(基于百问网IMX6ULL_PRO开发板)

在添加引脚数组和初始化函数时,引入了新的宏。

2023-03-24 18:00:57 431

原创 uboot启动流程

uboot启动过程分析

2023-03-14 14:58:49 2086 1

原创 STM32串口发送数据的一段代码理解(纯属个人理解,如有不对,敬请指出)

STM32串口发送数据的一段代码理解(纯属个人理解,如有不对,敬请指出)本人是一位单片机的初学者,最近研究串口发送数据时对以下代码不能理解,通过几天的思考,有所顿悟,特将自己的理解写下来,希望能帮到像我这样的初学者。代码如下:void USART2_send_byte(uint8_t byte){ while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET); //待发送完成 USART_SendData(USART2,byte); //通过

2021-09-09 20:16:45 1602 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除