linux
碰碰跳跳
这个作者很懒,什么都没留下…
展开
-
#include <sys/socket.h>找不到头文件
ubuntu下socket编程涉及到头文件sys/socket.h 和sys/types.h。我是用的codeblocks编辑器,当我想查看socket,h头文件时编辑器提示找不到头文件。 我就想可能是没有设置codeblocks头文件的搜索路径。好吧,那首先就找找这个文件藏在哪里吧[cpp] view plain copy print?转载 2016-10-22 12:49:41 · 10553 阅读 · 1 评论 -
设备地址与IO内存映射
在嵌入式编程中,绝大部分功能都是通过驱动外设实现的,这些外设不仅可以是CPU外部的某种功能模块,也可以是CPU芯片内部集成的某些器件。这些芯片内部的外设基本都是通过总线的方式与CPU核心相连,而对它们的控制也通过对这些总线上的外设寄存器的配置来实现。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。但是外设寄存转载 2017-12-08 14:22:01 · 688 阅读 · 0 评论 -
trustzone
关于trustzone,个人理解如下,有些是猜测,欢迎拍砖、指正可以简单理解为:原来arm linux只分用户态和内核态。下载分为3态,即用户态、内核态和安全态。用户态通过系统调用进入内核态。内核态通过一条指令(具体指令不记得了)调用可以进入安全态。安全态下还分用户态和内核态。如果使用trustzone属性,就必须从最初的启动使用,即安全启动,uboot和内核镜像都是加密的。并且,原创 2017-10-26 14:26:17 · 675 阅读 · 0 评论 -
Linux DMA meory简述
1. DMA memory分类2. 2. DMA对memory的操作函数3. 3. DMA的层次结构4. 4. MIPS上的DMA实现5. 5. ARM上的DMA实现 首先,应该先读Documentation/DMA-API.txt和DMA-mapping.txt.转载 2017-08-13 07:00:33 · 974 阅读 · 0 评论 -
Linux设备树的用法
本文通过为一个新machine写一个设备树来介绍设备树相关的概念,以及如何来描述一个machine。关于设备树的技术细节描述,需要参考ePAPR文档,ePAPR文档中包含了大量的基础语法之外的细节,如果你需要了解更多本文之外的设备树细节,请参考ePAPR文档。基本数据格式设备树是一个由节点及属性组成的简单树结构。属性是基于key-value对的,节点则可以包含子节点转载 2017-06-08 16:32:32 · 477 阅读 · 0 评论 -
Linux中的中断处理
与Linux设备驱动中中断处理相关的首先是申请与释放IRQ的API request_irq()和free_irq(),request_irq()的原型为:int request_irq(unsigned int irq,void (*handler)(int irq, void *dev_id, struct pt_regs *regs),unsigned long irqflag转载 2017-03-12 11:26:31 · 300 阅读 · 0 评论 -
Linux内存管理(二)
注:本文中提到的ICE为一Android工程,对应Linux内核版本为2.6.29。2.6 slab分配器从前面分析可知,内核对内存的管理都是以页为最小单位的,也就是说想从内核申请内存,必须是页的倍数。如果只想申请几十个字节,获取到的也至少是一页,而且这一页的剩余部分别人是不能使用的,因此明显造成浪费。Linux使用slab分配器对从内核获取到的页再次分配,以减少浪费。slab转载 2017-02-26 10:34:53 · 452 阅读 · 0 评论 -
Linux内存管理(一)
注:本文中提到的ICE为一Android工程,对应Linux内核版本为2.6.29。 为了合理快速的获取内存,Linux分多层管理结构以适应不同架构及不同的使用方式。图2-1描述了内存管理的架构(注意一个系统中并不一定是2个node,一般情况下UMA只使用1个node,而NUMA最多使用8个或16个)。 图2-1:内存管理架构下面将依据此图由底向上依次介绍各功能块的作用。转载 2017-02-26 10:33:58 · 317 阅读 · 0 评论 -
Linux内存初始化
注:本文中提及的ICE为一个使用Android2.1(Linux2.6.29)的项目。 在进入复杂的内存初始化过程前,我们先看看初始化后的内存分配及映射图,以便有一个整体的印象。以此印象为轴,将各个小的过程、细节串起来达到最终对内存认识的融会贯通。图1-1描绘的是ICE平台划给Linux的464M内存初始化后的结果: 图1-1:ICE初始化后的内存1.1 获取内核参数转载 2017-02-26 10:32:44 · 565 阅读 · 0 评论 -
设备模型结构
设备模型结构 如表2-1,Linux设备模型包含以下四个基本结构:类型所包含的内容内核数据结构对应/sys项设备(Devices)设备是此模型中最基本的类型,以设备本身的连接按层次组织struct device/sys/devices/*/*/.../驱动(D转载 2017-02-26 10:31:10 · 455 阅读 · 0 评论 -
sysfs文件系统
sysfs文件系统sysfs是一个基于内存的文件系统,它的作用是将内核信息以文件的方式提供给用户程序使用。该文件系统的目录层次结构严格按照内核的数据结构组织。除了二进制文件外(只有特殊场合才使用),sysfs文件内容均以ASCII格式保存,且一个文件只保存一个数据,另外,一个文件不可大于一个内存页(通常为4096字节)。sysfs提供一种机制,使得可以显式的描述内核对象、对象属性及对象间关转载 2017-02-25 21:39:08 · 333 阅读 · 0 评论 -
从内核文件系统看文件读写过程
系统调用操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境,但是计算机系统的各种硬件资源是有限的,因此为了保证每一个进程都能安全的执行。处理器设有两种模式:“用户模式”与“内核模式”。一些容易发生安全问题的操作都被限制在只有内核模式下才可以执行,例如I/O操作,修改基址寄存器内容等。而连接用户模式和内核模式的接口称之为系统调用。应用程序代码运行在用户模式下,当应用转载 2017-02-25 12:05:31 · 427 阅读 · 0 评论 -
认真分析mmap:是什么 为什么 怎么用
阅读目录mmap基础概念mmap内存映射原理mmap和常规文件操作的区别mmap优点总结mmap相关函数mmap使用细节回到顶部mmap基础概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自转载 2017-02-25 12:03:20 · 223 阅读 · 0 评论 -
多通道的同步问题
原文地址: http://www.cnblogs.com/ArenAK/archive/2008/05/09/1189610.html一.综述多通道投影是一种典型的虚拟现实的实现,多通道可以是多个CRT、LCD显示器,也可以是DLP投影仪,本文中统称为显示器。在多通道显示(Multi Display)中的一个重要问题是保持各个通道间显示画面的同步。转载 2017-02-17 20:00:37 · 1050 阅读 · 0 评论 -
linux 默认的include
#include 中的module.h默认是在哪个目录下呢?我在/usr/include/linux下并没有找到这个文件。另外想问一下,不同内核版本的linux头文件是不是一样的。比如:我在2.6.20内核的系统上,用2.6.10的头文件会不会有问题。网友回复:1我的 module.h是在 内核编译好了的目录下的,不是在/usr/include/linux下,2在2.转载 2016-12-03 16:33:03 · 286 阅读 · 0 评论 -
ARM体系结构下面内存和i/o映射区别
ARM体系结构下面内存和i/o映射区别(1)关于IO与内存空间:在X86处理器中存在着I/O空间的概念,I/O空间是相对于内存空间而言的,它通过特定的指令in、out来访问。端口号标识了外设的寄存器地址。Intel语法的in、out指令格式为:IN 累加器, {端口号│DX}OUT {端口号│DX},累加器目前,大多数嵌入式微控制器如ARM、PowerPC等中并不提供I/O空间转载 2017-12-10 05:47:32 · 580 阅读 · 0 评论