自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 [mmc subsystem] mmc core(第一章)——概述

mmc subsystem系列(持续更新中): [mmc subsystem] 概念与框架 [mmc subsystem] mmc core(第一章)——概述 [mmc subsystem] mmc core(第二章)——数据结构和宏定义说明 [mmc su...

2019-06-27 15:18:48 276

转载 [mmc subsystem] 概念与框架

参考蜗窝科技http://www.wowotech.net/comm/mmc_framework_arch.htmlmmc subsystem系列(持续更新中): [mmc subsystem] 概念与框架 [mmc subsystem] mmc core(第...

2019-06-27 15:15:03 318

转载 Linux内存管理浅析(一)

1.Linux内存管理的主要内容a.虚拟内存管理b.内核空间内存管理c.用户空间内存管理2.虚拟内存和物理内存映射ZONE_HIGHMEM的主要作用:通过非永久映射实现内核对896M之外的物理内存的访问,比如:实际物理内存为4G,内核直接映射了896M,之外的897M-4G内核都无法访问是无法接受的。3.内核内存管理的目标...

2019-05-15 14:37:18 269

转载 转 Linux内存管理(最透彻的一篇)

摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨重点讨论的内容,无论市...

2019-05-15 14:05:42 266

转载 (转)初识linux内存管理子系统

昨天我们对内核模块进行了简单的分析,今天为了让我们今后的分析没有太多障碍,我们今天先简单的分析一下linux的内存管理子系统,linux的内存管理子系统相当的庞大,所以我们今天只是初识,只要对其进行简单的了解就好了,不会去追究代码,但是在后面我们还会对内存管理子系统进行一次深度的分析。在分析今天的内容之前,我们先来看出自http://bbs.chinaunix.net/thread-20186...

2019-05-15 14:01:22 251

转载 QT make install时"arm-linux-ranlib command not found"

 2014年08月28日 16:48:42 wangwalfred 阅读数:4026 标签: 交叉编译Ubuntu 更多个人分类: LINUX原文网址:http://blog.chinaunix.net/u1/46715/showart_1663653.htmlAuthor: wmmwang(unc,王敏敏)Environment:fedora8            arm-...

2018-10-08 21:01:13 826

转载 交叉编译安装ARM平台上的Qt

 一、宿主机环境搭建:编译需要x11库的支持,在Ubuntu下安装命令:sudo apt-get install libx11-dev libxext-dev libxtst-dev 二、下载源码包:qt-everywhere-opensource-src-4.7.0.tar.gz 三、解压源码包,查看Qt源码中是否有适合我们编译平台的配置文件,进入到源码目录下的qws...

2018-10-08 20:33:58 690

转载 移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)

移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)2016年09月28日 08:54:40 Linux学习之路 阅读数:41457 标签: 嵌入式移植qtqt5.62440arm 更多个人分类: Qt版权声明:欢迎转载,转载请注明出处 http://blog.csdn.net/lizuobin2/ https://blog.csdn.net/lizuobin2/article/d...

2018-10-08 11:46:33 615

原创 proc_create的使用方法

proc_create的使用方法proc文件系统是个有用的东东。创建一个proc虚拟文件,应用层通过读写该文件,即可实现与内核的交互。proc虚拟文件是如何创建的呢?先看看比较简单的,创建proc文件夹。调用以下函数,即可实现proc文件夹的创建:struct proc_dir_entry *proc_mkdir(const char *name, struct pro

2017-07-11 14:57:06 1767

原创 notifier chain — 内核通知链

大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件的通知。通知链表是一个函数链表,链表上的每一个节点都注册了一个函数。当某个事情发生时,链表上所有节点对应的函数就会被执行。所以对于通知链表来说

2017-07-11 14:32:01 612

原创 音频DMA分析结果

测试:DMA:查找imx-sdma与imx-dma. imx-sdma.c最后再查看printk("ttttttttttttttttttttttttttttttttttt   %s  %s \n", __func__, __func__);compat_filter_fnimx6 pcmͨ·  if (prtd->callback) desc->callback = p

2017-02-21 18:00:17 5358

转载 android之ScrollView里嵌套ListView

android之ScrollView里嵌套ListViewhi,大家好,研究完ScrollView嵌套ScrollView之后,本人突然又想研究ScrollView里嵌套ListView了。如果还不知道ScrollView嵌套ScrollView是怎么实现的可以参考http://www.eoeand

2017-01-13 11:30:46 642

转载 在 Linux 下用户空间与内核空间数据交换的方式,第 2 部分:

在 Linux 下用户空间与内核空间数据交换的方式,第 2 部分: procfs、seq_file、debugfs和relayfs本系列文章包括两篇,它们文详细地地介绍了Linux系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayfs,并给出具体的

2016-10-01 00:32:07 782

转载 在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分

在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分: 内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink本系列文章包括两篇,它们文详细地介绍了 Linux 系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与 sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayf

2016-10-01 00:29:58 1022

转载 Linux与Android 多点触摸协议

2012-07-03 10:06:25分类: 嵌入式【导读】:单点触摸信息是以ABS承载并按一定顺序发送,多点触摸信息则是以ABS_MT承载并按一定顺序发送,然后通过调用input_mt_sync()产生一个 SYN_MT_REPORT event来标记一个点的结束,告诉接收方接收当前手指的信息并准备接收其它手指的触控信息。为了使用功能强大的

2016-09-21 14:09:46 872

转载 Linux下用文件IO的方式操作GPIO(/sys/class/gpio)

(2015-11-26 16:14:16)转载▼标签: linux gpio 分类: Linux通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction和value

2016-09-15 07:48:10 615

转载 linux内核中等待队列(wait_event,wake_up...)

2012-12-25 15:09:57分类: LINUX根据内核3.1.6版本源码、书籍和网上资料,对几个函数进行分析       介绍这几个函数,不得不先介绍等待队列wait_queue_head_t       等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核自动唤醒。等待队列 

2016-08-26 10:25:43 1088

转载 C/C++堆、栈及静态数据区详解

本文介绍C/C++中堆,栈及静态数据区。   五大内存分区  在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。下面分别来介绍:  栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。   堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用

2015-07-10 19:27:45 769

转载 Linux主分区,扩展分区,逻辑分区的联系和区别

记得刚开始安装Linux操作系统时,了解过一些Linux磁盘分区的知识,可是随时光流逝,一段时间不用,基本全忘记了,依稀记得好像曾经知道有这么回事。人的记忆力就是这样,所以一旦选择了一个行业,最好不要轻易转行,因为很多知识需要不断的重复才能真正的掌握,而一个行业又需要很多真正掌握的知识,有人称这是积累的过程。不管怎么说,不论哪个行业都不是熬几个通宵就搞定的。而你的积累也就变成想转此行别人的壁垒,你

2015-04-07 11:36:29 913

转载 安装Ubuntu时的硬盘分区方案

如果你准备在硬盘里只安装Ubuntu一个操作系统的话,建议你采用一个“/”、一个“swap”和一个“/home”的三分区方案:/ :10GB-15GB。swap:物理内存小于或等于 512MB,建议分配实际物理内存容量2倍大小的swap;物理内存大于512MB,建议分配与物理内存等容量的swap。/home:/和swap以外的所有剩余空间。你需要手动进行分区,而不是由系统自己来安排

2015-04-07 10:39:17 21036

转载 Linux驱动修炼之道-SPI驱动框架源码分析(下)

来自:http://blog.csdn.net/woshixingaaa/article/details/6574224这篇文档主要介绍spi数据传输过程。当应用层要向设备传输数据的时候,会通过ioctl向设备驱动发送传输数据的命令。如图,向SPI从设备发送读写命令,实际的读写操作还是调用了主机控制器驱动的数据传输函数。transfer函数用于spi的IO传输。但是

2015-01-21 11:33:48 987

转载 Linux驱动修炼之道-SPI驱动框架源码分析(中)

来自:http://blog.csdn.net/woshixingaaa/article/details/6574220这篇来分析spi子系统的建立过程。嵌入式微处理器访问SPI设备有两种方式:使用GPIO模拟SPI接口的工作时序或者使用SPI控制器。使用GPIO模拟SPI接口的工作时序是非常容易实现的,但是会导致大量的时间耗费在模拟SPI接口的时序上,访问效率比较低,容易

2015-01-21 11:32:15 1012

转载 Linux驱动修炼之道-SPI驱动框架源码分析(上)

SPI驱动架构,以前用过,不过没这个详细,跟各位一起分享:来自:http://blog.csdn.net/woshixingaaa/article/details/6574215SPI协议是一种同步的串行数据连接标准,由摩托罗拉公司命名,可工作于全双工模式。相关通讯设备可工作于m/s模式。主设备发起数据帧,允许多个从设备的存在。每个从设备有独立的

2015-01-21 11:31:21 864

转载 Linux SPI框架(中)

水平有限,描述不当之处还请指出,转载请注明出处http://blog.csdn.net/vanbreaker/article/details/7734150           上节介绍了SPI子系统中的一些重要数据结构和SPI子系统初始化的第一步,也就是注册SPI总线。这节介绍针对于s3c24xx平台的SPI子系统初始化,在看具体的代码之前,先上一张自己画的图,帮助理清初始化的主要步骤

2015-01-20 16:05:15 762

转载 Linux SPI框架(上)

水平有限,描述不当之处还请指出,转载请注明出处http://blog.csdn.net/vanbreaker/article/details/7733476       Linux的SPI子系统采用主机驱动和外设驱动分离的思想,首先主机SPI控制器是一种平台设备,因此它以platform的方式注册进内核,外设的信息是以boardinfo形式静态定义的,在创建spi_master时,会根据外

2015-01-20 16:05:15 751

转载 Linux SPI框架(下)

水平有限,描述不当之处还请之处,转载请注明出处http://blog.csdn.net/vanbreaker/article/details/7737833       本节以spidev设备驱动为例,来阐述SPI数据传输的过程。spidev是内核中一个通用的设备驱动,我们注册的从设备都可以使用该驱动,只需在注册时将从设备的modalias字段设置为"spidev",这样才能和spidev

2015-01-20 16:04:35 745

转载 韦东山Linux视频驱动第2期》学习总结之第17课(USB设备驱动程序)

2012-02-29 20:02:44分类: LINUX驱动源码: usbmouse_as_key.zip   diff后结果: usbmouse.zip   平台:友善之臂Tiny6410,Linux2.6.38内核本文参考韦东山视频第二期的17课,把内核自带的usbmouse.c驱动改为可以把鼠标左、右、中键分别作为字符"l"、"s"、回车的

2014-12-31 18:52:36 2463

转载 键盘扫描码

键盘扫描码  Esc1 F159F260F361F462 F563F664F765F866 F967F1068F1187F1288` 411   22 33 44 55 6

2014-12-31 18:39:07 2309

转载 Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化

我们知道,SPI数据传输可以有两种方式:同步方式和异步方式。所谓同步方式是指数据传输的发起者必须等待本次传输的结束,期间不能做其它事情,用代码来解释就是,调用传输的函数后,直到数据传输完成,函数才会返回。而异步方式则正好相反,数据传输的发起者无需等待传输的结束,数据传输期间还可以做其它事情,用代码来解释就是,调用传输的函数后,函数会立刻返回而不用等待数据传输完成,我们只需设置一个回调函数,传输完成

2014-12-31 10:53:07 1050

转载 Linux SPI总线和设备驱动架构之三:SPI控制器驱动

通过第一篇文章,我们已经知道,整个SPI驱动架构可以分为协议驱动、通用接口层和控制器驱动三大部分。其中,控制器驱动负责最底层的数据收发工作,为了完成数据的收发工作,控制器驱动需要完成以下这些功能:1.    申请必要的硬件资源,例如中断,DMA通道,DMA内存缓冲区等等;2.    配置SPI控制器的工作模式和参数,使之可以和相应的设备进行正确的数据交换工作;3.    向通用接口

2014-12-31 10:52:06 1127

转载 Linux SPI总线和设备驱动架构之二:SPI通用接口层

通过上一篇文章的介绍,我们知道,SPI通用接口层用于把具体SPI设备的协议驱动和SPI控制器驱动联接在一起,通用接口层除了为协议驱动和控制器驱动提供一系列的标准接口API,同时还为这些接口API定义了相应的数据结构,这些数据结构一部分是SPI设备、SPI协议驱动和SPI控制器的数据抽象,一部分是为了协助数据传输而定义的数据结构。另外,通用接口层还负责SPI系统与Linux设备模型相关的初始化工作。

2014-12-31 10:46:04 1261

转载 Linux SPI总线和设备驱动架构之一:系统概述

SPI是"Serial Peripheral Interface" 的缩写,是一种四线制的同步串行通信接口,用来连接微控制器、传感器、存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是:CS    片选信号SCK  时钟信号MISO  主设备的数据输入、从设备的数据输出脚MOSI  主设备的数据输出、从设备的数据输入脚因为在大多数情况下,CPU或SOC一侧

2014-12-31 10:44:53 983

转载 基于S3C2440的嵌入式Linux驱动——SPI子系统解读(四)

本系列文章对Linux设备模型中的SPI子系统进行讲解。SPI子系统的讲解将分为4个部分。   第一部分,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)   第二部分,该文将对SPI的主控制器(master)驱动进行描述。          基于S3C2440的嵌入式Linux

2014-12-30 18:23:05 1292

转载 基于S3C2440的嵌入式Linux驱动——SPI子系统解读(三)

分类: 嵌入式Linux设备驱动解读 Linux SPI子系统2012-07-16 14:49 1747人阅读 评论(0) 收藏 举报嵌入式linuxcstructclass该系列文章将分为四个部分:   第一部分,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)

2014-12-30 18:21:21 1132

转载 基于S3C2440的嵌入式Linux驱动——SPI子系统解读(二)

该系列文章将分为四个部分:   第一部分,将对SPI子系统整体进行描述,同时给出SPI的相关数据结构,最后描述SPI总线的注册。基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)   第二部分,即本篇文章,该文将对SPI的主控制器(master)驱动进行描述。   第三部分,该文将对SPI设备驱动,也称protocol 驱动,进行讲解。基于S3C2440

2014-12-30 18:20:12 1503

转载 基于S3C2440的嵌入式Linux驱动——SPI子系统解读(一)

本文将介绍SPI子系统。内核版本为2.6.30。如有错误欢迎指正。预备知识要求:1.SPI总线                       2. platfrom平台                       3. sysfs子系统                       4. 阅读过LDD3第3,5,6,7,9,10,11章的内容。NOTE:如果

2014-12-30 18:18:03 2521

转载 linux驱动中时间相关问题

1. linux世界里的时间 http://blog.csdn.net/freedom1013/archive/2007/03/13/1528310.aspx 通常,操作系统可以使用三种方法来表示系统的当前时间与日期:①最简单的一种方法就是直接用一个64位的计数器来对时钟滴答进行计数。②第二种方法就是用一个32位计数器来对秒进行计数,同时还用一个32位的辅助计数器对时钟滴答

2014-12-16 10:33:26 1156

转载 linux内核部件分析(三)——记录生命周期的kref

kref是一个引用计数器,它被嵌套进其它的结构中,记录所嵌套结构的引用计数,并在计数清零时调用相应的清理函数。kref的原理和实现都非常简单,但要想用好却不容易,或者说kref被创建就是为了跟踪复杂情况下地结构引用销毁情况。所以这里先介绍kref的实现,再介绍其使用规则。       kref的头文件在include/linux/kref.h,实现在lib/kref.c。闲话少说,上代

2014-12-09 15:49:19 699

转载 linux内核部件分析(二)——原子性操作atomic_t

在任何处理器平台下,都会有一些原子性操作,供操作系统使用,我们这里只讲x86下面的。在单处理器情况下,每条指令的执行都是原子性的,但在多处理器情况下,只有那些单独的读操作或写操作才是原子性的。为了弥补这一缺点,x86提供了附加的lock前缀,使带lock前缀的读修改写指令也能原子性执行。带lock前缀的指令在操作时会锁住总线,使自身的执行即使在多处理器间也是原子性执行的。xchg指令不带lock前

2014-12-09 15:47:49 1431

转载 linux内核部件分析(一)——连通世界的list

在linux内核中,有一种通用的双向循环链表,构成了各种队列的基础。链表的结构定义和相关函数均在include/linux/list.h中,下面就来全面的介绍这一链表的各种API。[cpp] view plaincopyprint?struct list_head {      struct list_head *next, *prev;  

2014-12-09 15:46:22 830

ARM平台常用性能测试方法.pdf

ARM平台常用性能测试方法.pdf

2022-11-29

空空如也

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

TA关注的人

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