- 博客(21)
- 资源 (49)
- 收藏
- 关注
转载 sizeof与strlen的区别与联系
sizeof与strlen的区别与联系1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。2.sizeof是算符,strlen是函数。3.sizeof
2011-09-30 15:44:57 787
原创 c++函数参数类型-引用
在编写个人函数的时候,你将会受到C++中的一条基本的原则的限制:在默认的情况下,变量只能以值传递的方式传递给函数。这句话的意思是:被传递到函数的只是变量的值,永远不是变量的本身。例如:void changeVar(int myVar,int newValue){ myVar=newValue;}int main(){int myNum=20;
2011-09-30 12:50:39 14201 6
转载 深入理解Linux kernel(内核)中的signal函数
在Linux内核代码中,有一个信号处理绑定器函数signal,它到原型定义如下,通过man 2 signal可以查看其原型。#include typedef void (*sighandler_t)(int); (1)sighandler_t signal(in
2011-09-30 08:56:18 3479
转载 解剖关键字typedef
带你解剖typedef之前,让我们先来看看POSIX.1中对信号处理函数signal的原型说明:void (*signal(int sig, void (*func)(int)))(int);(说明:这是一个函数,名字叫signal,它的输入参数是“int sig
2011-09-30 08:52:53 583
转载 poll机制分析
韦东山 2009.12.10 所有的系统调用,基于都可以在它的名字前加上“sys_”前缀,这就是它在内核中对应的函数。比如系统调用open、read、write、poll,与之对应的内核函数为:sys_open、sys_read、sys_write、sys_poll。
2011-09-29 16:50:48 888
原创 Linux驱动程序-硬件访问笔记
寄存器与内存他们的区别在哪里呢?寄存器和RAM的主要不同在于寄存器操作有副作用(LDD3上讲的side effect 或者 边际效果):当你读取某个地址时,可能导致该地址内容发生变化,比如很多设备的中断状态寄存器只要一读取,便自动清零。内存与I/O在x86处理器中
2011-09-29 09:05:24 955
原创 高级字符设备驱动-自动创建设备文件笔记
创建设备文件方法1)手工mknod创建2)自动自动创建(2.6内核)使用udev(mdev),它存在于应用层。在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备用device_create创建对应的设备例子:str
2011-09-29 09:01:35 1187
原创 高级字符设备驱动-Poll设备方法笔记
POLL方法什么是POLL方法,功能是什么?系统调用(用户空间)驱动(内核空间)OpenOpenCloseReleaseReadRead
2011-09-29 08:51:03 1190
原创 QT入门笔记之Hello World
先看代码:#include#includeint main(int argc, char *argv[]){ QApplication app(argc, argv); QPushButton w("hello world!!"
2011-09-28 09:15:31 1053 1
原创 高级字符设备驱动-阻塞型字符设备驱动笔记
问题:当一个设备无法立即满足用户的读写请求时应当如何处理?例如:调用read时没有数据可读,但以后会有。调用write时没空间可以写,但设备暂时没有准备好接收数据这时候,驱动程序应当阻塞进程,使它进入睡眠,直到请求可以得到满足。 解决:阻塞方式是文件读写操
2011-09-28 09:03:00 1476
原创 高级字符设备驱动-内核等待队列笔记
等待队列在Linux驱动程序设计中,可以使用等待队列来实现进程的阻塞,等待队列可以看作进程的容器,在进程时,将进程放入等待队列,当唤醒进程时,从等待队列中取出进程。第一种方法1)定义等待队列Wait_queue_head_t my_queue2)初始化等待
2011-09-28 08:54:29 1129
转载 嵌入式面试题5
2007-02-07Embedded Software Design Engineer1 读程序段,回答问题int main(int argc,char *argv[]){int c=9,d=0;c=c++%5;d=c;printf("d=%d\n
2011-09-27 17:02:34 710
转载 嵌入式面试题3(转帖)
1.static变量和static 函数各有什么特点? static变量分两种,局部变量和全局变量,他们都放在全局数据区(我觉得表达不准确。全局静态变量本文件可见,局部静态变量在在定义的block内可见;static函数也放在全局数据区,外部文件不可见;
2011-09-27 16:50:37 1316 1
转载 嵌入式面试2(转帖)
1> 如何判断一个板子的cpu 是big-endian 还是 Little-endian的?用c实现非常简单,10行左右,就可以判断了, 关键考察新人是否了解了什么是endian ,big-endian与little-endian的区别在哪里, 如果这些不清楚,就算c再强,也
2011-09-27 16:36:36 658
转载 嵌入式面试1(转帖)
嵌入式面试题1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情: 1). #define
2011-09-27 13:03:17 764 1
原创 高级字符设备驱动-Ioctl设备控制笔记
用户使用方法在用户空间,使用ioctl系统调用来控制设备,原型如下:int ioctl(int fd,unsinged long cmd,...)fd-文件描述符cmd-对设备的发出的控制命令...表示这是一个可选的参数,存在与否依赖于cmd驱动使用方法
2011-09-27 11:16:22 2640
原创 冒泡排序和直接选择排序
#includeint Array[100];void SortArray(int Array[], int n)//小到大排,直接选择排序{ int i,j,t; for(i = 0; i < n-1; i++) { for(j = i+1
2011-09-25 18:38:58 796
原创 c语言中static的用法
一、c程序存储空间布局 C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(b
2011-09-24 14:09:20 814
原创 2.4、2.6字符设备注册对比
韦东山书本和视频讲的都是字符设备驱动都是2.4的接口但大多新书早已经是讲2.6的接口了,如LDD3、国嵌、宋宝华的书(1)早期版本的字符设备注册。早期版本的设备注册使用函数 register_chrdev(),调用该函数后就可以向系统申请 主设备号,如果 regist
2011-09-24 13:54:47 1460
转载 mknod指令详解
mknod - make block or character special filesmknod [OPTION]... NAME TYPE [MAJOR MINOR] option 有用的就是 -m 了 name 自定义 type 有 b 和 c 还有 p 主设备号 次设备号主设备号是由linux/major.h定义的,如
2011-09-21 20:49:37 982
原创 简单字符设备驱动程序
linux驱动程序开发步骤1)查看原理图、数据手册,了解设备的操作方法。2)在内核中找到相近的驱动程序,以它为模板进行开发,有时候需要从零开始。3)实现驱动程序的初始化:比如向内核注册驱动程序,这样应用程序传入文件名时,内核才能找到相应的驱动程序。4)设计所要实现
2011-09-21 14:02:45 1938 1
2009年度ACM编程竞赛全球总决赛试题
2009-04-24
C++编程思想(第2版)
2009-04-24
程序员面试宝典(全).pdf
2009-04-24
各大IT公司的笔试面试题百度,阿里巴巴华为等
2009-04-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人