Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux驱动调试中的Debugfs的使用简介

Linux驱动调试中的Debugfs的使用简介

在调试linux驱动的时候,可以用debugfs来调试,debugfs类似字符设备驱动一样,甚至更简单,不需要主设备号次设备号等等,只需要实现一个file_operations,然后通过debugfs_create_file就可以在debugfs中建立一个文件结点,就像字符设备驱动那样,只需要对这个文件结点进行open就可以进行read、write、ioctl,等等操作,这些操作对应到我们在驱动里为debugfs准备的file_operations。让内核...
Linux GPIO驱动

Linux GPIO驱动

GPIO的驱动主要就是读取GPIO口的状态,或者设置GPIO口的状态。就是这么简单,但是为了能够写好的这个驱动,在LINUX上作了一些软件上的分层。为了让其它驱动可以方便的操作到GPIO,在LINUX里实现了对GPIO操作的统一接口,这个接口实则上就是GPIO驱动的框架,具体的实现文件为gpiolib.c在配置内核的时候,我们必须使用CONFIG_GENERIC_GPIO这个宏来支持GPIO驱动。这里我们把目光放到gpiolib.c上,主要对外提供的接口函...
调试soc3210的网卡驱动

调试soc3210的网卡驱动

这段时间在移植LWIP到ucos2上时,需要调试网卡驱动,平台是SOC3210i就调试这一驱动的过程中尝试由下面的话来概括和感受下调试网卡驱动的过程:首先我们得知道这个网卡系统实际上是由什么模块组成:MAC控制器和PHY芯片那么这两个模块是什么,起什么作用,摘自网络一段话:网卡工作在osi的最后两层,物理层和数据链路层,物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PH...
在OMAP3530上移植成功Android的ALSA声卡驱动

在OMAP3530上移植成功Android的ALSA声卡驱动

经过努力,终于让omap3530上的Android有了声音。这是第一次做Android的移植,也是第一次做移植,难度对我来说,还是蛮大,但是在范老师,还有在网上很多无私的前辈的帮助下,让我的第一次移植没有出现太大问题就成功完成了~ 现在我就分享一下,我这次的移植步骤,希望对有需要的人有帮助。首先,我这次移植的硬件平台是: omap3530系统: Android1.5声卡模式: ALSA以下就是我这次的移植步骤,参照了很多前辈的经验。1.在网上下载移植代码(...
用Shell脚本进行fdisk分区

用Shell脚本进行fdisk分区

在嵌入式开发中经常会对mmc卡,或u盘,固态硬盘等重新分区。手动调用fdisk能完成这些重复劳动,但总是不方便。为了提高效率,写如下脚本用于方便开发。注意:其中的空行必不可少,每一个空行意味着一个回车。partition.sh#!/bin/bashdisk=$1if [ -z $disk ]; thendisk=/dev/mmcblk0echo "您没有指定将要分区的设备,将使用默认设备: $disk"fi#下面这句dd期望能够将分区表擦除,但实际操作中总...
用getopt处理main函数的参数

用getopt处理main函数的参数

环境:Fedora 12Gcc4.4.2在C语言中,main函数的声明如下:intmain(intargc,char*argv[]);argc是指程序参数的个数,包括程序名本身,如果程序不带参数,argc为1;argv的每个数组元素存放一个程序参数,程序名存放在argv[0];例如:$ls-l此时,argc为2,argv[0]是ls,argv[1]是-l。程序的参数可以分为三种:选项,选项的关联值,非选项参数。例如:$gcchello.c-ohellohe...
GNU ARM汇编语法入门

GNU ARM汇编语法入门

GNU汇编器是GNU工具套件之一,其作用是把ARM汇编源代码转换成二进制对象文件。该汇编器的详细资料请参见GNU Assembler Manual,本文是该手册的摘要。例子和模板文件 Examples 文件夹和他的子文件夹包含很多汇编语言程序例子,你可以学习它们。Examples 有一个子文件是templates。在你开始写程序之前,强烈建议你使用那个文件夹提供的模板做为起点。特别的,template.s 文件应该在你所有的ARM程序中使用。在去除大部分该...
Unix/Linux如何创建一个后台进程

Unix/Linux如何创建一个后台进程

在Unix/Linux中创建一个后台进程的步骤1、调用fork函数,创建一个子进程。2、先让父进程自然结束。3、在子进程中调用setpgrp(),把子进程的进程组ID设为子进程的进程ID。4、在子进程中调用setsid(),创建一个新的Session(会话),这样子进程就与当前的控制终端脱离,也接受不到当前终端的(ctrl + c)消息。实现代码如下(运行环境:虚拟机下的Ubuntu):/**Author:ACb0y*FileName:main.cpp*C...
应用管道实现父子进程之间的通信

应用管道实现父子进程之间的通信

最近在学习Linux/Unix的IPC,而通过管道是其中的一种方式。管道的限制在与,它只能实现父子进程间的通信,通常我们通常会创建一个管道,然后fork出一个子进程,在父进程关掉读端(fd[0]),在子进程里关掉写端(fd[1]),然后在父进程的写端(fd[1])写入数据,在子进程中的读端(fd[0])读数据,这样就实现了父子进程间的通信。实现代码如下:#include<iostream> #include"apue.h" #include"e...
Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析

Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析

在前面几篇文章中,我们详细介绍了Android系统进程间通信机制Binder的原理,并且深入分析了系统提供的Binder运行库和驱动程序的源代码。细心的读者会发现,这几篇文章分析的Binder接口都是基于C/C++语言来实现的,但是我们在编写应用程序都是基于Java语言的,那么,我们如何使用Java语言来使用系统的Binder机制来进行进程间通信呢?这就是本文要介绍的Android系统应用程序框架层的用Java语言来实现的Binder接口了。相关阅读:An...
<< 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 >>