自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (6)
  • 收藏
  • 关注

转载 C/C++浮点数在计算机中的表示

C/C++浮点数在内存中的存储方式       任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为  10000100(低地址单元) 00000100(高地址单元),因为Intel CPU的架构是小端模式。但是对于浮点数在内存是如何存储的?目前所有的C/C++编译器都是

2014-08-26 14:41:45 726

转载 二叉树的遍历

二叉树的非递归遍历                                                            二叉树的非递归遍历         二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理

2014-08-08 21:13:21 471

转载 python 获取当前时间

python 获取当前时间  python 获取当前时间问题:想要用python语句得到类似‘2012-09-07’格式的时间 解决:需要用到python time模块:import time 1)取得当前时间的时间戳(时间戳好像是1970年到现在时间相隔的时间):print time.time()输出的结果是:1346999692.71 

2014-02-10 14:45:10 725

转载 python 对于json数据的操作

Json概述以及python对json的相关操作什么是json:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。

2014-01-26 11:42:34 676

转载 TCP 3次握手

TCP3次握手/4次握手 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。 (1) 第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。 (2) 第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(

2013-12-16 21:25:04 662

转载 union的用法以及struct的初始化

在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也可以使用联合体来发挥其长处。首先看一段代码:union myun {struct { int x; int y; int z; }u; int k; }a; int main() {

2013-12-08 14:48:55 5975

转载 Linux设备驱动---poll函数

一个完整的poll函数其实包括3部分。应用层,系统API接口,底层驱动。读者可以读下do_sys_poll(fs/select.c)源码,很简单,这里只总结重点。应用层int poll(struct pollfd *fds, nfds_t nfds, int timeout);注意:1.nfds_t 为数组pollfd的个数,而内核则为数组fds的内存大小 即sizeof(fds[

2013-11-21 14:22:08 1710

原创 shell脚本---回文检测

参照《Linux shell 脚本攻略》写的一个回文检测的程序,用于检查一个字符串是否为回文。程序:

2013-11-07 21:00:12 2652

转载 Linux设备驱动---USB驱动骨架分析(skeleton.c)

Usb_skeleton.c,是USB驱动的框架,适合USB驱动的初学者。1.结构体内核其实就是一坨坨的数据结构,加上一根根链表。对于初学者,如果直接看USB驱动代码,大概会被那些名字相近的结构体弄得晕头转向,比如usb_host_interface和usb_interface,看着看着就把两个混淆了。所以,在学习USB驱动之前,建议把相关结构体都拎出来看一下,其实,也就那

2013-11-07 17:34:47 1031

转载 Linux内核引用计数

众所周知,C/C++语言本身并不支持垃圾回收机制,虽然语言本身具有极高的灵活性,但是当遇到大型的项目时,繁琐的内存管理往往让人痛苦异常。现代的C/C++类库一般会提供智能指针来作为内存管理的折中方案,比如STL的auto_ptr,Boost的Smart_ptr库,QT的QPointer家族,甚至是基于C语言构建的GTK+也通过引用计数来实现类似的功能。Linux内核是如何解决这个问题呢?同样作为C

2013-11-07 15:16:49 3590

转载 Linux设备驱动---PCI总线

浅谈 Linux 内核开发之 PCI 设备驱动PCI 介绍随着计算机应用的不断更新和发展(比如百兆网卡、视屏流等),计算机内数据传输的带宽要求越来越高,传统内部总线带宽已经远远不能满足这些应用的需要,因此人们推出了 PCI 总线标准PCI 是 Peripheral Component Interconnect 的缩写,它因为高性能、低成本以及良好的扩展性

2013-11-05 09:49:05 991

原创 shell 脚本---统计文件中单词的频率

#! /bin/bashif [ $# -ne 1 ]thenecho "Usage:$0 args error"fifilename=$1egrep -o "\b[[:alpha:]]+\b" $filename | awk ' { count[$0]++ } END{printf("%-14s%s\n","Word","Count");for(inq in co

2013-11-04 22:17:32 1029

原创 有符号数与无符号数在计算机中的表示

有符号数的第一位用来标识符号位,而无符号数只能表示正数。 区别:(以4位数表示) 有符号数0000 到0111(0到7)   +    1000到1111(-8到-1)在计算机中数是用补码来存储的,正数的补码和原码一样,负数的补码等于符号位不变其他位取反再加1。当达到最大正数0111(7的补码),再加1时为1000(补码)。负数补码的绝对值是连符号位取反加1,然后看成无符号

2013-11-01 09:40:15 3536

原创 shell脚本---统计文件夹下文件类型信息

#! /bin/bashif [ $# -eq 1 ];thenecho $0 basepathecho fipath=$1declare -A array;while read line;do  ftype=`file -b $line`  let array["$ftype"]++;doneecho +++++

2013-10-31 22:56:34 963

原创 shell脚本---查找并删除重复的文件

#! /bin/bashls -lS | awk 'BEGIN {getline;getline;name1=$8;size=$5 } { name2=$8;if (size==$5){md5sum name1 | getline; md51=$1;md5sum name2 | getline; md52=$1;if ( md51==md52 )

2013-10-30 21:22:11 1116

原创 取某一位的值

在嵌入式编程中经常遇到取某一位的值,可以通过将数据与位掩码相&来取出那一位对应的值。例子:#includeint main(){int data=5;if(data&0x04)printf("The third bit of %d is %d\n",data,(data&0x04)>>2);elseprintf("The third bit of %d is 0

2013-10-30 16:52:51 1183

转载 Linux设备驱动---/proc文件系统

in Linux, proc文件系统是一个虚拟文件系统,用户和应用程序可以通过proc文件系统得到当前的一些系统信息,并可以改变一些内核的参数。/proc下的文件是一种特殊文件,不能够像一般文件一样创建删除。下面讨论proc文件的创建、删除与读写。1.创建目录:[c] view plaincopystruct proc_dir_entry

2013-10-28 15:55:40 992

原创 C语言字符串的长度与大小

在C语言中没有string类型的数据,要想表示字符串一般有两种形式:1.字符数组字符数组表示字符串可以有两种方式:(1)char str1[ ]="aaaaa";此种方法声明的字符串本质上是字符数组,在赋值前数组大小还没有确定。在赋值后编译器会自动在“aaaaa”后加上’\0‘以表示字符串的结尾,此时str1中存储的数是“aaaaa\0”,数组的大小为6。(2)char str

2013-10-23 12:58:17 34253 1

转载 统一编址与独立编址

引言:        从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、DMA接口、并行接口、串行接口、AD接口……一个设备要想接入,就用自己的接口和总线上的某个匹配接口对接……于是总线上出现了各种设备:内存、硬盘,鼠标、键盘,显示器……        对于CPU而言,如果它要发数据到某个设备,其实是发到对应

2013-10-17 15:36:19 3831

转载 Linux内存机制

Linux内存管理摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨

2013-10-14 20:37:30 827

转载 Linux高端内存

原先一直都对Linux高端内存的管理认识模模糊糊的,可能主要是初次接触Linux kernel 是0.11版吧,当初的内存设计是16M,Linus对拥有32M的内存都是觊觎万分,1G内存恐怕是天方夜谭了。16M内存哪里还顾得上高端内存,脑子就一直没有这种概念。先我们还是来看看为什么要有高端内存? 80386的线性寻址空间是4G,内核空间从3G开始,如果全部采用"线性映射"(物理地址和逻辑地

2013-10-14 10:05:47 680

转载 Linux设备驱动---内核定时器

Linux内核2.4版中去掉了老版本内核中的静态定时器机制,而只留下动态定时器。相应地在timer_bh()函数中也不再通过run_old_timers()函数来运行老式的静态定时器。动态定时器与静态定时器这二个概念是相对于Linux内核定时器机制的可扩展功能而言的,动态定时器是指内核的定时器队列是可以动态变化的,然而就定时器本身而言,二者并无本质的区别。考虑到静态定时器机制的能力有限

2013-10-13 14:51:16 498

转载 Linux设备驱动---获知当前时间(高于jiffies精度)

在linux内核中获得比jiffies精度更高的时间值收藏人:Crazy_all2013-10-11 | 阅:1  转:7  |  分享   |    来源

2013-10-11 11:54:31 1095

转载 Linux设备驱动---jiffies与jiffies_64

在 Linux 内核中,jiffies 用于记录系统自启动到当前时刻系统时钟所产生的滴答数。 每一秒系统时钟的中断次数等于 HZ 的值,比如一般的 PC 中 PC 的值定义为 1000,也就是说,一秒钟内系统要收到 1000 次的时钟中断;同样,jiffies 的值在一秒钟内增加 HZ 。 系统自启动到当前时刻为止运行了 jiffies/HZ 秒。 在 incl

2013-10-09 16:17:21 1319

转载 Linux进程睡眠的原则

转自:http://blog.csdn.net/samantha_sun/article/details/6365770为什么说在持有自旋锁时不能进入睡眠或阻塞看LDD149页时,看到休眠的两条规则,其中之一是说,永远不要再原子上下文睡眠!为什么说,驱动程序在持有自旋锁时绝对不能进入睡眠,而在拥有信号量时就可以?  看到网上有人这么提问,这也是我

2013-09-25 08:57:52 841

转载 linux中的各种包的安装与卸载的方式

linux下各种格式软件包的安装(转)(2010-12-02 12:09:46)转载▼ 分类:嵌入式学习从网站或是在CD-ROM上找到的Linux软件包,大部分为rpm、tar、gz、tgz、bz、bz2等格式。下面我们编介绍一下它们的安装方法。一、RPM格式文件的安装RPM 是RedHat Package Manager

2013-09-24 16:16:58 957

转载 Linux设备驱动---ioctl函数

序言设备驱动程序的一个基本功能就是管理和控制设备,同时为用户应用程序提供管理和控制设备的接口。我们前面的“Hello World”驱动程序已经可以提供读写功能了,在这里我们将扩展我们的驱动以支持设备控制接口,在Linux中这个接口是通过ioctl函数来实现的。设备控制接口(ioctl 函数)回想一下我们在字符设备驱动中介绍的struct file_operations结构,这里

2013-09-24 12:01:10 1624

转载 Linux内存屏障

内存屏障是一个很神奇的东西,之前翻译了linux内核文档memory-barriers.txt,对内存屏障有了一定有理解。现在用自己的方式来整理一下。在我看来,内存屏障主要解决了两个问题:单处理器下的乱序问题和多处理器下的内存同步问题。为什么会乱序现在的CPU一般采用流水线来执行指令。一个指令的执行被分成:取指、译码、访存、执行、写回、等若干个阶段。然后,多条指令可以同时存在于流水

2013-09-23 15:30:12 668

转载 Linux---kfifo

Linux kernel里面从来就不缺少简洁,优雅和高效的代码,只是我们缺少发现和品味的眼光。在Linux kernel里面,简洁并不表示代码使用神出鬼没的超然技巧,相反,它使用的不过是大家非常熟悉的基础数据结构,但是kernel开发者能从基础的数据结构中,提炼出优美的特性。kfifo就是这样的一类优美代码,它十分简洁,绝无多余的一行代码,却非常高效。关于kfifo信息如下:本文分析的原代

2013-09-23 14:25:14 767

转载 Linux设备驱动---顺序锁

转自:http://bdxnote.blog.163.com/blog/static/844423520124270173127/顺序锁(seqlock)是对读写锁的一种优化,若使用顺序锁,读执行单元绝对不会被写执行单元所阻塞,也就是说,读执行单元可以在写执行单元对被顺序锁保护的共享资源进行写操作的同时仍然可以继续读,而不必等待写执行单元完成之后再去读,同样,写执行单元也不必等

2013-09-22 16:37:03 658

转载 Linux设备驱动---自旋锁

自旋锁的工作: 从保证临界区访问原子性的目的来考虑,自旋锁应该阻止在代码运行过程中出现的任何并发干扰。这些“干扰”包括:       1、中断,包括硬件中断和软件中断 (仅在中断代码可能访问临界区时需要)         这种干扰存在于任何系统中,一个中断的到来导致了中断例程的执行,如果在中断例程中访问了临界区,原子性就被打破了。所以如果在某种中断例程中存在访问某个临界区的

2013-09-17 15:36:22 625

转载 Android的Activity的生命周期

转自:http://kb.cnblogs.com/page/70125/大家好,今天给大家详解一下Android中Activity的生命周期,我在前面也曾经讲过这方面的内容,但是像网上大多数文章一样,基本都是翻译Android API,过于笼统,相信大家看了,会有一点点的帮助,但是还不能完全吃透,所以我今天特意在重新总结一下.  首先看一下Android api中所提供的Activ

2013-09-16 19:30:05 579

转载 Linux strace进程追踪工具

简介strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。输出参数含义root@ubuntu:/usr# strac

2013-09-16 16:11:49 921

转载 Linux系统日志信息

转自:http://blog.chinaunix.net/uid-20620288-id-3059203.html我们可以看到LINUX系统信息日志的途径基本有以下2种:1>dmesg查看----这个命令比较常见2>/var/log/下的文件那下面我们就从这个2个途径着手,一步步的走下去.首先,我们来看dmesg这个常见的命令背后隐藏的是什么!!

2013-09-16 14:56:54 707

转载 AWK工具详解

文章转自:http://caoyanbao.iteye.com/blog/570868AWK命令详解(大全)博客分类: LINUX & UNIX正则表达式CC++C#Unix 什么是awk? 你可能对UNIX比较熟悉,但你可能对awk很陌生,这一点也不奇怪,的确,与其优秀的功能相比,awk还远没达到它应有的知名度。awk是什么?与其它大多数UNI

2013-09-09 16:28:07 650

原创 Android之Handler笔记

Android之Handler笔记Handler包含两个队列:一个消息队列,一个线程队列。通过这两个队列可以实现线程之间的异步消息通信。1.Handler与线程A)package mars.handler;import android.app.Activity;import android.os.Bundle;import android.os.Handler;

2013-09-05 14:25:39 586

原创 最小生成树—Prim的实现

#include#define MAXVEX 5#define INFINITY 65535#define LEN MAXVEX*(MAXVEX-1)/2typedef struct{ int start; int end; int weight;}lowNode;struct{ lowNode low[LEN]; int length;}lowcost;int

2013-06-06 16:59:35 515

原创 Linux内核学习笔记-AT&T汇编语法

Linux内核-AT&T汇编语法AT&T汇编与intel汇编的区别1.寄存器引用引用寄存器前要加%,mov %eax,%ebx2.操作数的顺序操作数的排列时从源(左)到目的(右),mov %eax,%ebx3.常数、立即数的格式立即数前要加$,mov $4,%eax常熟的直接引用如 mov value,%ebx引用符号的地址在符号前加$ mov $val

2013-05-14 09:28:41 896

E-18-D80NK数据手册

本文档介绍了一款型号为E-18-D80NK红外反射式传感器。包括应用电路的连接示意图以及调节测量范围的方法。

2012-11-08

web service 基础

关于介绍web sevice 的一些基础知识,主要详细介绍了web service 的简历步骤

2012-10-22

精通QT4初级编程入门资料

精通QT4初级编程入门资料 从简单到实战的经典好书啊,希望对大家的QT水平有所提高啊!!

2011-05-30

精通QT4初级编程入门

qt 入门 linux 嵌入式 从简单到实战的QT好书,让初学者爱不释手! 希望与大家一起提高QT的开发实力!

2011-05-30

unix 操作系统设计实现

操作系统 unix 内核 C 编程 语言 嵌入式

2011-03-18

Lniux操作系统内核实习

linux 内核 分析 代码 编程 嵌入式 操作系统 C 编程

2011-03-18

空空如也

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

TA关注的人

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