- 博客(40)
- 收藏
- 关注
原创 c++函数必须先声明在使用
c++函数必须先声明在使用,比如:#include <IOSTREAM>using namespace std;//void A();void A() //定义并声明了函数A{ cout<<"A调用B:"<<endl; B();}void B() //定义并声明了函数B{ cout<<"B调用A:"<<endl; A();}int main()
2015-06-19 04:22:56 14464
原创 c++命名空间使用
c++引入命名空间是为了避免重名的问题比如函数和变量重名,比如一下代码#include <IOSTREAM> namespace a{ int b=3;} namespace c{ int b=5;}int main(){ using namespace std; using namespace a; using namespace c;//
2015-06-19 03:43:04 814
转载 __attribute__((packed))详解
1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:在TC下:struct my{ char ch; int a;} sizeof(in
2014-06-26 17:42:47 515
转载 内核中的 likely() 与 unlikely()
转载自:http://blog.csdn.net/rstevens/article/details/1798561内核中的 likely() 与 unlikely()在 2.6 内核中,随处可以见到 likely() 和 unlikely() 的身影,那么为什么要用它们?它们之间有什么区别? 首先要明确: if(likely(value)) 等
2014-06-26 11:13:25 464
转载 linux機制之IDR
linux機制之IDR一.前言在linux中有idr,關於idr的用處並不是清楚。查看網上所述知所谓IDR,其实就是和身份证的含义差不多,我们知道,每个人有一个身份证,身份证只是一串数字,从数字,我们就能知道这个人的信息。同样道理,idr的要完成的任务是给要管理的对象分配一个数字,可以通过这个数字找到要管理的对象。類似于為內核任何對象創建一個普通的id,通過該id可以很快的索引到該對象
2014-06-24 12:20:38 519
转载 关于__init、__initdata和__exit、__exitdata的学习笔记
转载自:http://blog.chinaunix.net/uid-20543672-id-2985620.html由于4年前对于C语言和Linux的知识贫乏,所以当时对于模块中的函数定义没有细看。这次在温习《LDD3》的时候,重新看了一下关于__init、__initdata和__exit、__exitdata的知识,记录如下:对于__init、__initdata和__
2014-06-21 00:02:37 432
原创 结构体初始化
结构#includestruct stu { int num; char *name; int age;};static struct stu stu1 ={ .num = 1001, .age = 18, };int main(){ printf("sizeof(stu1)
2014-06-18 16:37:09 1080
转载 关于EXPORT_SYMBOL
linux2.6的“/proc/kallsyms”文件对应着内核符号表,记录了符号以及符号所在的内存地址。模块可以使用如下宏导出符号到内核符号表:[c-sharp] view plaincopyEXPORT_SYMBOL(符号名); EXPORT_SYMBOL_GPL(符号名) 导出的符号可以被其他模块使用,不
2014-06-16 17:44:56 436
转载 linux内核input子系统解析
作者:刘洪涛,华清远见嵌入式学院讲师。 Android、X windows、qt等众多应用对于linux系统中键盘、鼠标、触摸屏等输入设备的支持都通过、或越来越倾向于标准的input输入子系统。 因为input子系统已经完成了字符驱动的文件操作接口,所以编写驱动的核心工作是完成input系统留出的接口,工作量不大。但如果你想更灵活的应用它,就需要好好的分析下input子系
2014-06-16 16:45:13 500
转载 关于list_entry
[cpp] view plaincopy#define list_entry(ptr, type, member) \ ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) 这句话的意思是获取一个结构体中一个成员在这个结构体中的偏移。type *0是为了计算地址
2014-06-15 22:31:05 493
转载 typeof详解及Linux 中list_head 如何使用
#include #include #include#include#include #include MODULE_LICENSE("Dual BSD/GPL");struct group{ int id; char character; struct list_head member;}; int list_head_init(void)
2014-06-15 20:55:58 1362
转载 jiffies溢出与时间先后比较 + linux的HZ, Tick, Jiffies
Linux核心几个重要跟时间有关的名词或变数,底下将介绍HZ、tick与jiffies。(1)HZLinux核心每隔固定周期会发出timer interrupt (IRQ 0),HZ是用来定义每一秒有几次timer interrupts。举例来说,HZ为1000,代表每秒有1000次timer interrupts。 HZ可在编译核心时设定,具体查询设定方法可参见上篇文章《linu
2014-06-11 00:22:53 1021
转载 Poll机制分析(转韦东山)
最近看了一下Linux Poll 机制的实现,看了韦老师的分析文档,总结如下:int poll(struct pollfd *fds,nfds_t nfds, int timeout);总的来说,Poll机制会判断fds中的文件是否可读,如果可读则会立即返回,返回的值就是可读fd的数量,如果不可读,那么就进程就会休眠timeout这么长的时间,然后再来判断是否有文件可读,如果有,返
2014-06-06 12:13:28 620
原创 返回值问题及goto问题
hello.c:#includeint printchar(void){ printf("aa\n");}int main(){ int ret=0; ret = printchar(); printf("ret = %d\n", ret); return 0;}cc hello.c.
2014-06-06 01:59:32 1246
转载 linux内核结构体初始化时出现的.owner = THIS_MODULE
.owner = THIS_MODULE为什么加“点”的原因多次看书、编程时又看到了对结构体这种定义的方法,如: struct file_operations scull_fops = { .owner = THIS_MODULE, .llseek = scull_llseek, .read = scull_read, .write = scull_write, .
2014-06-04 17:06:11 1040 1
原创 嵌入式应用/驱动开发网络环境设置-使用NFS网络文件系统挂载根文件系统
本文使用的是主机的有线网卡,使得windows,vmvare上的ubuntu,开发板三者使用桥接互联,需要三者处于同一网段比如: windows为固定IP 192.168.1.5 ubuntu为固定IP 192.168.1.10 开发板为固定IP 192.168.1.171.配置windows为固定IP 192.168.1.52.vmvare
2014-05-31 08:36:08 683
转载 source insight支持.S的汇编文件和禁止for if等下一行缩进
用source insight看blob以及内核中的代码,发现即使全局搜索,也找不到定义中后缀为.S的函数,而明明在*.S中用汇编定义了该函数的。去网上查了一下,发现原因是*.S文件并没有添加到改工程中来。为了用source insight能搜索到.S的汇编文件,必须把该文件添加进来。方法:1、在创建工程前先特别设置好source insight 。设置如下:Opt
2014-05-30 22:42:32 969
原创 bl跳转指令使用错误导致编译出现错误--relocation truncated to fit: R_ARM_PC24 init_irq
bl 跳转指令只能在+/- 32MB内跳转:
2014-04-29 18:49:21 2658
原创 led.S:12: Error: invalid constant -- `mov r0,#300000'
led.S:12: Error: invalid constant -- `mov r0,#300000'3000
2014-04-18 10:44:18 541
转载 UltraEdit在打开一个文件的时候,有时候可能会提示:希望转换什么什么文件到DOS格式吗?
ultraedit[UE]在编辑文本文件时,总是提示是否转换为DOS格式那么,到底为什么会出现这个提示的呢?网上搜索到一些答案 :文件格式区别我们先看看这三个家伙有啥区别。很久以前,人们用老式的电传打字机作为输入设备,它使用两个字符来另起新行。一个字符把滑动架移回首位 (称为回车,),另一个字符把纸上移一行(称为换行,)。 当计算机问世后,由于存储器曾经
2014-04-15 13:55:52 1080
原创 SourceInsight3.5打开工程提示不能写,然后SI退出
新装的系统,结果不能重新打开工程,可以不断的new工程,但只要关闭,就没办法打开,提示“内存不能被written”的错误在网上看了很多攻略,有的说跟.net frame有关,有的说跟注册表有关,有的说是系统问题,有的说跟内存条硬件有关,都做了,没用后来想,是不是中文路径的问题,原来我们在new工程的时候默认选的的我的文档下面的sourceinsight的目录,里面有中文然后
2014-04-13 19:41:44 1312
原创 虚拟机下的ubuntu dhcp自动连网(NAT)
ubuntu连网:1.虚拟机设置为:自定义NAT方式(VMnet8)2.ubuntu选择dhcp自动获得IP: 1)sudo /etc/network/interfaces #开机自动激活eth0接口 auto eth3 #配置eth0接口为DHCP自动获取 iface eth3 inet dhcp2)重启网络服务:sudo /etc/init.d/netw
2014-04-09 21:50:42 779
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人