- 博客(14)
- 资源 (28)
- 收藏
- 关注
原创 子网掩码和网关的关系
子网掩码有数百种,这里只介绍最常用的两种子网掩码,它们分别是“255.255.255.0”和“255.255.0.0”。 1.子网掩码是“255.255.255.0”的网络:最后面一个数字可以在0~255范围内任意变化,因此可以提供256个IP地址。但是实际可用的IP地址数量是256-2,即254个,因为主机号不能全是“0”或全是“1”。 2.子网掩码是“255.255.0
2012-02-25 16:00:40 23275 1
原创 linux 内核编译文档
一、makemenuconfig说明:make menuconfig(或者其他的配置命令),命令执行完后产生文件.config(隐含的),其中保存着配置信息。下一次再做make menuconfig将产生新的.config文件,原.config被改名为.config.old。 二、make oldconfig优点:迅速; 如果新内核选项没有出现在您的配置文件中,它会停下来并等候
2012-02-21 09:30:38 1528
原创 高级字符设备驱动--中断下半部机制之workqueue(二)
工作队列workqueue工作队列(work queue)是另外一种将中断的部分工作推后的一种方式,它可以实现一些tasklet不能实现的工作,比如工作队列机制可以睡眠。这种差异的本质原因是,在工作队列机制中,将推后的工作交给一个称之为工作者线程(worker thread)的内核线程去完成(单核下一般会交给默认的线程events/0)。因此,在该机制中,当内核在执行中断的剩余工作时就处在
2012-02-20 22:03:50 957
原创 libxml2 node type预定义常量
预定义常量以下常量由本扩展模块定义,因此只有在本扩展模块被编译到 PHP 中,或者在运行时被动态加载后才有效。XML constantsConstantValueDescriptionXML_ELEMENT_NODE (integer)1Node is an elementXML_ATT
2012-02-20 22:03:39 1443
原创 高级字符设备驱动--中断下半部机制之tasklet(一)
综述 Linux把中断处理例程分两部分:上半分:实际响应中断的例程。下半分:被顶部分调用,通过开中断的方式进行。两种机制实现:Tasklet工作队列work queue上半部的功能是"登记中断",当一个中断发生时,它进行相应地硬件读写后就把中断例程的下半部挂到该设备的下半部执行队列中去。因此,上半部执行的速度就会很快,可以服务更多的中断请求。但是,仅有"
2012-02-20 21:34:00 946
原创 c语言中的的内联(inline)函数
c语言中的的内联(inline)函数发表于 2011 年 01 月 26 日 由 adminc/c++中的inline,使用在函数声明处,表示程序员请求编译器在此函数的被调用处将此函数实现插入,而不是像普通函数那样生成调用代码(申请是否有效取决于编译器)。一般地说,这样作的优点是省掉了调用函数的开销;缺点则是可能会增加代所生成目标代码的尺寸(二班的除外,二班情况下,inli
2012-02-18 18:43:22 30742 1
原创 强制内联和强制不内联
1.强制不内联一个函数,如果代码量比较少的话,用 -O3优化开关的话,gcc有可能将这个函数强制内联(inline)即使,你在函数前没有写inline助记符。如果是一个手写汇编的函数,那样的话很有可能破坏参数。gcc里有强制不内联的,用法如下void foo() __attribute__((noinline));但是有的gcc可能会忽略 noinline。那么你可以将你实
2012-02-18 18:42:05 20687
原创 GCC and C99 inline
C语言的inline转以前我用Docbook写的一篇关于C语言inline关键字使用的文章。唉,要是能用docbook直接写Blog就好了。用得越多发现Docbook这个东西真是越好用啊~~ 本文介绍了GCC和C99标准中inline使用上的不同之处。inline属性在使用的时候,要注意以下两点:inline关键字在GCC参考文档中仅有对其使用在函数定义(Definitio
2012-02-17 19:27:41 1203
原创 GCC 中的inline关键字
inline关键字是C99中新加的,使用的时候,要注意以下两点:1、inline关键字在GCC参考文档中仅有对其使用在函数定义(Definition)上的描述,而没有提到其是否能用于函数声明(Declare)。从inline的作用来看,其放置于函数声明中应当也是毫无作用的:inline只会影响函数在translation unit(可以简单理解为C源码文件)内的编译行为,只要超出了
2012-02-17 19:26:32 140
原创 inline函数定义放在头文件中的作用
两个文件:main.c中得代码如下#include #include "print_inline.h"int main(int argc, char *argv[]){ print_inline();system("PAUSE"); return 0;}print_inline.h文件中得代码:#include inline
2012-02-17 19:25:35 6796 2
原创 errno 列表
errno.h 写道#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */#define ESRCH 3 /* No such process */#define EINTR 4 /* Interrupted system call */#de
2012-02-15 19:16:53 3321
原创 Linux内存管理-高端内存
上一周一直在关注linux内存中3:1(3G:1G)的关系,并没有考虑到如果我的物理内存大于1G,那么内核空间1G的虚拟空间如何映射整个物理内存呢?以及内核是如何管理这大于1G的物理内存的。 下面是转载的文章,解释了这个疑问。 高端内存是指物理地址大于 896M 的内存。对于这样的内存,无法在“内核直接映射空间”进行映射。为什么? 因为“内核直
2012-02-02 08:39:02 993
原创 C99结构体指定初始化
在阅读GNU/Linux内核代码时,我们会遇到一种特殊的结构初始化方式。该方式是某些C教材(如谭二版、K&R二版)中没有介绍过的。这种方式称为指定初始化(designated initializer)。下面我们看一个例子,Linux-2.6.x/drivers/usb/storage/usb.c中有这样一个结构体初始化项目:static struct usb_driver usb_stor
2012-02-01 15:53:17 2907
sscom5.13串口调试工具
2023-03-27
sttoolset-STM32读写HEX工具
2023-03-27
CmBacktrace开源代码,亲测可用
2023-03-27
PT1000 分度表C语言代码
2020-12-29
STM32_OS.zip
2020-06-17
Quartus_13.0_WinXp_32bit破解器
2013-06-24
Linux-C-编程一站式学习
2012-09-03
python教程pdf合集
2012-03-18
C语言函数速查手册--标准库函数
2010-08-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人