关闭

[置顶] 嵌入式内核制作、根文件系统及内核启动流程

嵌入式软硬件架构       软件:根文件系统、Linux内核、Bootloader       硬件:底层硬件嵌入式Linux系统由Linux内核与根文件系统两部分组成,缺一不可一、内核制作      采用默认的模板来作为.config,模板在/arch/arm/configs文件中步骤:(1)先清除原有配置与中间文件                            x86: make distclean                            arm: make distclean ...
阅读(5182) 评论(0)

proc_create的使用方法

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

notifier chain — 内核通知链

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

音频DMA分析结果

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

android之ScrollView里嵌套ListView

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

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

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

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

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

linux 内存管理原理

本文以32位机器为准,串讲一些内存管理的知识点。   1. 虚拟地址、物理地址、逻辑地址、线性地址  虚拟地址又叫线性地址。linux没有采用分段机制,所以逻辑地址和虚拟地址(线性地址)(在用户态,内核态逻辑地址专指下文说的线性偏移前的地址)是一个概念。物理地址自不必提。内核的虚拟地址和物理地址,大部分只差一个线性偏移量。用户空间的虚拟地址和物理地址则采用了多级页表进行映射,但仍...
阅读(429) 评论(0)

Linux与Android 多点触摸协议

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

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...
阅读(261) 评论(0)

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

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

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

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

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

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

安装Ubuntu时的硬盘分区方案

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

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

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

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

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

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

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

Linux SPI框架(中)

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

Linux SPI框架(上)

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

Linux SPI框架(下)

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

韦东山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"、回车的...
阅读(1529) 评论(0)
243条 共13页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:393289次
    • 积分:4862
    • 等级:
    • 排名:第6506名
    • 原创:52篇
    • 转载:191篇
    • 译文:0篇
    • 评论:19条
    最新评论