- 博客(57)
- 收藏
- 关注
原创 8 栈:如何实现游览器的前进后退
1、什么是栈a、后进者先出,先进者后出。b、从栈的操作特性来看,是一种操作受限的线性表,只允许在端插入和删除数据。2、为什么需要栈?a、栈是一种操作受限的数据结构,其操作特性用数组和链表均可实现。b、但任何数据结构都是对特定应用场景的抽象,数组和链表虽然使用起来更加灵活,但却暴露了几乎所有的操作,难免会引发错误操作风险。c、当某个数据集合只涉及在某端插入和删除数据,且满足后进者先出,先...
2019-10-18 15:24:57
163
原创 7链表:如何轻松写出正确的链表代码
1、理解指针或引用的含义1)含义:将某个变量(对象)赋值给指针(引用),实际上就是将这个变量(对象)的地址赋值给指针(引用)。2)示例:p—>next = q; 表示p节点的后继指针存储了q节点的内存地址。p—>next = p—>next—>next; 表示p节点的后继指针存储了p节点的下下个节点的内存地址。2、警惕指针丢失和内存泄漏(单链表)1)插入节点在...
2019-10-18 15:04:02
249
原创 6 链表:如何实现LRU缓存淘汰算法
1、什么是链表1)和数组一样,链表也是一种线性表。2)从内存结构看,链表的内存结构是不连续的内存空间,是将一组零散的内存块串联起来,从而进行数据存储的数据结构。3)链表中的每一个内存块被称为节点Node。节点除了存储数据外,还需记录链上下一个节点的地址,即后继指针next。2、为什么使用链表?链表特点1)插入、删除数据效率高O(1)只需更改指针指向即可,随机访问效率低O(n)级别,需要从...
2019-10-18 14:36:36
109
原创 05 数组:为什么很多编程语言中数组从0开始编号
数组看起来简单基础,但是很多人没有理解这个数据结构的精髓。1、数组如何实现随机访问①数组是一种线性数据结构,用连续的存储空间存储相同类型数据线性表:数组、链表、队列、栈 非线性表:树、图连续的内存空间、相同的数据,所以数组可以随机访问,但对数组进行删除插入,为了保证数组的连续性,就要做大量的数据搬移操作。a)数组如何实现下标随机访问:引入数组在内存中的分配图,得出寻...
2019-10-18 13:48:27
136
原创 buttons_input
/* 参考drivers\input\keyboard\gpio_keys.c */#include <linux/module.h>#include <linux/version.h>#include <linux/init.h>#include <linux/fs.h>#include <linux/interrupt.h>...
2019-07-25 15:44:45
98
原创 button.c
#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#include <asm/u...
2019-07-25 15:42:57
144
原创 sixth_drv
#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#include <asm/u...
2019-07-25 15:38:51
93
原创 fifth_drv
#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#include <asm/u...
2019-07-25 15:36:16
117
原创 force_drv
#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#include <asm/u...
2019-07-25 15:33:03
103
原创 third_drv
#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#include <asm/u...
2019-07-25 15:30:51
159
原创 second_drv
#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <asm/uaccess.h>#include <asm...
2019-07-25 15:28:37
212
原创 first_drv
#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <asm/uaccess.h>#include <asm...
2019-07-25 15:27:05
104
原创 写一个虚拟摄像头驱动4
/* 仿照vivi.c */#include <linux/module.h>#include <linux/delay.h>#include <linux/errno.h>#include <linux/fs.h>#include <linux/kernel.h>#include <linux/slab.h>#...
2019-07-06 13:51:50
225
1
原创 写一个虚拟摄像头驱动3
/* 仿照vivi.c */#include <linux/module.h>#include <linux/delay.h>#include <linux/errno.h>#include <linux/fs.h>#include <linux/kernel.h>#include <linux/slab.h>#...
2019-07-06 13:48:26
868
1
原创 写一个虚拟摄像头驱动2
/* 仿照vivi.c */#include <linux/module.h>#include <linux/delay.h>#include <linux/errno.h>#include <linux/fs.h>#include <linux/kernel.h>#include <linux/slab.h>#...
2019-07-05 19:03:15
199
原创 写一个虚拟摄像头驱动1
/* 仿照vivi.c */#include <linux/module.h>#include <linux/delay.h>#include <linux/errno.h>#include <linux/fs.h>#include <linux/kernel.h>#include <linux/slab.h>#...
2019-07-05 17:14:12
682
原创 块设备驱动(2)
ramblock.c/* 参考: * drivers\block\xd.c * drivers\block\z2ram.c */#include <linux/module.h>#include <linux/errno.h>#include <linux/interrupt.h>#include <linux/mm.h>#incl...
2019-06-28 08:33:02
78
原创 块设备驱动(1)
ramblock.c/* 参考: * drivers\block\xd.c * drivers\block\z2ram.c */#include <linux/module.h>#include <linux/errno.h>#include <linux/interrupt.h>#include <linux...
2019-06-28 08:30:53
92
原创 usb驱动(4)
usbmouse_as_key.c/* * drivers\hid\usbhid\usbmouse.c */#include <linux/kernel.h>#include <linux/slab.h>#include <linux/module.h>#include <linux/init.h>#include <linux...
2019-06-28 08:28:01
223
原创 usb驱动(3)
usbmouse_as_key.c/* * drivers\hid\usbhid\usbmouse.c */#include <linux/kernel.h>#include <linux/slab.h>#include <linux/module.h>#include <linux/init.h>#include...
2019-06-28 08:25:33
83
原创 usb驱动(2)
usbouse_as_key.c/* * drivers\hid\usbhid\usbmouse.c */#include <linux/kernel.h>#include <linux/slab.h>#include <linux/module.h>#include <linux/init.h>#include ...
2019-06-28 08:23:58
76
原创 usb驱动(1)
usbmouse_as_key.c/* * drivers\hid\usbhid\usbmouse.c */#include <linux/kernel.h>#include <linux/slab.h>#include <linux/module.h>#include <linux/init.h>#include...
2019-06-28 08:22:35
70
原创 触摸屏驱动(8)
s3c_ts.c#include <linux/errno.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/input.h>#include <linux/init.h>#incl...
2019-06-28 08:19:14
59
原创 触摸屏驱动(7)
s3c_ts.c#include <linux/errno.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/input.h>#include <linux/init.h>#incl...
2019-06-28 08:16:48
71
原创 触摸屏驱动(6)
s3c_ts.c#include <linux/errno.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/input.h>#include <linux/init.h>#incl...
2019-06-28 08:15:22
168
原创 触摸屏驱动(5)
s3c_ts.c#include <linux/errno.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/input.h>#include <linux/init.h>#incl...
2019-06-28 08:14:22
330
原创 触摸屏驱动(4)
s3c_ts.c#include <linux/errno.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/input.h>#include <linux/init.h>#incl...
2019-06-28 08:13:18
103
原创 触摸屏驱动(3)
s3c_ts.c#include <linux/errno.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/input.h>#include <linux/init.h>#incl...
2019-06-27 13:31:58
87
原创 触摸屏驱动(2)
s3c_ts.c#include <linux/errno.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/input.h>#include <linux/init.h>#incl...
2019-06-27 13:30:20
187
原创 触摸屏驱动
s3c_ts.c#include <linux/errno.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/slab.h>#include <linux/input.h>#include <linux/init.h>#incl...
2019-06-27 13:28:50
359
原创 LCD驱动(4)
lcd.c#include <linux/module.h>#include <linux/kernel.h>#include <linux/errno.h>#include <linux/string.h>#include <linux/mm.h>#include <linux/slab.h>#include ...
2019-06-27 13:27:11
77
原创 LCDq驱动(3)
lcd.c#include <linux/module.h>#include <linux/kernel.h>#include <linux/errno.h>#include <linux/string.h>#include <linux/mm.h>#include <linux/slab.h>#include ...
2019-06-27 13:23:56
140
原创 LCD驱动(2)
lcd.c#include <linux/module.h>#include <linux/kernel.h>#include <linux/errno.h>#include <linux/string.h>#include <linux/mm.h>#include <linux/slab.h>#include ...
2019-06-27 13:21:15
259
原创 LCD驱动(1)
lcd.c#include <linux/module.h>#include <linux/kernel.h>#include <linux/errno.h>#include <linux/string.h>#include <linux/mm.h>#include <linux/slab.h>#include ...
2019-06-27 13:19:35
105
原创 总线设备驱动模型
led_drv.c/* 分配/设置/注册一个platform_driver */#include <linux/module.h>#include <linux/version.h>#include <linux/init.h>#include <linux/fs.h>#include <linux/interrupt.h>...
2019-06-27 10:57:52
59
原创 输入子系统驱动
buttons.c/* 参考drivers\input\keyboard\gpio_keys.c */#include <linux/module.h>#include <linux/version.h>#include <linux/init.h>#include <linux/fs.h>#include <linux/inter...
2019-06-27 10:52:30
135
原创 使用定时器实现按键防抖动
button.c#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#include ...
2019-06-27 10:49:08
486
原创 自己写bootloader
不使用icatch:start.S#define S3C2440_MPLL_200MHZ ((0x5c<<12)|(0x01<<4)|(0x02))#define MEM_CTL_BASE 0x48000000.text.global _start_start:/* 1. 关看门狗 */ ldr r0, =0x53000000 mov r1...
2019-06-20 14:16:48
171
原创 uevent
class_device_create class_device_register class_device_add kobject_uevent(&class_dev->kobj, KOBJ_ADD); kobject_uevent_env(kobj, action, NULL); // action_string = "add"; acti...
2019-06-11 10:00:01
278
原创 DMA(3)
#include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/delay.h>#include <linux/irq.h>#include <asm/u...
2019-06-11 09:56:56
238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人