- 博客(1472)
- 资源 (308)
- 收藏
- 关注
原创 【Qt】Qt6系列教程汇总
00. 目录文章目录00. 目录01. Qt官方资讯02. Qt环境搭建03. Qt Creator教程04. Qt初级教程05. Qt中级教程06. Qt高级教程07. Qt项目实战08. 预留09. 预留10. 预留11. 预留12. 预留13. 官方网站14. 参考教程15. 附录01. Qt官方资讯02. Qt环境搭建03. Qt Creator教程04. Qt初级教程【Qt】Qt下载教程【Qt】Qt5.14安装教程【Tools】Qt 6.0安装图解教程【Qt】Qt 5.15 LT
2021-03-24 13:43:43 56286 24
原创 【C++】C/C++系列教程汇总(更新中......)
00. 目录文章目录00. 目录01. C语言基础02. C开发实战03. 数据结构04. C++语言基础05. C++核心编程06. C++开发实战07. MFC08. QT09. 课程设计10. 其它01. C语言基础02. C开发实战03. 数据结构04. C++语言基础05. C++核心编程06. C++开发实战07. MFC08. QT09. 课程设计10. 其它...
2021-01-28 19:31:24 1799 1
原创 【STM32】STM32系列教程汇总(更新...)
00. 目录文章目录00. 目录01.02.03.04.05.01.02.03.04.05.
2020-12-05 17:19:16 31560 5
原创 【Linux】一步一步学Linux系列教程汇总(更新中......)
00. 说明本博客持续更新,敬请关注。01. Linux概述【Linux】一步一步学Linux——Linux发展史(01)【Linux】一步一步学Linux——Unix发展史(02)【Linux】一步一步学Linux——Linux版本(03)...
2019-07-04 23:57:03 75904 79
原创 【Linux驱动】字符设备和杂项设备总结
Linux内核中将字符设备抽象成一个具体的数据结构(struct cdev),我们可以理解为字符设备对象, cdev记录了字符设备的相关信息(设备号、内核对象),字符设备的打开、读写、关闭等操作接口(file_operations), 在我们想要添加一个字符设备时,就是将这个对象注册到内核中,通过创建一个文件(设备节点)绑定对象的cdev, 当我们对这个文件进行读写操作时,就可以通过虚拟文件系统,在内核中找到这个对象及其操作接口,从而控制设备。那当然是用杂项设备了,因为他们的功能是一样的,杂项设备更简单。
2024-05-06 17:20:17 701
原创 【Linux驱动】设备类
Linux 驱动实验中,当我们通过 insmod 命令加载模块后,还需要通过 mknod 命令来手动创建设备节点,这样使用起来太麻烦了,并且不可能每个设备都去这样操作,Linux 系统的存在就是为了方便使用,所以我们来看一下如何实现自动创建设备节点,当加载模块时,在/dev 目录下自动创建相应的设备文件。怎么自动创建一个设备节点呢?在嵌入式 Linux 中使用 mdev 来实现设备节点文件的自动创建和删除。udev 是一种工具,它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等。
2024-05-06 17:15:48 828
原创 【Linux驱动】字符类设备注册
Linux内核中将字符设备抽象成一个具体的数据结构(struct cdev),我们可以理解为字符设备对象, cdev记录了字符设备的相关信息(设备号、内核对象),字符设备的打开、读写、关闭等操作接口(file_operations), 在我们想要添加一个字符设备时,就是将这个对象注册到内核中,通过创建一个文件(设备节点)绑定对象的cdev, 当我们对这个文件进行读写操作时,就可以通过虚拟文件系统,在内核中找到这个对象及其操作接口,从而控制设备。一个设备节点其实就是一个文件, Linux中称为设备文件。
2024-04-30 10:55:07 838
原创 【Linux驱动】字符设备号注册和注销
Linux内核中将字符设备抽象成一个具体的数据结构(struct cdev),我们可以理解为字符设备对象, cdev记录了字符设备的相关信息(设备号、内核对象),字符设备的打开、读写、关闭等操作接口(file_operations), 在我们想要添加一个字符设备时,就是将这个对象注册到内核中,通过创建一个文件(设备节点)绑定对象的cdev, 当我们对这个文件进行读写操作时,就可以通过虚拟文件系统,在内核中找到这个对象及其操作接口,从而控制设备。其中,每一行表示一个设备,每一行的第一个字符表示设备的类型。
2024-04-30 10:50:32 408
原创 【Linux驱动】Linux杂项设备之蜂鸣器驱动
Linux内核中将字符设备抽象成一个具体的数据结构(struct cdev),我们可以理解为字符设备对象, cdev记录了字符设备的相关信息(设备号、内核对象),字符设备的打开、读写、关闭等操作接口(file_operations), 在我们想要添加一个字符设备时,就是将这个对象注册到内核中,通过创建一个文件(设备节点)绑定对象的cdev, 当我们对这个文件进行读写操作时,就可以通过虚拟文件系统,在内核中找到这个对象及其操作接口,从而控制设备。字符型是流形式,逐一存储。它们是顺序的,先返回c,最后是s。
2024-04-29 15:18:02 765
原创 【Linux驱动】内核地址和物理地址
直接操作寄存器点亮LED和通过驱动程序点亮LED最本质的区别就是有无使用操作系统。有操作系统的存在则大大降低了应用软件与硬件平台的耦合度,它充当了我们硬件与应用软件之间的纽带, 使得应用软件只需要调用驱动程序接口API就可以让硬件去完成要求的开发,而应用软件则不需要关心硬件到底是如何工作的。这将大大提高我们应用程序的可移植性和开发效率。
2024-04-29 10:25:53 725
原创 【Linux驱动】Linux用户层和内核层
Linux内核中将字符设备抽象成一个具体的数据结构(struct cdev),我们可以理解为字符设备对象, cdev记录了字符设备的相关信息(设备号、内核对象),字符设备的打开、读写、关闭等操作接口(file_operations), 在我们想要添加一个字符设备时,就是将这个对象注册到内核中,通过创建一个文件(设备节点)绑定对象的cdev, 当我们对这个文件进行读写操作时,就可以通过虚拟文件系统,在内核中找到这个对象及其操作接口,从而控制设备。这是通过设备号实现的,包括主设备号和次设备号。
2024-04-28 16:56:49 634
原创 【Linux驱动】Linux杂项设备驱动
杂项设备是字符设备的一种,杂项设备可以自动生成设备节点。Linux内核中将字符设备抽象成一个具体的数据结构(struct cdev),我们可以理解为字符设备对象, cdev记录了字符设备的相关信息(设备号、内核对象),字符设备的打开、读写、关闭等操作接口(file_operations), 在我们想要添加一个字符设备时,就是将这个对象注册到内核中,通过创建一个文件(设备节点)绑定对象的cdev, 当我们对这个文件进行读写操作时,就可以通过虚拟文件系统,在内核中找到这个对象及其操作接口,从而控制设备。
2024-04-28 14:42:24 970
原创 【Linux驱动】 Linux内核模块
在Linux系统中,设备驱动会以内核模块的形式出现,学习Linux内核模块编程是驱动开发的先决条件。第一次接触Linux内核模块,我们将围绕着“Linux内核模块是什么”,“Linux内核模块的工作原理”以及 “我们该怎么使用Linux内核模块”这样的思路一起走进Linux内核世界。内核模块的概念:内核模块是什么东西?为什么引入内核模块这一机制?内核模块的原理:内核模块在内核中的加载、卸载过程,深入剖析内核模块如何导出符号。
2024-04-26 16:16:24 1210
原创 【Linux驱动】Linux输入子系统
输入设备总类繁杂,包括按键,键盘,触摸屏,鼠标,摇杆等等,它们本身都是字符设备,不过内核为了能将这些设备的共性抽象出来,简化驱动的开发,建立了一个 Input 子系统。用户只需要根据内核提供的 input 子系统下提供的 API 函数接口,完成设备的注册即可。Input 子系统就是管理输入的子系统,和 pinctrl 和 gpio 子系统一样,都是 Linux 内核针对某一类设备而创建的框架。
2024-04-26 10:23:27 989
原创 【Linux驱动】Linux平台驱动示例
在之前的字符设备程序中驱动程序,我们只要调用open()函数打开了相应的设备文件,就可以使用read()/write()函数, 通过file_operations这个文件操作接口来进行硬件的控制。这种驱动开发方式简单直观,但是从软件设计的角度看,却是一种十分糟糕的方式。它有一个严重的问题,就是设备信息和驱动代码杂糅在一起,在我们驱动程序中各种硬件寄存器地址随处可见。本质上,这种驱动开发方式与单片机的驱动开发并没有太大的区别,一旦硬件信息发生变化甚至设备已经不在了,就必须要修改驱动源码。
2024-04-24 15:47:59 334
原创 【Linux驱动】平台设备驱动
在之前的字符设备程序中驱动程序,我们只要调用open()函数打开了相应的设备文件,就可以使用read()/write()函数, 通过file_operations这个文件操作接口来进行硬件的控制。这种驱动开发方式简单直观,但是从软件设计的角度看,却是一种十分糟糕的方式。它有一个严重的问题,就是设备信息和驱动代码杂糅在一起,在我们驱动程序中各种硬件寄存器地址随处可见。本质上,这种驱动开发方式与单片机的驱动开发并没有太大的区别,一旦硬件信息发生变化甚至设备已经不在了,就必须要修改驱动源码。
2024-04-24 09:38:04 632
原创 【Linux驱动】Linux设备模型示例
设备(device):挂载在某个总线的物理设备;驱动(driver):与特定设备相关的软件,负责初始化该设备以及提供一些操作该设备的操作方式;总线(bus):负责管理挂载对应总线的设备以及驱动;类(class):对于具有相同功能的设备,归结到一种类别,进行分类管理;我们知道在Linux中一切皆“文件”,在根文件系统中有个/sys文件目录,里面记录各个设备之间的关系。下面介绍/sys下几个较为重要目录的作用。/sys/bus目录下的每个子目录都是注册好了的总线类型。
2024-04-23 15:45:38 944
原创 【Linux驱动】Linux设备模型
实现入口函数xxx_init()和卸载函数xxx_exit()申请设备号 register_chrdev_region()初始化字符设备,cdev_init函数、cdev_add函数硬件初始化,如时钟寄存器配置使能,GPIO设置为输入输出模式等。构建file_operation结构体内容,实现硬件各个相关的操作在终端上使用mknod根据设备号来进行创建设备文件(节点) (也可以在驱动使用class_create创建设备类、在类的下面device_create创建设备节点)
2024-04-23 11:20:56 847
原创 【大学资讯】中国高校最新排名公布:上海8校位列主榜百强,“复交”进入前五,这两所大学为单科“赛道”排头兵→
2024主榜的上榜高校共有594所,清华大学、北京大学、浙江大学连续10年蝉联全国三甲,上海交通大学、复旦大学也位列全国前五。10所非“双一流”高校凭借强劲的综合实力也跻身百强,其中包括浙江工业大学(64名)、深圳大学(72名)、江苏大学(80名)、扬州大学(82名)、福建师范大学(87名)。“双一流”高校在排名中占绝对优势地位,百强高校中有90所为“双一流”高校,其中今年首次进入百强的“双一流”高校是南京林业大学(93名)和贵州大学(95名)。百强中90%为“双一流”
2024-04-19 10:15:40 235
原创 【RK3399】交叉编译器下载和安装
既然我们想向开发板处理器中烧录程序,交叉编译工具是必不可少的。选择交叉编译工具这一步需要慎重,我们首先要知道我们自己使用的开发板采用的ARM架构是哪一个?ARM目前总共发布了8种架构:ARMv1、ARMv2、ARMv3、ARMv4、ARMv5、ARMv6、ARMv7、ARMv8。确认了ARM架构之后,选择支持该架构的交叉编译环境。可以参考GNU Arm Embedded Toolchain官网中的文档和说明来确定march支持的版本。
2024-04-17 10:53:49 536
原创 【RK3399】RK3399启动引导流程分析
主控芯片是,big.LITTLE大小核架构,双Cortex-A72大核(up to 2.0GHz) + 四Cortex-A53小核结构(up to 1.5GHz);Cortex-A72处理器是Armv8-A架构下的一款高性能、低功耗的处理器。主要特性HDR10/HLGUSB Type-C详细参数一般来说,SoC厂家都会做一个ROM在SoC的内部,这个ROM很小,里面固化了上电启动的代码(一经固化,永不能改,是芯片做的时候,做进去的);
2024-04-16 16:03:23 774
原创 【ARM】ARM架构CPU和编译器汇总
softfp : armel架构(对应的编译器为gcc-arm-linux-gnueabi)采用的默认值,用fpu计算,但是传参数用普通寄存器传,这样中断的时候,只需要保存普通寄存器,中断负荷小,但是参数需要转换成浮点的再计算。hard : armhf架构(对应的编译器为gcc-arm-linux-gnueabihf)采用的默认值,用fpu计算,传参数也用fpu中的浮点寄存器传,省去了转换, 性能最好,但是中断负荷高。ARM32、小端、Linux工程: arm-linux-gnueabihf -
2024-04-16 11:51:21 1028
原创 【RK3399】MobaXterm串口连接开发板
Win10系统一般会默认安装,如果默认没有安装就安装对应的驱动即可。2.2 选择对应的串口设备,然后点击高级串口设置。2.4 书签设置RK3399,方便记忆。2.3 波特率设置为115200。
2024-04-15 17:40:17 363
原创 【STM32】STM32CubeMX生成工程文件详解
STM32CubeMX是STM32Cube工具家族中的一员,从MCU/MPU选型,引脚配置,系统时钟以及外设时钟设置,到外设参数配置,中间件参数配置,它给STM32开发者们提供了一种简单,方便,并且直观的方式来完成这些工作。所有的配置完成后,它还可以根据所选的IDE生成对应的工程和初始化C代码。除此以外,STM32CubeMX还提供了功耗计算工具,可作为产品设计中功耗评估的参考。针对 STM32F103xE 系列微控制器的启动文件。它包含了微控制器启动时执行的低级初始化代码,比如设置向量表和初始化数据。
2024-04-15 17:04:23 597
原创 【STM32】STM32CubeMX创建第一个工程
STM32CubeMX是STM32Cube工具家族中的一员,从MCU/MPU选型,引脚配置,系统时钟以及外设时钟设置,到外设参数配置,中间件参数配置,它给STM32开发者们提供了一种简单,方便,并且直观的方式来完成这些工作。所有的配置完成后,它还可以根据所选的IDE生成对应的工程和初始化C代码。除此以外,STM32CubeMX还提供了功耗计算工具,可作为产品设计中功耗评估的参考。
2024-03-19 16:14:50 1174
原创 【STM32】STM32CubeMX安装教程详解
STM32CubeMX是STM32Cube工具家族中的一员,从MCU/MPU选型,引脚配置,系统时钟以及外设时钟设置,到外设参数配置,中间件参数配置,它给STM32开发者们提供了一种简单,方便,并且直观的方式来完成这些工作。所有的配置完成后,它还可以根据所选的IDE生成对应的工程和初始化C代码。除此以外,STM32CubeMX还提供了功耗计算工具,可作为产品设计中功耗评估的参考。
2024-03-19 11:21:53 1634
原创 【STM32】江科大STM32学习笔记汇总(50)
STM32是一系列由ST Microelectronics(意法半导体公司)推出的微控制器(MCU)。这些微控制器基于ARM Cortex-M架构,并且提供各种不同的封装和引脚配置。STM32系列中一些受欢迎的微控制器包括STM32F103,STM32F407和STM32F429。 STM32微控制器以其低功耗,高性能和广泛的功能而闻名。它们通常用于物联网设备,可穿戴技术和其他需要低功耗和高性能的应用。 总体而言,STM32微控制器是许多开发人员的首选,因为它们的多功能性,可靠性和广泛的功能。
2024-03-01 16:44:47 992 4
原创 【内核驱动】Linux驱动博客汇总
【内核驱动】Linux概述【内核驱动】内核编译【内核驱动】内核中添加驱动模块【内核驱动】编译和加载内核驱动模块【内核驱动】设备树编译和加载【内核驱动】第一个内核模块【内核驱动】内核模块命令【内核驱动】内核模块传参与符号共享【Linux驱动】设备树概述【Linux驱动】设备树(上)【Linux驱动】设备树(下)【RK3399】RK3399开发板概述【RK3399】I3399烧写Android系统详解【RK3399】I3399烧写Linux Qt系统详解【RK3399】I3399烧写Ubuntu系统详解【RK3
2023-12-28 19:33:31 673 1
原创 【Qt】Ubuntu22.04安装Qt5的时候No marker found, stopped after 1.00 MB.
Ubuntu2204安装Qt5.12的时候,出现一下错误。Ubuntu版本的Qt安装包不完整,导致安装失败。重新下载Qt安装包即可。
2023-12-12 17:37:14 574
原创 【面试题】常见面试题汇总(补充)
为了最大限度地减少延迟,可以采取一些措施,例如优化网络连接、选择高性能的服务器、减少数据传输量等。MQTT是一种轻量级的、可靠的消息传输协议,一般情况下,MQTT消息的推送延迟应该是非常小的,甚至可以达到毫秒级的延迟。然而,实际延迟时间可能会受到多种因素的影响,例如网络质量、服务器负载、数据大小等。因此,在选择MQTT代理时,应该考虑其性能和配置,以确保最佳的消息传输性能。总之,数据通过MQTT从网关上传到服务器的延迟时间可能会因多种因素而异,无法给出一个确定的答案。
2023-12-06 12:13:45 358 3
原创 【Ubuntu】Windows访问Samba出现不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接
当使用Windows访问Samba的时候,出现无法访问,如下图所示。这前曾与主机有过连接,连接断开后操作系统未将连接状态清除。执行一下命令,在cmd窗口中。
2023-12-06 12:02:29 425
原创 【Ubuntu】Ubuntu22.04没有网络图标解决办法
在使用Ubuntu22.04系统时,在一次重启后桌面右上角并没有有线网络图标,并且打开浏览器无法访问百度。虚拟机网络连接方式是桥接模式,电脑主机也是有网络的。删除NetworkManager缓存文件,重启网络后问题就解决了。
2023-11-28 16:55:46 960 2
原创 【Linux驱动】设备树(下)
Linux3.x以后的版本才引入了设备树,设备树用于描述一个硬件平台的板级细节。在早些的linux内核,这些“硬件平台的板级细节”保存在linux内核目录“/arch”, 以ARM平台为例“硬件平台的板级细节”保存在“/arch/arm/plat-xxx”和“/arch/arm/mach-xxx”目录下。随着处理器数量的增多用于描述“硬件平台板级细节”的文件越来越多导致Linux内核非常臃肿, Linux之父发现这个问题之后决定使用设备树解决这个问题。
2023-11-16 11:14:02 221
原创 【Linux驱动】设备树(上)
Linux3.x以后的版本才引入了设备树,设备树用于描述一个硬件平台的板级细节。在早些的linux内核,这些“硬件平台的板级细节”保存在linux内核目录“/arch”, 以ARM平台为例“硬件平台的板级细节”保存在“/arch/arm/plat-xxx”和“/arch/arm/mach-xxx”目录下。随着处理器数量的增多用于描述“硬件平台板级细节”的文件越来越多导致Linux内核非常臃肿, Linux之父发现这个问题之后决定使用设备树解决这个问题。
2023-11-16 09:56:21 272
原创 【Linux驱动】设备树概述
设备树的作用就是描述一个硬件平台的硬件资源。这个“设备树”可以被bootloader(uboot)传递到内核, 内核可以从设备树中获取硬件信息。
2023-11-15 17:19:55 205
原创 【物联网】mosquitto服务端Error Address already in use
错误问题描述:Error: Address already in use。由于后台已经启动了mosquit+进程 占用了端口,停止该服务即可。停止mosquitto服务即可。
2023-11-08 16:18:55 315
原创 【物联网】Ubuntu2204版本不显示USB串口设备解决办法
虚拟机Ubuntu中usb串口ttyUSB不现身,则要卸载brltty,在终端使用如下命令卸载brltty。在dev设备下不显示串口。由于与brltty冲突。
2023-11-08 15:48:59 917
原创 【RK3399】XShell串口连接开发板
Win10系统一般会默认安装,如果默认没有安装就安装对应的驱动即可。如果能够看到log信息,表示连接OK。
2023-11-06 10:23:36 399
原创 【物联网】阿里云云服务器ECS免费试用流程
云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。
2023-11-01 19:52:37 430 3
10device-create.rar
2024-04-30
9class-create.rar
2024-04-30
8cdev.rar程序示例
2024-04-29
7alloc-chrdev-region.rar
2024-04-29
6register-chrdev-region.rar
2024-04-29
STM32入门教程资料.rar
2024-03-01
busybox-1.36.1.tar.bz2
2023-08-20
qt-opensource-linux-x64-5.12.12.zip
2023-07-13
license-plate-v3.rar
2023-07-12
license-plate-v1.rar
2023-07-12
qt-opensource-linux-x64-5.12.12.run
2023-07-12
curl-8.1.2.tar.gz
2023-07-12
Postman for macOS (x64).zip
2023-07-09
Postman-win64-Setup.rar
2023-07-09
python-win32-quickstart5.zip
2023-07-06
nwt-setup-3.4.3055.rar
2023-06-25
TencentMeeting-0300000000-3.17.4.447.publish.officialwebsite.rar
2023-06-25
RT-Thread Studio-v2.2.6-setup-x86-64-202305191040
2023-06-19
mosquitto-2.0.15.rar
2023-06-11
cJSON-master.rar
2023-06-11
openssl-1.1.1d.rar
2023-06-10
mqttfx-5.3.0-windows-x64.rar
2023-06-04
mqttfx-1.7.1-windows-x64
2023-06-04
基于C示例代码的快速体验代码
2023-06-01
PS10SetupV10.34.8768.rar
2022-09-15
PL2303_Prolific_GPS_1013_20090319.zip
2022-07-08
FSCapture_Ver.9.4_Chs_Final
2022-04-02
RDB通用包处理工具v3.9.z
2022-01-05
Rdb打包解包工具4.0精简版 .zip
2022-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人