自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 收藏
  • 关注

转载 linux pci 协议一

当当热卖商品推荐先打下广告,上面是一本好书了O(∩_∩)O~前言因为遇到一个pci总线的问题,所以去学习了解linux的pci驱动,中间总结了一些pci总线原理和linux驱动的知识,在此总结出来备查。PCI总线原理简介组成结构PCI总线是一种局部总线,与系统总线有所区别,主要是为了连接外设。它在一个处理器系统中的位置如下图与PCI...

2013-11-30 09:06:00 177

转载 如何成为高手

高手亦无他,不过多知道一些罢了。成为高手的秘诀也很简单,就是耐心细致的看书,总结,多联系,勤思考。成为高手的路大家都知道,但是认真走下去的人不多。计算机编程的经典书籍不超过二十本,而且很多都是相通的,有多少人肯花几年的时间认真研究成为专家?路是人走的,只有对一个领域不灭的热情,才能使一个人达到他人到不了的高度。转载于:https://www.cnblogs.com/l...

2011-12-16 23:03:00 108

转载 一个常用的vimrc

" 不要使用vi的键盘模式,而是vim自己的set nocompatible" 语法高亮set syntax=on" 去掉输入错误的提示声音set noeb" 在处理未保存或只读文件的时候,弹出确认set confirm" 自动缩进set autoindentset cindent" Tab键的宽度set tabstop=4" 统一缩进为4set softtabs...

2011-12-16 07:41:00 201

转载 APUE阅读笔记--第十五章(第一部分)

进程间通信1. 管道管道是UNIX IPC的最老形式,并且所有U N I X系统都提供此种通信机制,管道有两种限制;(1) 它们是半双工的。数据只能在一个方向上流动。(2) 它们只能在具有公共祖先的进程之间使用。通常,一个管道由一个进程创建,然后该进程调用f o r k,此后父、子进程之间就可应用该管道。管道是由调用p i p e函数而创建的。...

2011-12-14 12:44:00 148

转载 APUE阅读笔记--第十四章(第二部分)

高级IO1. 多路复用Poll函数#include <poll.h>int poll(struct pollfd fdarray[], nfds_t nfds, int timeout);Returns: count of ready descriptors, 0 on timeout, 1 on er...

2011-12-14 12:39:00 75

转载 apue2 阅读笔记--第十三章

1. 编写规则 Some basic rules to coding a daemon prevent unwanted interactions from happening. We state these rules and then show a function, daemonize, that implements them. The first thing...

2011-12-05 23:29:00 85

转载 apue2 阅读笔记--第12章

1. 线程属性 什么东西都涉及到属性,程序里一涉及到属性的话,一般就是比较高级的要求了。比如socket的setsockopt函数比较重要。文件描述符的fcntl比较重要。同理,线程的: #include <pthread.h> int pthread_attr_init(pthread_attr_t *attr); int pthread_attr_d...

2011-12-05 11:54:00 103

转载 apue2 阅读笔记--第11章

线程基础 tips :对前面习题的一点回顾 1) fgets 最多读取MAX - 1个字符,结尾自动加\0; 2)Standard input and standard output are both line buffered when a program is run interactively. When fgets is called, standard output is...

2011-12-02 23:04:00 100

转载 apue2 阅读笔记--第十章

1. 定义首先,每个信号都有一个名字。这些名字都以三个字符 S I G开头。例如,S I G A B RT是夭折信号,当进程调用a b o r t函数时产生这种信号。S I G A L R M是闹钟信号,当由a l a r m函数设置的时间已经超过后产生此信号。V 7有1 5种不同的信号,S V R 4和4 . 3 + B S D均有3 1种不同的信号。在头文件< s i g ...

2011-11-26 17:03:00 111

转载 apue2 阅读笔记--第八章

1. 关于0号和1号进程There are some special processes, but the details differ from implementation to implementation. Process ID 0 is usually the scheduler process and is often known as the swapper. No p...

2011-11-25 18:12:00 116

转载 apue2阅读笔记 第6.7章

这两章的内容相对较少,所以合到一起写。第六章1. 获取pwd结构体指针的三个函数:#include <pwd.h>struct passwd *getpwuid(uid_t uid);struct passwd *getpwnam(const char *name);struct passwd *getpwent(void);2. 其他数据文件Desc...

2011-11-22 18:48:00 63

转载 apue2 阅读笔记 --第五章

标准I/O库1.当打开一个流时,标准I / O函数f o p e n返回一个指向F I L E对象的指针。该对象通常是一个结构,它包含了I / O库为管理该流所需要的所有信息:用于实际 I / O的文件描述符,指向流缓存的指针,缓存的长度,当前在缓存中的字符数,出错标志等等。文件描述符S T D I N _ F I L E N O , S T D O U T _ F I L ...

2011-11-19 12:16:00 91

转载 apue2 阅读笔记--第四章

1.首先,关于 stat, fstat, lstat#include <sys/stat.h>int stat(const char *restrict pathname, struct stat *restrict buf);int fstat(int filedes, struct stat *buf);int lstat(const char...

2011-11-17 00:09:00 81

转载 apue2 阅读笔记--第三章

第三章--文件IO1.creat函数创建文件时权限是O_WRONLY,OPEN函数无此限制。2.两张图:(进程打开多个文件时的结构关系)(两个无关进程打开同一个文件)当两个进程打开同一个文件时要注意使用锁等方式进行原子操作。另一个简单的解决方案: 读写时用pread和pwrite(lseek和read write组成的原子操作),创建时用open的O_CR...

2011-11-14 00:48:00 88

转载 杂谈--关于代码库

读了这篇文章http://news.cnblogs.com/n/118977/文章比较长,说实话没有看完,不过看到前面提到代码库的概念,引发一点感慨。或许是吧,越来越感触到自己是多么急切的需要一个熟悉的代码库。有很多问题其实是重复的,或者相似的。编程领域里的经典思想和算法有限,的确很多时候是已有代码的堆叠。自己也有不少资料,可惜太乱了,不能像牛人那样做到非常熟悉,拿来就用...

2011-11-10 22:06:00 89

转载 Enssential C++ Chap5 面向对象

1. The two primary characteristics of object-oriented programming are inheritance and polymorphism. Inheritance allows us to group classes into families of related types, allowing for the...

2011-11-03 05:31:00 101

转载 再试试windows7版得writer

先发个c++代码 #include <iostream>using namespace stdint main (){ char *p = new char; *p = 'a'; for (int i = 0; i < 5; i++) { cout << a << endl; } return...

2011-11-02 22:11:00 78

转载 内核驱动系列--内核调试方法

本文主要参考LDD3 第四章及linux设备驱动开发详解(宋宝华)的第22章调试嵌入式内核的方法如下:一、 首先要在编译内核时打开许多调试选项,这样在驱动程序出错时就会打印出尽可能多的调试信息。二、 通过printk, oops, strace, /proc,等进行观察调试(最常用)三、 目标机插桩,如打上KGDB补丁,利用gdb, kgdb工具在主机端调试目标机。四...

2011-10-28 20:10:00 234

转载 know everything about something

先前的学习涉猎比较广泛,高级编程,电子电路,上层编程,甚至做网页,都接触过了。尽管学的都不深,但是都知道一点基本的知识。先前看到一句话,叫做know something about everything, know everything about something。尽管自己先前并没用那么明确的说明,但是我确信自己一直在向往着成为一名linux驱动开发工程师。我知道每一...

2011-10-24 20:12:00 1386

转载 内核驱动系列--中断和定时器

一、中断1 概述:  Linux 的中断处理分为顶半部和底半部,顶半部完成尽可能少得的比较紧急的功能,往往只是简单的完成“登记中断”的工作,  就是就是将底半部处理程序挂到该设备的底半部处理队列中去。但是,也不能僵化的认为linux设备驱动中的中断处理一定分  为两个半部,如果中断要处理的工作本身就很少,则完全可以在顶半部全部完成。查看/proc/interrupts文件...

2011-10-23 18:30:00 126

转载 内核驱动系列--字符设备驱动流程

内核模块基础:1 可以通过编译进内核和动态加载内核模块来将驱动模块加载,调试过程中后者比较常用。2 相关命令: insmod rmmod modinfo lsmod dmesg modinfo cat /proc/devices cat /proc/moduls3 内核模块程序结构:  1 模块加载函数 --- module_init (initial_function)...

2011-10-18 15:52:00 81

转载 关于优先级反转

转自:http://www.blogjava.net/killme2008/archive/2009/06/28/284459.html在多进程、多线程并发的环境里,从概念上看,有多个进程或者多个线程在同时执行,具体到单个CPU级别,实际上任何时刻只能有一个进程或者线程处于执行状态;因此OS需要决定哪个进程执行,哪些进程等待,也就是进程的调度。一、调度的目标1、首先要区分程序使用CP...

2011-10-18 14:06:00 84

转载 linux 文件系统移植

这篇文章迟迟未写,有些歉意。闲话休提,转入正题。文件系统的移植也是分为制作和烧写两个步骤,制作的过程又分为内容制作和格式转换两个方面。制作文件系统命令的工具常用busybox(源码也很值得研究哦!),格式转换工具常用的如mkfs.jffs2, mkfs.cramfs, mkfs.yaffs2等,有的需要自己制作,有的标准linux已经提供。烧写也有两种方式,一种就是通过烧写工...

2011-10-13 20:34:00 69

转载 linux 内核移植

在有了合适的交叉编译工具链和移植了bootloader的基础上,就要进行期待的内核移植。移植的主要工作是增减内核模块,重新编译定制好得内核,使之符合具体要求。本文简要的说明2.6.35内核在s3c2410平台的移植。主要写编译过程。步骤如下:1.下载并解压源码包2.进入源码根目录,修改MakefileARCH = armCROSS_COMPILE = ar...

2011-10-13 15:23:00 59

转载 uboot--fs2410移植(转)

本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上:1、u-boot工程的总体结构2、u-boot的流程、主要的数据结构、内存分配。3、u-boot的重要细节,主要分析流程中各函数的功能。4、基于FS2410板子的u-boot移植。实现了NOR Flash和NAND Flash启动,网络功能。 这些认识源于自己移植u-boot过程中查找的资料和对源码的简单阅读。下面主要以s...

2011-10-10 14:48:00 139

转载 linux 移植概述

所谓移植,主要任务:搭建自己的交叉编译环境,编译制作bootloader, 编译制作内核镜像,编译制作根文件系统,烧写到目标板。1.关于搭建交叉编译环境,其实就是制作交叉编译工具链toolchain。就是用pc上的编译器,编译产生目标板的编译链接工具。需要准备相关的很多源码,大体分为编译工具和lib和include库两类,比如glibc, binutils, gcc (目标...

2011-10-10 12:05:00 93

转载 linux 交叉开发环境搭建

(一) 需求1 硬件需求:arm板,jtag接口,串口,网口,pc2 软件工具:linux虚拟机(配置tftp和nfs服务),h-jtag烧写器, secureCRT(远程终端)3 源码需求:bootloader(u-boot), 系统镜像(zImage 或 uImage),根文件系统rootfs(二)步骤1 配置双网卡和tftp,nfs服务2 通过h-jtag...

2011-10-09 10:00:00 101

转载 Essential C++----Chap4(基于对象)

1.As with the definition of a nonmember inline function, an inline member functionshould be placed in a header file. The class definition and the inline member functions aretypically pl...

2011-10-08 08:23:00 75

转载 system函数调用

相关函数 fork,execve,waitpid,popen 表头文件 #include<stdlib.h> 定义函数 int system(const char * string); 函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命>令执行完后随即返回原调用的进程。在调...

2011-10-02 23:15:00 341

转载 Android Fundamentals

当然是google的说明文档最权威了,给出链接:http://developer.android.com/guide/topics/fundamentals.html然后,是我自己的一点感悟:1.先上传个经典的架构图关于这幅图,值得说明的是:(1)应用开发者主要研究的是application framework这一层,随着google开发ndk开发模式,c/c...

2011-09-30 14:53:00 103

转载 初来乍到

原先一直用百度空间写博客,但是有一点很恼人,就是没有插入代码的功能。对一个程序员而言,这是多么尴尬的事情.于是,今天,通过博客搬家,先搬到blogbus,再导出到xml,最后导入到cnblogs来了。博客文章多是记录自己的学习经历和一些感想,与大家共享,多有错漏之处, 请批评指正。有些文章是转载而来,都会注明出处,如果偶尔忘记注明,请作者指出,一定尊重原作。由于倒入过...

2011-09-30 13:25:00 45

转载 学海无涯

看c++ Primer,到后来几乎是晕了的。本来以为自己有C基础,C++也了解一点,应该没有问题的,但是越到后来越心浮气躁,最后干脆是浏览了。分析了下原因,主要是自己太心急了,为求速成,前面很多地方没有理解透,就匆匆前进,到后面就感觉越来越难。这本书内容很多,讲到了方方面面的细节,细看下来是要花费相当的时间和精力的,不能花上这些精力,就不要期望相应的收获。还要说一下林锐博士的翻译,我说不...

2011-09-27 16:15:00 53

转载 Huffman 压缩与解压缩

The simplest construction algorithm uses apriority queuewhere the node with lowest probability is given highest priority:Create a leaf node for each symbol and add it to the priority queue....

2011-09-24 13:21:00 86

转载 c vs c++

首先极力推荐维基百科的说明http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B然后,一点说明转自网络:1--概述Difference between c and c++C does not have any classes or objects. It is procedure and functi...

2011-09-24 00:49:00 88

转载 c++ vs java---之二

解释2:Ques 03: What is the difference between C++ and Java?Ans 03:Both C++ and Java use similar syntax and are Object Oriented, but:Java does not support pointers. Pointers are inherently tricky t...

2011-09-23 23:39:00 81

转载 c++ vs java---之一

先推荐维基百科:http://en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B转自网络(有删改):解释1:JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多态)。而由于c++为了照顾大量的C语言使用者,而兼容了C,多多少少影响了其面向对象的彻底性!JAVA严格说也不是完全的面向对象语言...

2011-09-23 23:38:00 74

转载 关于android程序的破解与保护

转自:http://cerezo.name/blog/2011/03/23/android-decompilation-obfuscation/I get more than a hundred visits a dayto myiPhone Decompilation&Obfuscationpost, that’s why wr...

2011-09-23 16:12:00 39

转载 C++ Primer Chap17

中间空过了三章:14 类的初始化,赋值和析构15重载操作符和用户定义的转换16类 模 板而直接由基于对象跨越到了面向对象的17章,前面的三章其实是非常重要的,这里先不写是因为我对c++还不够熟悉,看书看到这里,心情比较急躁,想先把整体的框架建立起来,再逐步细化,所以这三章只是粗略的浏览了一下,就先匆匆的进入17章,日后这三章的内容是一定要补上的,而且,就在一个月...

2011-09-20 00:50:00 88

转载 C语言常见命名规范

1 常见命名规则 比较著名的命名规则首推匈牙利命名法, 这种命名方法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。 其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。 匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀; 前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。 例如:lpszStr, ...

2011-09-16 00:15:00 136

转载 C/C++命名规范

据考察,没有一种命名规则可以让所有的程序员赞同,程序设计教科书一般都不指定命名规则。命名规则对软件产品而言并不是“成败悠关”的事,我们不要化太多精力试图发明世界上最好的命名规则,而应当制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施。下面分别按照“共性规则”、“W简单的indows应用程序命名规则”、和“简单的Linux应用程序明命名规则”这三个分类来讲述C++的命名规则:1...

2011-09-16 00:15:00 88

空空如也

空空如也

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

TA关注的人

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