自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

转载 内核线程、轻量级进程、用户线程的区别和联系

这是一篇关于Linux内核的线程、轻量级进程和用户线程区别与联系的相当不错的文章,强烈建议阅读......内核线程内核线程只运行在内核态,不受用户态上下文的拖累。处理器竞争:可以在全系统范围内竞争处理器资源;使用资源:唯一使用的资源是内核栈和上下文切换时保持寄存器的空间调度:调度的开销可能和进程自身差不多昂贵同步效率:资源的同步和数据共享比整个进程的数据同步

2015-02-28 10:49:57 2095

转载 Linux 程序开发打印 Debug 信息的使用技巧

少废话,coding 最重要的是如何debug,debug 当然就少不了把程序信息输出,如何清晰明了地打印出程序信息,可以快速判断程序运行情况,定位程序出问题的地方。先来一段代码实战下再说: #include stdio.h>#include stdlib.h>#include errno.h>#ifndef __USE_DEBUG#define __USE_D

2014-12-26 15:34:47 506

转载 const 、static、extern的用法总结

最近看许多公司笔试都考这几方面的内容,于是乎就搜索了一下,把这几个知识点总结以下,以增强基础,以及应付未来的笔试+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------CONST---------------------------------------

2014-12-25 10:40:23 358

转载 c语言中static 用法和extern

c语言中static 用法static在c里面可以用来修饰变量,也可以用来修饰函数。先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。int a ;int main(){    int b ;     int c* = (int *)malloc(sizeof(int));}a是

2014-12-25 10:30:40 365

转载 linux中定时器timer的使用

linux kernel中timer的使用在kernel中如果想周期性的干些什么事情,或者某个特定时间干些什么事情,可以使用timer。例如像周期性地dump某段buffer的数据等等。先来看看使用方法。先定义一个struct timer_list的对象。eg: struct timer_list dump_t;这个对象相当于一个闹钟,其中包含了时间点,也就是什么时候激

2014-12-25 09:18:44 488

转载 schedule_timeout的相关介绍

schedule_timeout()进入延时唤醒状态. 如果在延迟过程中.在通常的驱动程序中,可以以下列两种方式重新获得执行:在等待队列上调用一个 wake_up,或者 timout 超时。在这个特定实现中,没人会调用 wake_up(毕竟其它代码根本就不知道这件事),所以进程总是因 timeout 超时而被唤醒。这是一个完美有效的实现,不过,如果驱动程序无须等待其它事件,可以用一种更直接

2014-12-24 16:57:08 1234

转载 Linux进程间通信——使用信号量

这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号。下面就进入信号量的讲解。一、什么是信号量为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行

2014-12-11 20:22:48 299

转载 Linux进程间通信——使用共享内存

下面将讲解进程间通信的另一种方式,使用共享内存。一、什么是共享内存顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc

2014-12-11 20:19:08 209

转载 http、TCP/IP协议与socket之间的区别

http、TCP/IP协议与socket之间的区别 网络由下往上分为:  www.2cto.com  物理层--                      数据链路层--网络层--                       IP协议传输层--                       TCP协议会话层--表示层和应用层--    

2014-12-11 08:35:57 351

转载 将archlinux 2013-06-01版,安装配置为个人工作站

各位朋友,archlinux20140105版ISO文件的安装,请见:http://blog.sina.com.cn/s/blog_69e5d8400101fxa3.html 虽然没本文写得细,但更精减。本文安装所使用的镜像为:archlinux-2013.06.01-dual.iso。首先请看看我安装完成之后的效果。图一,是第一个虚拟桌面及右键菜单图:图二,是第二个虚

2014-12-06 14:47:53 502

转载 linux中断处理 上半部 下半部

与Linux中断息息相关的一个重要概念是Linux中断分为两个半部:上半部(tophalf)和下半部(bottom half)。上半部的功能是"登记中断",当一个中断发生时,它进行相应地硬件读写后就把中断例程的下半部挂到该设备的下半部执行队列中去。因此,上半部执行的速度就会很快,可以服务更多的中断请求。但是,仅有"登记中断"是远远不够的,因为中断的事件可能很复杂。因此,Linux引入了一个下半部,

2014-12-03 18:10:30 858

转载 由.o文件生成.a文件(静态库)或者.dll文件(动态库)

关于库生成的问题    我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。(1)静态库     简单地说,静态库是一个目标文件的简单集合。因此,首先要解决目标文件。     第一

2014-11-22 17:03:39 3906 1

转载 gcc编译器 CFLAGS 标志参数说明

CFLAGS = -g -O2  -Wall -Werror -Wno-unused 编译出现警告性错误unused-but-set-variable,变量定义但没有使用,解决方法: 增加CFLAGS 或CPPFLAGS参数如下:  CPPFLAGS=" -Werror -Wno-unused-but-set-variable" || exit 1         

2014-11-14 14:59:56 428

原创 linux编译工具链的用法

GCC 软件包包含 GNU 编译器,其中有C和C++编译器.安装下列程序: c++, cc (link to gcc), cc1, cc1plus, collect2, cpp, g++, gcc, gccbug, 和 gcov安装下列库文件: libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so] 和 libsupc++.ac

2014-11-14 12:00:27 2257

转载 linux库文件的安装于使用

在学习某一函数库的时候,我们经常做的第一件事, 就是把该函数库的源码下载回来进行编译和安装(一般是这三步:./configure -> make -> make install),然后写一些调用库函数的小用例,看其能否正常运行以及运行后的效果。完成库函数安装,当我们满心期待地使用GCC进行用例编译的时候, 却经常遇到以下问题:test.c:X:XX: fat

2014-11-14 11:53:15 3198

转载 使用GDB调试程序

一般来说,GDB主要帮忙你完成下面四个方面的功能:    1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。    2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)    3、当程序被停住时,可以检查此时你的程序中所发生的事。    4、动态的改变你程序的执行环境。从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成这些功能,不过

2014-11-10 17:41:41 302

转载 微信公众平台开发入门教程

在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序、MySQL数据库、计算机网络通讯、及HTTP/XML/CSS/JS等基础。我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部。本系列教程将引导你完成如下任务:创建新浪云计算平台应用启用微信公众平台开发模式了解数据收发原理及消息格式使用微信调试器调试程序 第一章 申请服务器资源创

2014-11-08 10:52:55 432

转载 多进程和多线程的区别

很想写点关于多进程和多线程的东西,我确实很爱他们。但是每每想动手写点关于他们的东西,却总是求全心理作祟,始终动不了手。今天终于下了决心,写点东西,以后可以再修修补补也无妨。 一.为何需要多进程(或者多线程),为何需要并发?这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性。我想,只要你不是整天都写那种int main()

2014-11-05 11:46:06 396

转载 进程和线程的区别与联系

进程和线程的关系:(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。(3)处理机分给线程,即真正在处理机上运行的是线程。(4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)调度:

2014-11-05 09:55:18 268

转载 指针数组与数组指针

数组指针和指针数组的区别数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元

2014-11-04 08:55:03 218

转载 linux内核的Oops [kernel panic]

什么是Oops?从语言学的角度说,Oops应该是一个拟声词。当出了点小事故,或者做了比较尴尬的事之后,你可以说"Oops",翻译成中国话就叫做“哎呦”。“哎呦,对不起,对不起,我真不是故意打碎您的杯子的”。看,Oops就是这个意思。在Linux内核开发中的Oops是什么呢?其实,它和上面的解释也没什么本质的差别,只不过说话的主角变成了Linux。当某些比较致命的问题出现时,我们的Linux内核

2014-11-03 14:32:55 548

转载 mips通用寄存器

MIPS有32个通用寄存器($0-$31),各寄存器的功能及汇编程序中使用约定如下:下表描述32个通用寄存器的别名和用途REGISTERNAMEUSAGE$0$zero常量0(constant value 0)$1$at保留给汇编器(Reserved fo

2014-11-03 11:52:39 654

转载 Linux kernel panic解决方法

Linux kernel panic解决方法kernel panic错误表现kernel panic 主要有以下几个出错提示:Kernel panic-not syncing fatal exception in interruptkernel panic - not syncing: Attempted to kill the idle task!kernel panic -

2014-11-03 10:22:17 443

原创 linux虚拟机新增加一个硬盘

Linux的VM虚拟机扩展磁盘空间(1)增加磁盘的操作类似于windows的vm的操作1),2),3)。(2)增加后进入系统看不到新增的磁盘,需要进行下面的步骤(3)。(3)启动VM环境下的linux操作系统,添加新分区,需要root账号身份。          3.1 【fdisk -l】 最大分区为/dev/sda3,说明新创建的分区将会是sda4          3.2

2014-11-03 09:11:30 1170

转载 非对齐地址访问问题

ARM,DSP,POWERPC等不支持非对齐地址访问,X86支持非对齐地址访问。 为何要字节对齐? 从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。 TCPIP协议栈一直采用的uip,感觉不是很好,想采用网上的

2014-10-31 10:55:55 6453 1

转载 字节对齐概念以及相关深入

文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。  一、概念       对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。     二、为什么要字节对齐      需要字节对齐的根本原因在于CPU访问数

2014-10-31 10:27:20 398

HMC5883L数据手册

HMC5883L 三轴磁场加速度,电子罗盘,空间姿态方位角定位

2013-03-27

空空如也

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

TA关注的人

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