Novelty_1
码龄5年
关注
提问 私信
  • 博客:30,257
    社区:1
    30,258
    总访问量
  • 52
    原创
  • 44,103
    排名
  • 42
    粉丝
  • 0
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2020-04-15
博客简介:

xinqi_1的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    449
    当月
    18
个人成就
  • 获得71次点赞
  • 内容获得9次评论
  • 获得157次收藏
  • 代码片获得355次分享
创作历程
  • 2篇
    2024年
  • 50篇
    2023年
成就勋章
兴趣领域 设置
  • 编程语言
    c++c语言
  • 开发工具
    vscode
  • 大数据
    sqlitejson
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

utlist 开源库使用

在使用 utlist 之前,你需要定义链表节点的结构体。通常,链表节点的结构体包含至少两个字段:数据字段和指向下一个节点的指针字段。为了与 utlist 的 API 兼容,你的节点结构体需要包含一个名为ll的类型的字段,尽管这个字段在链表操作中并不直接用作指针,但它是 utlist 内部机制的一部分。示例节点结构体定义:c复制代码int data;// 数据字段// 指向下一个节点的指针字段// utlist 需要的字段(尽管在链表操作中不直接使用)} Node;注意:实际上,
原创
发布博客 2024.11.06 ·
278 阅读 ·
5 点赞 ·
0 评论 ·
9 收藏

六个使用C语言函数指针的应用场景

/5、函数指针实现动态函数调用。//4、函数指针作为函数返回值。//3、函数指针作为函数参数。//6、函数指针实现函数重载。//2、函数指针数组。
原创
发布博客 2024.05.22 ·
325 阅读 ·
3 点赞 ·
1 评论 ·
5 收藏

QT结合Mupdf实现预览pdf

1. 下载并安装MuPDF库:首先,你需要从MuPDF的官方网站或代码托管网站上下载MuPDF库的源代码,并按照文档中的说明进行安装。4. 编写代码:在你的Qt项目中,编写代码来加载和显示PDF文件。你可以使用MuPDF库提供的API来加载PDF文件,并使用Qt的控件来显示PDF页面。3. 配置项目:在项目文件中添加MuPDF库的头文件和库文件路径,以便在项目中正确使用MuPDF库。2. 创建Qt项目:在Qt Creator中创建一个新的项目,选择适当的项目模板和设置。// 加载PDF文件。
原创
发布博客 2023.09.18 ·
963 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

嵌入式开发--SPI介绍和驱动开发

SPI,全称为Serial Peripheral Interface,是一种同步的串行通信协议。SPI协议最初由Motorola公司开发,用于串行通信带宽较低的应用领域,如单片机和外部器件之间的通信。SPI协议特点:1.基于同步通讯方式,由主机发起数据传输请求,外部设备从机响应。2.采用点对点、全双工、同步、串行的通信方式。3.使用4根信号线:SCLK(时钟线)、MOSI(主机发出从机接收线)、MISO(从机发出主机接收线)和SS(从机选通线)。4.通信速率高,最高可以达到几百Mbps。
原创
发布博客 2023.06.24 ·
793 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

Linux驱动开发--input子系统开发

设计了输入子系统事件处理层:接收来自核心层上报的事件,并选择对应的handler(事件处理器 struct input_handler)去处理。内核维护着多个事件处理器对象,每个input_handler对象专门处理一类事件,所有产生同类事件的设备驱动共用同一个handler。设备驱动层:主要实现获取硬件设备的数据信息(包括触摸屏被按下、按下位置、鼠标移动、键盘按下等等),并转换为核心层定义的规范事件后提交给核心层,该层每个设备对应一个struct input_dev对象,
原创
发布博客 2023.06.23 ·
654 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

Linux驱动开发--IIC总线开发

Inter-Integrated Circuit: 字面意思是用于“集成电路之间”的通信总线,简写:IIC(或者I2C)i2c传输的要点就是: 传输一个字节 后面必然紧跟一个"响应"信号----应答信号.这个响应信号可能来自主机,或者是从机,具体是谁,就要看传输方向。传输方向分两种情况(每种情况又有两种可能: A无应答和 B有应答):1.主机->从机,主机对从机发一个字节之后,主机要读取从机的响应信号(主机读SDA线)
原创
发布博客 2023.06.23 ·
922 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux驱动开发--平台总线id和设备树匹配

id匹配(可想象成八字匹配):一个驱动可以对应多个设备 ------优先级次低用到结构体数组,一般不指定大小,初始化时最后加{}表示数组结束设备中增加资源,驱动中访问资源。
原创
发布博客 2023.06.23 ·
812 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Linux驱动开发--平台总线

​ driver模块中,struct platform_driver成员driver的name成员必须指定,但与device模块中name可以不相同。2.2 id匹配(可想象成八字匹配):一个驱动可以对应多个设备 ------优先级次低。2.3 设备树匹配:内核启动时根据设备树自动产生的设备 ------ 优先级最高。2.1 名称匹配:一个驱动只对应一个设备 ----- 优先级最低。​ 带来的问题-------怎样将二者进行关联(匹配)?总线:匹配设备和驱动——婚介所:提供沟通机制,完成拉郎配。
原创
发布博客 2023.06.23 ·
671 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Linux开发驱动--设备模型

仅devfs,导致开发不方便以及一些功能难以支持:热插拔。
原创
发布博客 2023.06.23 ·
205 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux驱动开发--中断处理原理

一种硬件上的通知机制,用来通知CPU发生了某种需要立即处理的事件分为:任何一种中断产生,CPU都会暂停当前执行的程序,跳转到内存固定位置执行一段程序,该程序被称为总的中断服务程序,在该程序中区分中断源,然后进一步调用该中断源对应的处理函数。中断源对应的处理函数被称为分中断处理程序,一般每一个分中断处理程序对应一个外设产生的中断写驱动时,如果外设有中断,则需要编写一个函数(分中断处理程序)来处理这种中断。3.2 中断释放3.3 中断处理函数原型四、按键驱动按键原理图: exyno
原创
发布博客 2023.06.22 ·
1081 阅读 ·
1 点赞 ·
0 评论 ·
10 收藏

Linux驱动开发--设备树基础和LED驱动

减少垃圾代码减轻驱动开发工作量驱动代码和设备信息分离参考Open Fireware设计用来记录硬件平台中各种硬件设备的属性信息。
原创
发布博客 2023.06.22 ·
1263 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Linux驱动开发--内核定时器和内存管理

硬件有一个时钟装置,该装置每隔一定时间发出一个时钟中断(称为一次时钟嘀嗒-tick),对应的中断处理程序就将全局变量jiffies_64加1jiffies_64 是一个全局64位整型, jiffies全局变量为其低32位的全局变量,程序中一般用jiffiesHZ:可配置的宏,表示1秒钟产生的时钟中断次数,一般设为100或200。
原创
发布博客 2023.06.22 ·
415 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux驱动开发--IO模型并发控制

执行流:有开始有结束总体顺序执行的一段代码 又称上下文竞态:多任务并行执行时,如果在一个时刻同时操作同一个资源,会引起资源的错乱,这种错乱情形被称为竞态共享资源:可能会被多个任务同时使用的资源临界区:操作共享资源的代码段为了解决竞态,需要提供一种控制机制,来避免在同一时刻使用共享资源,这种机制被称为并发控制机制。
原创
发布博客 2023.06.22 ·
204 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux驱动开发--五种IO模型

1.阻塞: 不能操作就睡觉2.非阻塞:不能操作就返回错误3.多路复用:委托中介监控4.信号驱动:让内核如果能操作时发信号,在信号处理函数中操作5.异步IO:向内核注册操作请求,内核完成操作后发通知信号。
原创
发布博客 2023.06.22 ·
509 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Linux驱动开发--字符设备读写和ioctl、printk实现

x:char、int类型的简单变量名成功为返回0,失败非0。
原创
发布博客 2023.06.22 ·
975 阅读 ·
1 点赞 ·
1 评论 ·
5 收藏

Linux驱动开发--字符设备基础

分配成功后在/proc/devices 可以查看到申请到主设备号和对应的设备名,mknod时参数可以参考查到的此设备信息。应用层通过系统调用函数间接调用这些设备操作函数 ------- 用桩。应用程序打开一个设备文件时,通过设备号来查找定位内核中管理的设备。insmod调用的init函数主要作用 --------- 钉桩。rmmod调用的exitt函数主要作用 --------- 拔桩。释放后/proc/devices文件对应的记录消失。驱动实现设备操作函数 ----------- 做桩。
原创
发布博客 2023.06.22 ·
267 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux驱动开发--内核与用户空间

为了彻底解决一个应用程序出错不影响系统和其它app的运行,操作系统给每个app一个独立的假想的地址空间,这个假想的地址空间被称为虚拟地址空间(也叫逻辑地址),操作系统也占用其中固定的一部分,32位Linux的虚拟地址空间大小为4G,并将其划分两部分:0~3G 用户空间 :每个应用程序只能使用自己的这份虚拟地址空间3G~4G 内核空间:内核使用的虚拟地址空间,应用程序不能直接使用这份地址空间,但可以通过一些系统调用函数与其中的某些空间进行数据通信。
原创
发布博客 2023.06.21 ·
215 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Linux驱动开发--内核模块传参和依赖

字符串常量的内容用来描述对应参数的作用modinfo可查看这些参数的描述信息。
原创
发布博客 2023.06.21 ·
443 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Linux驱动开发--内核模块基础代码

Linux内核的插件机制——内核模块类似于浏览器、eclipse这些软件的插件开发,Linux提供了一种可以向正在运行的内核中插入新的代码段、在代码段不需要继续运行时也可以从内核中移除的机制,这个可以被插入、移除的代码段被称为内核模块。内核模块的本质:一段隶属于内核的“动态”代码,与其它内核代码是同一个运行实体,共用同一套运行资源,只是存在形式上是独立的。模块三要素:入口函数 出口函数 MODULE__LICENSE。
原创
发布博客 2023.06.21 ·
535 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Linux驱动开发--内核模块编译

make modules会在新功能源码的同级目录下生成相应的同名.ko文件(生成的ko文件只适用于开发板linux)即新功能源码与内核其它源码不一起编译,而是独立编译成内核的插件(被称为内核模块)文件.ko。make menuconfig 界面里将新功能对应的那项选择成<M>即新功能源码与内核其它代码一起编译进uImage文件内。b、新功能源码与Linux内核源码不在同一目录结构下时。a、新功能源码与Linux内核源码在同一目录结构下时。注意此命令执行前,开发板的内核源码已被编译。
原创
发布博客 2023.06.21 ·
475 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多