为什么需要字节对齐

概念  在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然边界(alignment)分配空间。各个成员按照它们被声明的顺序在内存中顺序存...

2016-12-30 14:14:15

阅读数 1127

评论数 0

linux程序分析工具介绍-ldd,nm

转载自: http://www.wuzesheng.com/?p=1595 本文要介绍的ldd和nm是linux下,两个用来分析程序很实用的工具。ldd是用来分析程序运行时需要依赖的动态库的工具;nm是用来查看指定程序中的符号表相关内容的工具。下面通过例子,分别来介绍一下这两个工具: 1. l...

2016-09-01 16:13:08

阅读数 1003

评论数 0

struct file_operations中 ioctl 和 unlocked_ioctl

转载自 "http://blog.chinaunix.net/uid-20543672-id-3015637.html" 很久都没有写驱动代码了,对于一些驱动相关的内核变化也没有怎么关心。这次重游《LDD3》获益良多,其值对于struct file_operations中io...

2016-08-30 15:50:42

阅读数 2485

评论数 0

udev 规则文件介绍

配置文件:         udev的配置文件位于 /etc/udev/ 和 /lib/udev/ ( # 开头的是注释)         udev 的主配置文件是 /etc/udev/udev.conf。 它包含一套变量,允许用户修改 udev 默认值。可以设置的变量如下:           ...

2016-08-27 10:41:21

阅读数 1902

评论数 0

C++ 类的静态成员详细讲解

在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。 静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。  ...

2016-08-22 17:06:39

阅读数 391

评论数 0

c语言 struct 的初始化

struct数据有3中初始化方法:顺序,C风格及C++风格的乱序。 1)顺序  这种方法很常见,在一般的介绍C的书中都有介绍。顺序初始化的特点是: 按照成员定义的顺序,从前到后逐个初始化;允许只初始化部分成员;在被初始化的成员之前,不能有未初始化的成员。  eg:  struct Us...

2016-07-29 23:20:41

阅读数 958

评论数 0

I2C总线协议

1.I2C协议   2条双向串行线,一条数据线SDA,一条时钟线SCL。    SDA传输数据是大端传输,每次传输8bit,即一字节。    支持多主控(multimastering),任何时间点只能有一个主控。    总线上每个设备都有自己的一个addr,共7个bit,广播地址全0. ...

2016-07-27 15:26:22

阅读数 350

评论数 0

L3总线接口

下面介绍一下L3总线接口(在一些codec 芯片中使用,Eg: uda1341) L3就是line 3(3条线)的意思,它只有L3DATA(数据线:用于传输数据)、L3MODE(模式线:用于选择模式)、L3CLOCK(时钟线:用于传输时钟)。L3一共有两个模式:地址模式和数据传输模式,先传输地址模...

2016-07-27 00:14:15

阅读数 1311

评论数 0

解读PTR_ERR,ERR_PTR,IS_ERR

最近要找工作了,就把内核以及驱动的知识复习了一下。看到了几个宏PTR_ERR,ERR_PTR,IS_ERR(其实是内联函数).还是不太明白,然后就google搜索了一下,搜出来的结果真是不让人满意,看完一些解释我更迷糊了。看来还得依靠内核源码,依靠对内核的理解自己弄明白了。大致看了一下这几个宏的定...

2016-07-17 23:18:15

阅读数 491

评论数 0

linux 用户空间与内核空间——高端内存详解

摘要:Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。用户空间的内存映射采用段页式,而内核空间有自己的规则;本文旨在探讨内核空间...

2016-07-17 22:32:00

阅读数 3416

评论数 0

Linux操作系统实时性学习总结

一、实时系统基本概念 什么是实时系统,POSIX作了这样的定义:指能够在限定的响应时间内提供所需水平服务的系统。另个一被Donald Gillies提出定义为:一个实时系统是指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。实时...

2016-07-14 14:56:35

阅读数 1854

评论数 0

linux ioctl 控制字

在Linux字符设备驱动入门(一)中,我们实现了字符设备的简单读写字符功能,接下来我们要在这个基础上加入ioctl功能。首先,我们先来看看3.0内核下../include/linux/fs.h中file_operations结构体的定义: struct file_operations {...

2016-06-29 00:21:54

阅读数 1547

评论数 0

x86架构PC机系统总线概述

总线的演变 首先应该讲讲总线的演变历史,这方面《PC架构系列:CPU/RAM/IO总线的发展历史!》这篇文章写得很好!感谢文章的作者!以下内容大量来自这篇文章,可以说是这篇文章的缩减转载。 公共总线 早期PC中,CPU/RAM/IO都是挂在一条总线上,所有的部件都必须在同步的模式下工作。...

2016-06-21 22:23:17

阅读数 4309

评论数 0

详解SPI中的极性CPOL和相位CPHA

SPI由于接口相对简单(只需要4根线),用途算是比较广泛,主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。即一个SPI的Master通过SPI与一个从设备,即上述的那些Flash,ADC等,进行通讯。而主从设备之间通过SPI进行通讯,首先要保证两者...

2016-06-20 23:36:13

阅读数 371

评论数 0

X11 Wayland 及 Mir 比较

Mir Canonical 2013年3月宣布开发自己的显示服务器 Mir之后,引发了开源界的大量谴责,很多人指责Canonical为什么不采用被设计用来取代X11的Wayland,Wayland的开发者也表示Wayland完全能够满足Canonical的需求,指责Canonical搞分裂的行为。...

2016-06-02 22:21:45

阅读数 6644

评论数 0

Makefile常用函数

在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。 一、函数的调用语法 函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:     $( ...

2016-05-25 15:29:29

阅读数 453

评论数 0

module_init的内核调用顺序

现在以module_init为例分析initcall在内核中的调用顺序 在头文件init.h中,有如下定义: #define module_init(x)     __initcall(x); #define __initcall(fn) device_initcall(fn) 继续看: ...

2016-04-29 14:43:23

阅读数 623

评论数 0

linux 程序存储结构

inux系统下,程序是一个可执行文件,通常是ELF格式。通常,Linux的可执行文件拥有两种内存分配方式:存储时 和 运行时 1、存储时 看实例,下面是对可执行文件aa运行size命令后得到的结果。 [root@xxx1 algriom]# size aa text data bss de...

2016-04-12 23:44:58

阅读数 470

评论数 0

Linux 内核堆栈

所有进程(包括内核进程和普通进程)都有一个内核栈,在x86的32位机器上内核栈大小可以为4KB或8KB,这个可以在编译内核的时候配置。内核栈的用途有两个:1)当进程陷入内核态,即内核代表进程执行系统调用时,系统调用的参数就放在内核栈上,内核栈记录着进程的在内核中的调用链;2)在内核栈被配置成8KB...

2016-04-12 23:34:13

阅读数 831

评论数 0

C\C++ sizeof 陷阱&&总结

C\C++ sizeof 陷阱&&总结 今天使用动态数组,本来想通过sizeof 获取动态数据,结果出现了错误。 先对自己做个测试,能做出下面这个题目,并做出合理解释,可以不用往下看了。 View Code   示例来源于网络,参考解释如下: a是一个很奇怪的定义,他表示一个指...

2016-04-11 22:10:46

阅读数 797

评论数 0

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