- 博客(18)
- 收藏
- 关注
原创 底层驱动程序基础学习笔记
驱动程序是软件组件,它们充当操作系统和硬件设备之间的桥梁,使得应用程序能够通过操作系统与硬件交互。这些驱动程序是软件模块,负责控制和管理硬件设备,与操作系统内核交互,以使用户空间的应用程序能够通过操作系统访问和使用硬件设备。:这是专门为特定硬件设备编写的软件模块,负责处理设备的初始化、配置、数据传输和关闭等任务。通过这些组件和机制,Linux驱动层提供了一个灵活且高效的框架,支持广泛的硬件设备,使得Linux可以运行在多种平台上,从嵌入式设备到大型服务器。:驱动程序通常需要处理硬件中断,以响应设备事件。
2024-11-06 16:52:39
437
原创 数据结构剖析:栈,以及部分AI可能出现的访问冲突原因及解决办法
由于后续对节点的访问都付诸指针,所以下一节点与上一节点也会初始化为指针。原因:访问了已经无法读取的节点,访问方式包括但不限于。解决方法可以使用size变量代替访问内存。head->next(空)!注:此处的size用于追踪栈长度,也可。head->prev(空)=NULL;
2024-09-23 17:17:19
160
原创 linux驱动开发学习日志
驱动开发不仅仅是对C语言函数的扩展,更重要的是需要理解设备的工作原理和操作系统的I/O机制。驱动程序是操作系统和硬件设备之间的桥梁,通过I/O模型(如阻塞、非阻塞和异步I/O)、I/O层次结构(用户态、内核态)、中断处理、I/O调度等技术实现高效的数据传输和硬件控制。开发者需要深入理解这些原理,才能编写出高效、可靠的驱动程序。
2024-09-16 21:27:13
899
原创 基于linux中数据库的操作方法以及c语言对其的链接,操作示例,mysql的远程连接
本文主要介绍基于linux中数据库的操作方法以及c语言对其的链接,操作示例,mysql的远程连接
2024-08-08 16:27:17
350
2
原创 linux常见命令合集(持续更新)
如果两者相等,说明锁当前未被其他线程占用,CAS操作会将锁变量的值设置为表示锁已被占用的值,从而成功获取锁。如果CAS操作失败(即锁变量的当前值与期望值不相等),说明锁已被其他线程占用,此时线程通常会进入等待状态。CAS操作是一种典型的原子操作,它涉及三个操作数——内存位置(V)、期望的原值(A)和新值(B)。CAS操作会先比较内存位置V的值与期望的原值A,如果两者相等,则将内存位置V的值设置为新值B。操作系统 :信号量 正数 (p:获取资源,信号量减一,v:释放资源,信号量加一)(0,1二值;
2024-08-08 09:56:52
446
2
原创 c语言练习:两种循环链表部分功能及相关疑难解答(1):单向循环链表
本文介绍双向链表单向的生成,头插尾插等函数的实现,以及过程中的部分疑难解答
2024-08-03 20:41:43
280
1
原创 c语言学习日志:编码过程的深入剖析,及文本转换函数的实现
ps:ASCII码表示不了中文,早期驱动程序会将英文和数字,特殊字符转换为ASCII码值,将中文单独转换为unicode码值,但现在纵使是ASCII码支持的字符,驱动程序也有可能将其转换为unicode码值。注:不同于strlen,atoi函数并不以/0作为结尾标记,正因如此,自己实现时以strlen返回值作为循环次数便并不恰当。中断处理程序是操作系统或设备驱动程序中的一段代码,它专门用于处理来自特定硬件设备的中断请求。,CPU会根据中断优先级中断可能存在的正在运行的程序并保存环境,跳转执行相应的。
2024-08-03 11:53:25
256
1
原创 双向链表及相关功能实现(部分疑难解答)
当我们创建了一个链表,并在初始化时直接初始化该链表后,我们不能直接通过free()函数来释放整个链表,原因在于链表的的内存块在物理上独立(创建链表时直接创建而各个函数模块修改链表时传入指针原因在于:若是各个函数传入本身值的话实际上操作的是传入值的。2.双节点的情况也一定要注意,在头结点被删除的情况下尾节点也就不是完整意义上的尾节点了(注:末尾两行用来测试连续两个节点的访问情况(触发中断就刺激了)),只是通过指针链接,而free函数是被设计用来释放之前。,否则会出现越界销毁的问题。考虑只有一个节点的情况。
2024-08-02 16:42:14
298
1
原创 住户管理系统及其编写过程中遇到的问题及其解决方法
(注:其中%[^,]意为:以,为界扫描出的值赋值给目标)2.冗余循环导致的内存覆盖i < 49;printf("目前数据:\n%s,%s,%s,%s,%s\n",fclose(fp);此处,打印id时会打印失败,原因在于内层while循环已经因为feof的判断停止运行;然而外层循环还会执行!将直接导致内存覆盖!进一步导致最后一个房间id打印失败此处feof只会在读取失败时返回非零值。
2024-07-24 12:01:54
415
1
原创 C++学习日记
2.进入主函数时给对象分配空间,但没有构建完整对象;即对象的成员(类域中的value)(例如private中的value)所以在构造函数,拷贝构造,移动构造可以拿初始化列表初始化对象成员。1.构造函数执行完毕,即对象有了成员变量,这个对象才称得上完整。有空间不一定有对象(成员变量),有对象(成员变量)一定有空间。进入主函数时给对象分配空间,但没有构建对象(的成员)创建对象,初始化对象的属性,类型的转换。:意为创建对象时,对 对象成员进行赋值。
2024-07-19 19:53:53
254
原创 C语言总结:结构体,联合体,文件操作及课程管理系统项目中遇到的部分问题及解决方案
在C语言中,联合体(Union)是一种特殊的数据结构,它允许在相同的内存位置存储不同的数据类型。但是,在任何时候,只有联合体的一个成员是有效的,因为它们是共享同一块内存空间的。stdin是一个特殊的文件流,它通常与终端(terminal)或控制台(console)相关联,而不是与磁盘上的文件相关联。因此,尝试将stdin的读写位置重置到开始处是没有明确语义的。在 Unix 和类 Unix 系统(如 Linux 和 macOS)中,stdin。
2024-05-13 00:48:26
695
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人