![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux/android
文章平均质量分 53
cainiao413
肌肉男!!!
展开
-
内核抢占和schedule()函数的分析
内核抢占和schedule()函数的分析标签: schedulepreempt-diTIF-NEED-Rthread-infPREEMPT-AC2015-07-22 17:31 523人阅读 评论(0) 收藏 举报 分类:校招准备(12) 版权声明:本文为博主原创文章,未经博主允许不得转载。1.线程描述符:struct t转载 2017-06-10 10:39:15 · 447 阅读 · 0 评论 -
Platform bus
http://blog.csdn.net/yangzhu1982/archive/2011/02/15/6186047.aspxhttp://blog.csdn.net/armeasy/archive/2010/11/07/5993210.aspxhttp://blog.csdn.net/armeasy/archive/2010/11/07/5993200.aspx原创 2011-03-16 20:00:00 · 471 阅读 · 0 评论 -
cdev结构体及其相关函数
<br />http://blog.csdn.net/z08053520/archive/2010/03/18/5390604.aspx原创 2011-03-16 17:42:00 · 352 阅读 · 0 评论 -
exit(),_exit()的区别
exit(),_exit()的区别 收藏 Linux的源码#define __NR_exit 1#define __NR__exit __NR_exit /* 摘自文件include/asm-i386/unistd.h*/ "__NR_"是在Linux的源码中为每个系统调用加上的前缀,请注意第一个exit前有2条下划线,第二个exit前只有1条下划线。Linux核心还提供了一些C语言函数库,这些库对系统调用进行了一些包装和扩展,因为这些库函数与系统调用的关系非常紧密,所以习惯原创 2011-03-16 13:37:00 · 588 阅读 · 0 评论 -
microcom命令
microcom<br />microcom [-d DELAY] [-t TIMEOUT] [-s SPEED] [-X] TTY<br />Copy bytes for stdin to TTY and from TTY to stdout<br />Options: -d Wait up to DELAY ms for TTY output before sending every next byte to it -t原创 2011-02-15 15:16:00 · 2355 阅读 · 0 评论 -
Android如何生成设备节点
<br />Android如何生成设备节点 收藏 <br />原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://buaadallas.blog.51cto.com/399160/394350<br />在Android中,由于没有mdev和udev,所以它没有办法动态的生成设备节点,那么它是如何做的呢?<br />我们可以在system/core/init/下的init.c和devices.c中找到答案:<br />init.c中<br /转载 2011-03-04 17:54:00 · 1036 阅读 · 0 评论 -
file结构体和inode结构体
file结构体和inode结构体 收藏 (1)struct file结构体定义在include/linux/fs.h中定义。文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的struct file。它由内核在打开文件时创建,并传递给在文件上进行操作的任何函数。在文件的所有实例都关闭后,内核释放这个数据结构。在内核创建和驱动源码中,struct file的指针通常被命名为file或filp。如下所示:struct file { union {转载 2011-03-04 17:45:00 · 942 阅读 · 0 评论 -
自定义调试信息宏及gcc技巧
[编程手记小技巧]自定义调试信息宏及gcc技巧 收藏<br />文中所讲的函数,可能是指使用宏定义的“宏函数”,也可能是指真正的函数。假设你不会混淆它们,也假设你能理解它们。<br />许多开源项目代码中都有自定义的调试信息的相关的函数。比如u-boot中(来自common.h头文件)view plaincopy to clipboardprint?#ifdef DEBUG #define debug(fmt,args...) printf (fmt ,##args) #define d转载 2011-02-12 17:54:00 · 2647 阅读 · 0 评论 -
linux /proc/devices & /dev
<br />请问:linux环境下,/dev/目录下的内容与/proc/下文件devices中的内容有什么区别?我在目标板上做实验时发现,当我向板子上加载驱动模块时,devices文件中有变化,而/dev下根本没有变化,/dev/下不也应该是设备接点吗,为什么为模块建立设备接点时,/dev/下却没有变化呢?<br /> 请各位帮帮忙,谢谢!!!<br /> <br />/proc/devices/中的设备是通过insmod加载到内核的,它可产生一个major供mknod作为参数。原创 2011-02-12 15:43:00 · 4149 阅读 · 0 评论 -
Android高通平台处理器间通讯驱动
Android高通平台处理器间通讯驱动<br /> 高通平台AP与CP直接通信由Share Memory负责,这是一块两端可以同时操作的内存区域。由于高通平台Modem占主导作用,在Application Processor启动初始化时,从Share Memory区读取已经由Modem predeclared的一些数据。<br /><br />Share memory根据功能,分为静态+动态部分,每个部分又分为数个小区,每个区的大小不一,与本区实现的功能相关。Modem会把所有区的转载 2011-05-13 14:02:00 · 1284 阅读 · 0 评论 -
Linux下Android ADB驱动安装详解
Linux下Android ADB驱动安装详解收藏Linux下Android ADB驱动安装详解概述<br />最近由于内置的合作商比较多,本人使用的Ubuntu系统好多厂商的Android手机都无法正确的识别,经过一番折腾,和查阅SDK,现把Linux下ADB驱动配置的方法和当中会遇到的相关问题的解决方法整理出来贡献给大家。<br />Linux下使用手机USB调试模式连接ADB进行Android程序的调试,配置驱动没有Windows来的直观。具体步骤<br />首先确认手机连接上电脑,lsusb查看下设原创 2011-03-29 15:29:00 · 1069 阅读 · 0 评论 -
Android ADB驱动安装详解
<br /> <br />先下载android的sdk,http://developer.android.com/sdk/<br />添加环境变量<br />1.<br />首先确认手机连接上电脑,lsusb查看下设备记录。Bus 007 Device 009: ID 18d1:4e12<br /><br />2.<br />vim/etc/udev/rules.d/51-android.rules<br />SUBSYSTEM=="usb", SYSFS{"idVendor"}原创 2011-03-29 16:11:00 · 1373 阅读 · 0 评论 -
choose_freq分析
choose_freq分析1 800000:85 998400:90 1094400:80 1190400:80 1248000:80 1305600:80例子1: loadadjfreq=cpu_load*pcpu->policy->cur=92*998400循环1: prevfreq = freq=998400; tl=90(998400:90) 通过当前频率找到原创 2015-05-10 16:11:07 · 299 阅读 · 0 评论 -
android 3G pppd 调试记录
<br />android 3G pppd 调试记录。 收藏 <br />android 3G pppd 调试记录。<br />1. JAVA 部分<br />android/development/data/etc/apns-conf_sdk.xml ---> system/etc/apns-conf.xml<br />注意 apns 的版本, <br /><apns version="6"><br /><apn carrier="中国联通 3g 网络 (China Unicom)"<br />转载 2011-04-14 11:14:00 · 3939 阅读 · 0 评论 -
android-ril 分析 -radiooption
<br />先看Android.mk<br /><br /># For radiooptions binary<br /># =======================<br />include $(CLEAR_VARS)<br />LOCAL_SRC_FILES:= /<br /> radiooptions.c<br />LOCAL_SHARED_LIBRARIES := /<br /> libcutils /<br /> <br />LOCAL_CFLAGS := / <br /> <b转载 2011-04-08 15:42:00 · 2091 阅读 · 0 评论 -
android init(system/core/init/init.c)分析
http://blog.csdn.net/wuyun2009/archive/2010/06/08/5656241.aspxhttp://blog.csdn.net/evanwu_85/archive/2010/08/19/5823717.aspx原创 2011-04-07 16:46:00 · 712 阅读 · 0 评论 -
函数
<br />1. mount<br />这几天在写关于文件管理方面的程序,需要从usb host上挂载文件系统,用system调用mount程序来实现手工挂载,看了看mount函数。觉着用函数调用要好一些。 int mount(const char *source, const char *target, const char *filesystemtype, unsigned long mountflags, const void *data); source :设备 /dev/sda等 target :转载 2011-04-07 11:12:00 · 435 阅读 · 0 评论 -
安装和卸载Android应用程序(apk包)
安装和卸载Android应用程序(apk包) <br /> <br /> 一、 安装<br /> <br />1. 安装第三方应用<br />$ adb install apk文件名<br />2. 安装系统应用<br />$ adb remount<br />$ adb push apk文件名 /system/app // apk文件名形如testme.apk<br />二、 卸载<br />1. $ adb uninstall 包名原创 2011-04-01 14:46:00 · 991 阅读 · 0 评论 -
设备节点的动态建立
<br />设备节点的动态建立 收藏 <br /> 我们在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点,当然前提条件是用户空间移植了udev。 <br />内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_create(…)函数,可以用它来创建一个转载 2011-03-02 10:59:00 · 1012 阅读 · 0 评论 -
linux 下各errno的意义
<br />linux 下各errno的意义 收藏 <br />strerror(errno):获取errno对应的错误<br />/****************************获取错误代码描述**************/<br />#include <string.h> /* for strerror */<br />#include <errno.h><br />#include <stdio.h><br />int main(int argc, char ** argv)转载 2011-02-10 10:50:00 · 1324 阅读 · 0 评论 -
file system
http://blog.csdn.net/Baiduluckyboy/archive/2011/01/10/6127237.aspx原创 2011-01-12 18:05:00 · 437 阅读 · 0 评论 -
混杂设备驱动程序
<br />混杂设备驱动程序 收藏 <br /> 混杂设备驱动程序是那些简单的字符驱动程序,它们拥有一些相同的特性。内核将这些共同行抽象至一个API中(具体实现代码见 drivers/char/misc),这些简化了驱动程序的初始化的方式。所有的混杂设备都被分配一个主设备号10,但每个设备可选择一个单独的次设备号。<br />普通的字符驱动程序完成初始化的顺序如下。<br /> 1,通过alloc_chrdev_region()及相关函数分配主/次设备号。<br /> 2,使用device_cre转载 2011-01-05 19:55:00 · 1475 阅读 · 0 评论 -
为什么会产生很多僵死进程
<br />http://topic.csdn.net/t/20021111/08/1165219.html原创 2010-12-28 17:03:00 · 483 阅读 · 0 评论 -
Linux 系统对 POSIX 线程以及如何避免因此产生的线程死锁。
<br />http://blog.csdn.net/stevenliyong/archive/2009/07/20/4364039.aspx原创 2010-12-24 17:56:00 · 467 阅读 · 0 评论 -
Android HAL实例解析
<br />http://blog.csdn.net/hongtao_liu/archive/2010/12/07/6060734.aspx原创 2010-12-24 13:31:00 · 366 阅读 · 0 评论 -
linux-2.6内核模块引用计数的实现
linux-2.6内核模块引用计数的实现(try_module_get和module_put) 收藏 linux-2.6内核模块引用计数的实现作者:刘洪涛,华清远见嵌入式学院金牌讲师。一、模块使用计数的背景知识 模块是一种可以在内核运行过程中动态加载、卸载的内核功能组件。2.6内核中模块的命名方式为*.ko。模块在被使用时,是不允许被卸载的。编程时需要用“使用计数”来描述模块是否在被使用。二、2.4内核使用计数的实现方法 2.4内核中,模块自身通过 MOD_INC_USE_COUNT, MOD_转载 2010-12-22 00:48:00 · 520 阅读 · 0 评论 -
linux驱动模型学笔记——kobject&kset
linux驱动模型学笔记——kobject&kset http://blog.csdn.net/mm350670610/archive/2010/09/19/5895561.aspx原创 2010-12-20 19:53:00 · 419 阅读 · 0 评论 -
Android GSM驱动模块(rild)详细分析
http://blog.csdn.net/opendroid/archive/2009/04/13/4071149.aspx原创 2011-01-20 14:46:00 · 410 阅读 · 0 评论 -
Linux守护进程
<br />http://blog.csdn.net/beiqiao/archive/2006/01/24/587304.aspx<br />http://blog.csdn.net/hairetz/archive/2009/05/17/4195036.aspx原创 2011-01-20 15:29:00 · 288 阅读 · 0 评论 -
android的init.rc文件的语法
<br />http://blog.csdn.net/zhenwenxian/archive/2010/09/25/5904153.aspx原创 2011-01-19 13:55:00 · 356 阅读 · 0 评论 -
Android HAL实例解析
<br />http://blog.csdn.net/hongtao_liu/archive/2010/12/07/6060734.aspx原创 2011-02-28 17:38:00 · 382 阅读 · 0 评论 -
android busybox 配置
<br />1.下载busybox 源代码,解压到linux的某个目录,如/opt<br />2. 进入busybox源码目录.<br /> 先执行make menuconfig命令对编译过程进行配置. 过程如下:<br /> Busybox Settings -> Build Options -><br /> [*] Build BusyBox as a static binary (no shared libs) 这个要选上,因上这样子编译出来的busyBox才是可以独立运行的原创 2011-01-27 15:25:00 · 660 阅读 · 0 评论 -
android mount
<br />看了许多关于app2sd的帖子,里面都不可避免的涉及到mount命令的使用,但大多知其然不知其所以然,新手看上去难免一头雾水,鉴于这是一条比较危险的命令,这里对于mount命令进行一次详解。<br /> 关于具体的命令的作用网上都有,请善用google。<br /><br /> 这里重点解释这条语句的作用mount -o remount,rw -t yaffs2 /dev/block/mtdblock6 /system复制代码<br /><br /><br /> 简原创 2011-01-21 13:44:00 · 5894 阅读 · 0 评论 -
ppp拨号脚本配置
<br />摘要<br /> 本文主要介绍了嵌入式Linux系统下使用pppd 2.4.4来进行PPP拨号需要使用的脚本是如何配置的,配置项的含义,同时也说明了如何来配置参数,实现ppp拨号上网。<br />一.问题提出<br /> 嵌入式Linux操作系统下,如果要进行PPP连接,就需要配置拨号要使用的连接脚本。这些脚本参数就决定了PPPD的行为,会对PPP连接产生很大的影响。所以需要对这些脚本的参数以及具体含义有所了解。<br />二.解决思路<br />和PPP连接关系密切的有两个脚本是c转载 2011-01-21 14:39:00 · 3661 阅读 · 0 评论 -
Android.mk的用法和基础
<br />http://blog.csdn.net/zhandoushi1982/archive/2010/02/22/5316669.aspx<br /> <br />http://blog.csdn.net/chief1985/archive/2009/10/19/4699831.aspx原创 2011-01-20 16:51:00 · 291 阅读 · 0 评论 -
ANDROID中的VOLD分析(udev)
<br />http://blog.csdn.net/datangsoc/archive/2010/10/08/5928132.aspx原创 2011-01-20 10:29:00 · 626 阅读 · 0 评论 -
设备驱动模型初探
Linux驱动程序开发 - 设备驱动模型初探 收藏 序言 从这一章开始,我们将详细的介绍Linux的设备驱动模型。Linux设备驱动模型是一个相当复杂的系统,对于初学者来说真有些无从入手。而且更加困难的是,随着新的Linux Kernel的release,Linux的设备驱动模型总会有或大或小的变化,我们将尽量展现 Linux Kernel 的这种变化。早期的Linux内核(版本2.4之前)并没有实现一个统一的设备模型,设备节点的创建一般是mknod命令手动创建或利用devfs文件系统创建。早期的Linux转载 2010-12-20 17:44:00 · 628 阅读 · 0 评论