自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tracy Mcgrady的专栏

冰山一角。

  • 博客(12)
  • 资源 (16)
  • 收藏
  • 关注

原创 Linux-0.11 加载操作系统

x86系列CPU可以在16位实模式和32位保护模式下运行,实模式的特点是地址总线只有20位,也就是只有1MB的寻址空间,为了兼容老的CPU,Intel x86系列CPU包括最新的CPU在上电时都运行在16位的实模式下,同时在硬件上强行将CS置成0xF000,IP置成0xFFF0,那么CS:IP就指向0xFFFF0这个地址,也就是上电瞬间代码从该处开始执行,而BIOS恰恰就存储在这个地方,可以想象一

2014-06-30 08:44:36 1992 1

原创 Linux内核当中的互斥锁

Linux可以使用互斥信号量来表示互斥锁,那就是通过宏DECLARE_MUTEX来定义一个互斥信号量,因为DECLARE_MUTEX这个宏,Marcin Slusarz在08年提交的了一个patch,邮件地址为:https://lkml.org/lkml/2008/10/26/74,Marcin Slusarz认为DECLARE_MUTEX宏会误导开发者,所以建议将DECLARE_MUTEX修改成

2014-06-26 12:00:26 12480

原创 并发与竞态

多个执行单元同时、并行的被执行称为并发,而并发对共享资源(临界区)的访问很容易引起竞态,避免竞态的方法主要有两种,信号量和自旋锁。1. 信号量信号量,使用信号量需要包含结构体,信号量结构定义如下:struct semaphore {spinlock_t lock;unsigned int count;struct list_headwait_list;}

2014-06-26 01:30:31 1162

原创 Linux内核中的container_of宏

container_of宏用于根据已知结构体某个成员的地址得到整个结构体变量的地址,宏定义如下:

2014-06-24 18:22:34 806

原创 Linux内核中的链表

要使用内核链表,需要包含头文件,链表结构定义如下:

2014-06-24 16:25:11 1175

原创 Linux内核中的时间处理

在Linux内核中,高度依赖于时间信息(不管这个时间是精确的或非精确的),比如硬件驱动中的延时、延后访问等等。在内核中通过定时器来精确的度量时间,那么这个定时的时间间隔取决于HZ这个值,它是与体系结构相关的一个常数,在x86平台下,这个值默认为1000,HZ这个时它表示的是定时器中断的频率,也就是说HZ为1000,即1秒钟要发生1000次中断,也就说是定时器定时的时间间隔为1毫秒,HZ值设的越大,

2014-06-20 17:38:34 1943

原创 链表c代码

#include #include struct node { int data; struct node *next;};int datas[] = {1, 2, 4, 8, 16, 32, 64, 128};void list_head_init(struct node *head){ head->data = 0; head->next = NULL;}int

2014-06-18 23:40:43 2861

原创 关于函数按值传递

先看一个例子:#include #include #include void get_memory(char *p){ p = (char *)malloc(16);}int main(void){ char *p = NULL; get_memory(p); printf("%p\n", p); return 0;}p仍然为NULL,why?因为c中函数

2014-06-18 17:54:23 1009

原创 关于链表中头指针和头结点的理解

线性表使用顺序(数组)存储时有个弊端,那就是在插入和删除时需要大量的移动数据,这显示是非常消耗时间的,所以可以采用链式存储,即有一个指针域(单链表),来记录下个结点的存储位置(地址),这样在插入和删除结点时只需要修改指针域即可,从而大量减少移动数据所消耗的时间。来看链表的定义:

2014-06-18 15:33:24 55827 12

原创 c 语言函数指针用法

在c语言中,函数同样有个地址,所以t可以定义一个指针

2014-06-08 22:44:41 1050

原创 uinput模拟鼠标

#include #include #include #include #include #include #include #include #include void mouse_move(int fd, int dx, int dy){ struct input_event ev; memset(&ev, 0, sizeof(struct input_event

2014-06-04 00:28:39 2507 3

原创 atoi函数

#include #include #if 0/* atoi: convert s to integer */int atoi(char s[]){ int i, n; n = 0; for (i = 0; s[i] >= '0' && s[i] <= '9'; ++i) n = 10 * n + (s[

2014-06-03 22:43:42 948

ubox gps协议

本文档是ubox gps协议的详细介绍,在于对nmea语句的了解。

2016-01-18

J-Flash s3c2440的配置文件

用于J-Link J-Flash的2440配置文件,可用于mini2440 micro2440等开发板。

2014-07-05

led.tar.gz

sdcc使用Makefile的led工程实例

2014-01-13

sdcc-3.3.0-i386-unknown-linux2.5.tar.bz2

sdccc Linux x86二进制包。

2014-01-02

u-boot nor flash驱动

u-boot的完整nor flash驱动,nor flash型号为sst39vf1601。

2012-06-01

64-ia-32-architectures-software-developer

Intel处理器软件开发参考手册,对于理解Intel体系架构,以及汇编程序编程都有帮助

2011-12-02

Linux汇编教程

Linux下AT&T语法汇编教程,讲AT&T语法汇编比较少,讲的好的就更少了

2011-11-29

AT&T语法汇编教程

Linux下AT&T语法汇编程序教程,将AT&T语法书比较少,好的书就更少了

2011-11-28

深入理解计算机系统

以程序员角度理解计算机系统知识,适用于那些想要写出更快、更可靠程序的程序员。

2011-11-28

QT编程艺术

QT编程艺术,个人觉得比较好的QT编程书籍

2011-11-20

空空如也

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

TA关注的人

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