- 博客(192)
- 资源 (11)
- 收藏
- 关注
转载 linux驱动程序调试常用方法
驱动程序开发的一个重大难点就是不易调试。本文目的就是介绍驱动开发中常用的几种直接和间接的调试手段,它们是:利用printk查看OOP消息利用strace利用内核内置的hacking选项利用ioctl方法利用/proc 文件系统使用kgdb一、利用printk这是驱动开发中最朴实无华,同时也是最常用和有效的手段。scull驱动的main.c第338行如下,就是使用printk
2013-11-04 19:25:42
1890
转载 一个用递归遍历目录文件的脚本
非常实用的工具,随手拿着 #!/bin/shlistdir(){for file in"$1"/*doif [ -d "$file"] thenlistdir "$file"elif [ -f "$file"]thenls -l "$file"fidone
2012-01-31 14:50:23
1061
转载 linux 生成和使用动态链接库和静态链接库的Makefile编写
生成和使用动态链接库和静态链接库的Makefile编写1. 概述介绍linux下生成和使用动态链接库和静态链接库的Makefile的编写方法。2. 生成动态链接库的Makefile首先要有一个c或c++等工具编写出来的库函数文件,也就是里面写了一堆可以被别的函数调用的函数。比如:aaa.cpp#include void pf1(void){ pri
2011-12-28 11:13:53
15442
1
转载 如何安装mkimage工具
beyond@ubuntu:~/dev/arch/arm/boot$ sudo apt-cache search mkimagejigit - tools for working with jigdo filesuboot-mkimage - generate kernel image for U-Bootbeyond@ubuntu:~/dev/arch/arm/boot$ sudo
2011-12-28 10:32:13
8466
2
转载 Linux 脚本编写基础
This is the basic information about linux,please review it as you can . copy from http://www.linuxdiyf.com/viewarticle.php?id=203381. Linux 脚本编写基础1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在
2011-12-26 23:58:27
968
转载 Porting WiFi drivers to Android
写的非常好。原文在:http://blog.linuxconsulting.ro/2010/04/porting-wifi-drivers-to-android.html。咱就缺这。Update(19/05/2011): Verify validity against Gingerbread.Update (11/08/2010): Updated patch to fix
2011-12-06 11:58:59
1090
转载 Linux中的work queue
这篇文章http://blog.sina.com.cn/s/blog_55465b470100qmrc.html讲的非常通俗易懂,当做笔记,备份了。 工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势就在于它允许重新调度甚至睡眠。工作队
2011-11-21 11:57:27
639
原创 Android安装Google程序
非常有用,独乐了不如众乐乐。AndroidMarket:去这个地址把补丁下载下来:http://wiki.cyanogenmod.com/index.php?title=Latest_Version#Google_Apps把里面的GoogleServicesFramework.apk和Vending.apk复制到/system/app下面就行了。注意:内核必须为/cache
2011-10-20 20:01:23
822
转载 dlopen dlsym dlclose解析
copy from :http://blog.youkuaiyun.com/yujixi123/archive/2010/07/28/5772117.aspx讲的很清楚,就当是笔记。 1. 打开动态链接库: #include void *dlopen(const char *filename, int flag); 该函数返回操作句柄,如: void *
2011-06-21 20:01:00
1333
原创 Android NFC Porting 1
Dear all: 因为工作需要,给客户porting一个nfc 的android设备。所以新建了这样一个NFC的文章分类。记录在学习过程中的点点滴滴。 Q1:何为NFC? NFC(Near Field Communication)是一种采用13.56MHz频带的近距离无线通信技术。虽然通信距离仅为10cm左右,不过和非接触式IC卡技术一样,“只需碰一下”,便可在
2011-06-19 14:59:00
2714
原创 Android Native C Log
<br />Android Native C Log<br />//Rocky@20110524<br /><br />我们在做Android java的时候,为了调试我们经常使用Log.i,Log.d等等log函数,这样非常方便我们调试使用。但是<br />如果是我们在使用Native C在做的时候,实际上也是可以利用LOG来输出调试信息的。查看方式一样。<br />有两种方式:<br /><br />方式一:<br /><br /> 包含#include <utils/Lo
2011-05-24 11:08:00
6960
翻译 AT指令简编
<br />AT命令<br />一. 一般命令<br />1.AT+CGMI 给出模块厂商的标识。<br />2.AT+CGMM 获得模块标识。这个命令用来得到支持的频带(GSM 900,DCS 1800 或<br />PCS 1900)。当模块有多频带时,回应可能是不同频带的结合。<br />3.AT+CGMR 获得改订的软件版本。<br />4.AT+CGSN 获得GSM 模块的IMEI(国际移动设备标识)序列号。<br />5.AT+CSCS 选择TE 特征设定。这个命令报告T
2011-04-24 16:29:00
898
翻译 Android Init Language
<br /><br />Android Init Language<br />---------------------<br /><br />The Android Init Language consists of four broad classes of statements,<br />which are Actions, Commands, Services, and Options.<br /><br />All of these are line-oriented, co
2011-04-18 15:29:00
931
转载 Linux 下串口编程入门
<br /> 上一篇我转载了一个Win32串口编程,这里我们也有一篇简单的介绍Linux下串口编程入门。比较下,发现方法是一样的,只是操作系统不同,使用了不同的API来表现而已。<br /> 转自: http://www.ibm.com/developerworks/cn/linux/l-serials/<br /> <br /> <br />串口简介<br />串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-232-C
2011-04-16 01:46:00
614
转载 Win32串口编程
<br /> 非常好的一篇文章,介绍了串口通讯的过程,虽然是Win32,但是对于其他的平台也是相当的有启发的。<br />转自:http://www.vckbase.com/document/viewdoc/?id=1734<br /> <br /> <br /> <br />在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。<br /> 一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作
2011-04-16 01:12:00
673
翻译 双工 和 半双工
全双工(Full Duplex)是:<br /> 在微处理器与外围设备之间采用发送线和接受线各自独立的方法,可以使数据在两个方向上同时进行传送操作。<br /> 指在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音。<br /> 目前的网卡一般都支持全双工。 <br />半双工(Half Duplex):<br /> 所谓半双工就是指一个时间段内只有一个动作发生,举个简单例子,一条窄
2011-04-16 00:53:00
1083
原创 Android 显示不满屏的问题解决
<br />Android 显示不满屏的问题解决<br /><br />Rocky@20110328<br /><br /><br /> 从Android1.6以后的版本都是支持Density这个特性的。<br /> Density有三组固定不变的值。<br /> <br /> Hight Density 240<br /> Medium Density 160<br /> Low Density 120<br
2011-03-28 10:21:00
13434
2
原创 Android Telechips89xx背光控制流程
<br />Android Telechips89xx背光控制流程<br />Rocky@20110322<br /><br />这里我们以Telechips89xx背光控制来示例讲解一下Android2.1下的背光控制。<br /><br />这个分成几个部分:<br /><br />*********************************************<br />应用层调用<br />Framework层<br />Hardwa
2011-03-22 19:01:00
2996
3
原创 IMEI
<br />MEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一只手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。<br /> MEI分配<br /> IMEI码由GSM(全球移动通信协会)统一分配,授权BABT(英国通信认证管理委员会)审受.IMEI组成<br />
2011-03-18 16:59:00
1323
原创 Android BOOT Time 优化
<br />Android BOOT Time 优化<br />Rocky@20110317<br /><br /> Android的启动和大多数的智能手机设备都一个通病,都是启动比较慢。这里的速度优化并不是从源代码的角度来优化,因为我相信Google已经做了非常多的工作。但是每个人的机器是不一样的。特别是我们做MID,产品差别很大,有必要针对自己的产品做一些裁剪工作,用这个裁剪来优化我们的开机速度。<br /> <br />Android开机流程:<br /> <br /> Boo
2011-03-17 13:54:00
3726
原创 Android Android.mk 文件一点感悟
<br />//Rocky@20110312<br />Android.mk文件时android 中的一个非常重要的概念。我们有以下几个方便的时候需要使用它。<br /><br />1:添加新的apk源码文件编译。这里我们先参考下AlarmClock的Android.mk文件<br /><br />LOCAL_PATH:= $(call my-dir)<br />include $(CLEAR_VARS)<br /><br />LOCAL_SRC_FILES := $(call all-
2011-03-12 17:45:00
1808
原创 Android 内核 Makefile入门
//Rocky@20110312Android 内核 Makefile入门Makefile文件极其复杂,语法规则如同江水之多,但是我们本着实用解决问题的原则,只去一瓢,够用就可以。内核模块或者设备驱动开发者经常接触的Makefile语法包含以下几个部分。一:目标定义: 目标定义用来定义哪些内容要作为模块编译,哪些内容要编译进内核。 例如1: obj-y +=foo.o 表示要由foo.c或者foo.s文件编译得到foo.
2011-03-12 11:35:00
1929
原创 Linux 内核脚本文件Kconfig
<br />//Rocky@20110312<br />Android Kconfig 入门<br /><br />万事开头难,希望可以说明白Linux内核脚本文件的语法。本文只讲基础简单入门型的。<br /><br />内核脚本文件语法主要包含以下几个方面<br /><br />一:菜单入口config<br /><br /><br /> 大多数的内核配置文件都对应Kconfig的一个菜单入口。也就是一项。最常见的如下所示:<br /> <br />
2011-03-12 10:46:00
2441
1
原创 android 往 Framework中添加新的资源
<br />有时候我们想在标准的Framework中添加自己的新的资源怎么办呢?<br />办法就是我们来尝试下。<br /> <br />通过Eclipse的联系,我们可以联想到是否就是简单的把字符串放在res的各个文件夹里面。先来试试看,编译,系统立即报错。为什么呢?<br />它提示你利用make update-api这个命令来更新public.xml文件或者把这个声明称hide类型。这个肯定不是我们想要的。<br /> <br />所以方法有二:<br /> <br />方法1:正常添加完资源后,执
2011-03-11 12:31:00
3796
1
转载 内核定时器
/2.6.23/一、定义:/include/linux/timer.hstruct timer_list {struct list_head entry;unsigned long expires;void (*function)(unsigned long);unsigned long data;struct tvec_t_base_s *base;#ifdef CONFIG_TIMER_STATSvoid *start_site;char start_comm[16];
2011-03-04 13:46:00
857
原创 Android Tween Animation
<br /> <br />Android支持动画效果。常见的有Tween Animation和Frame Animation.其中Frame Animation我们在墙面介绍过了,它比较简单。这里来介绍下Tween<br /> <br />Tween Animation 常见可以分成四种:<br /> <br />ScaleAnimation :渐变尺寸伸缩效果<br />AlphaAnimation :渐变透明度动画效果<br />TranslateAnimat
2011-02-26 18:14:00
831
原创 Android 游戏开发之 SurfaceView
<br /> 当我们从事复杂的图像绘制或者对程序的执行效率要求比较高的时候,我们会发现View是不能满足需求的。View是widget框架下的一个直接拖拉的控件产物。例如我们需要使用双缓冲来显示,直接访问画布canvas.这些都导致了我们需要比View更加强大的SurfaceView的出现。<br /> 在使用SurfaceView的时候我们需要注意的是,使用他们绘图的时候,一般都是出现在最顶层的。使用时需要对其进行创建、销毁、情况改变时进行监视,这个需要实现SurfaceHolder.Callb
2011-02-26 15:15:00
1521
原创 Android 之 ProgressDialog
<br />ProgressDialog 类似于ProgressBar,都是用于显示进度,区别是一个是控件一个是对话框。<br />ProgressDialog有两种形式一个是STYLE_SPINNER,STYLE_HORIZONTAL。<br />其中前者没有固定值,后者可以设置最大值和当前值。<br /> <br />下面直接给出一个实例。<br /> <br /> <br />package com.rocky.demo;import android.app.Activity;import a
2011-02-25 18:50:00
6875
原创 Android Layout xml 中的几个概念
<br />Android 文章第一抄,下面的这些东西是转自Android Developer Help上面的。他们上面说的很详细。我这里就转载一下,特别提醒下自己。<br /> <br />Android Layout Attributes 的一些不容易理解的地方。android:padding <br /> Padding is defined as space between the edges of the view and the view's con
2011-02-24 15:50:00
1736
原创 Android 游戏开发值 2 View
<br /> <br /> <br /> 首先声明,View类是Android的一个超类,这个类几乎包含了所有的屏幕类型。每一个View都有一个用于绘图的画布,这个画布可以进行任意的扩展。在Android中任何一个View类都只有重写OnDraw方法来实现界面显示。<br /> 游戏(或者普通的APP)最重要的是和用户交互,例如键盘,触摸笔,我们需要来处理这些事件。Android中提供了onKeyUP,OnKeyDown,OnKeyMultiple,OnKeyPreIme,OnTouchEv
2011-02-23 15:52:00
1100
1
原创 为Ubuntu Server 添加硬盘
<br />公司的服务器的硬盘空间不够了。必须加硬盘,买了块2TB的硬盘,记录下整个安装过程。<br /> <br />1:2TB硬盘一块,SATA接口,请注意购买的时候要索要数据线和电源线。你的主机里面不一定备有。<br />2:拆机安装,这里一般比较简单。注意一点就是顺序。一定要接在SATA线的后面,不要混乱了之前的SATA线的关系。否则导致之前的硬盘A,B路径是<br />/dev/sda (A硬盘)<br />/dev/sdb (B硬盘)<br />再安装一块的话,如果不是连续的话,就变成了
2011-01-27 16:18:00
3609
转载 小知识: 软件版本号讲解:什么是Alpha, Beta, RC
<br />1. 软件版本阶段说明<br />* Alpha版: 此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,一般而言,该版本软件的Bug较多,需要继续修改。<br />* Beta版: 该版本相对于α版已有了很大的改进,消除了严重的错误,但还是存在着一些缺陷,需要经过多次测试来进一步消除,此版本主要的修改对像是软件的UI。<br />* RC版: 该版本已经相当成熟了,基本上不存在导致错误的BUG,与即将发行的正式版相差无几。<br />* Release版:
2011-01-25 14:12:00
1303
1
原创 你真的清楚ASCII,Unicode和UTF-8吗?
<br />大家静一静,请问:你真的清楚ASCII,Unicode和UTF-8吗?<br />这个问题很棘手,从网络上找了一篇讲叙的很好的文章,大家共同分享:<br /> <br />1. ASCII码<br />我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从000000
2011-01-25 10:59:00
1255
原创 Android 外接键盘的按键处理
<br />Android是默认支持键盘的,但是支持的不够好,所以需要我们自己根据自己的键盘来修改。<br />Android键盘的默认配置路径是sdk/emulator/keymaps<br />有两个最重要的文件:<br />qwerty.kl 默认的KeyLayout文件,是映射键盘物理矩阵的ScanCode到系统的KeyCode的一个关系。这个需要我们事先知道我们的键盘矩阵值。如果厂家不提供,就自己一个一个Log打印。<br /> <br />这个文件的格式,很多网络的资料都提供,可以了解下。下面只
2011-01-25 09:47:00
17738
1
原创 Ubuntu Server 意外断电
<br />公司使用的是Ubuntu 10.04 server 64 bit的版本,当出现意外断电或者关机不正常的时候,经常出现的问题 file system error .<br /> <br />这个时候系统就进步去了。<br /> <br />处理步骤。<br /> <br />键入键盘,会调过提示,不装载发现错误的分区。<br />然后登陆。<br />然后键入<br />sudo fsck -y <br />完了以后再重启就可以了。<br /> <br />描述过于简单,我自己看的明白,以后要用的
2010-11-08 17:44:00
1337
转载 android 事件传递机制
在系统启动过程中,会加载驱动程序,初始化硬件设备,会进入bool EventHub::openPlatformInput(void)这个函数,该函数主要功能是扫描/dev/input该目录,获取输入设备。如何获取呢?通过linux API res = scan_dir(device_path); 该函数叫while((de = readdir(dir))) { strcpy(filename, de->d_name); open_device(devnam
2010-10-29 11:19:00
1623
1
转载 Linux内核的Makefile和kconfig解读
<br />这篇文件太经典,通俗易懂。转自:<br />http://edu.sctv.com/itpx/201009/t20100914_483970.shtml<br /> <br />一、概述<br /> 在内核编译中如何将各个目录树中的文件组织起来编译是一个很重要的问题,并且要根据用户配置来编译特有的内核。为了解决这个问题,内核使用两种文件,Makefie和Kconfig。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核
2010-09-24 16:36:00
1252
2
原创 Android JNI 面面观3
Andoird 中使用了一种不同传统Java JNI的方式来定义其native的函数。其中很重要的区别是Andorid使用了一种Java 和 C 函数的映射表数组,并在其中描述了函数的参数和返回值。这个数组的类型是JNINativeMethod,定义如下: typedef struct { const char* name; const char* signature; void* fnPtr; } JNINativeMethod; 第一个变量name是Java中函数的名字。 第二个变量 si
2010-09-18 13:52:00
517
原创 Android JNI 面面观 1
NI是Java Native Interface的缩写,译为Java本地接口。它允许Java代码和其他语言编写的代码进行交互。在android中提供JNI的方式,让Java程序可以调用C语言程序。android中很多Java类都具有native接口,这些接口由本地实现,然后注册到系统中。 主要的JNI代码放在以下的路径中:frameworks/base/core/jni/,这个路径中的内容被编译成库 libandroid_runtime.so,这是个普通的动态库,被放置在目标系统的/syst
2010-09-18 13:51:00
615
原创 Android JNI 面面观 2
JNI 是Java Native Interface。 Java Native Interface (JNI)标准成为java平台的一部分, 它允许Java代码和其他语言写的代码进行交互。 JNI 是本地编程接口。它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码 能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行互操作。 下面就是我在 Android 环境中一个Test JNI 的代码。 1. // TestNativeApi.java
2010-09-18 13:50:00
900
GNU make中文手册
2011-02-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人