<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dadahacker的笔记]]></title><description><![CDATA[世上无难事只怕有心人！]]></description><link>https://blog.csdn.net/dadahacker</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; dadahacker]]></copyright><item><title><![CDATA[linux驱动程序调试常用方法]]></title><link>https://blog.csdn.net/dadahacker/article/details/14132383</link><guid>https://blog.csdn.net/dadahacker/article/details/14132383</guid><author>dadahacker</author><pubDate>Mon, 04 Nov 2013 19:25:42 +0800</pubDate><description><![CDATA[驱动程序开发的一个重大难点就是不易调试。本文目的就是介绍驱动开发中常用的几种直接和间接的调试手段，它们是：

利用printk查看OOP消息利用strace利用内核内置的hacking选项利用ioctl方法利用/proc 文件系统使用kgdb

一、利用printk

这是驱动开发中最朴实无华，同时也是最常用和有效的手段。scull驱动的main.c第338行如下，就是使用printk]]></description><category></category></item><item><title><![CDATA[一个用递归遍历目录文件的脚本]]></title><link>https://blog.csdn.net/dadahacker/article/details/7222082</link><guid>https://blog.csdn.net/dadahacker/article/details/7222082</guid><author>dadahacker</author><pubDate>Tue, 31 Jan 2012 14:50:23 +0800</pubDate><description><![CDATA[非常实用的工具，随手拿着











 





#!/bin/sh
listdir(){
for file in
"$1"/*
do
if 
[ -d "$file"
] 
then
listdir "$file"
elif 
[ -f "$file"
]
then
ls -l 
"$file"
fi
done]]></description><category></category></item><item><title><![CDATA[linux 生成和使用动态链接库和静态链接库的Makefile编写]]></title><link>https://blog.csdn.net/dadahacker/article/details/7108260</link><guid>https://blog.csdn.net/dadahacker/article/details/7108260</guid><author>dadahacker</author><pubDate>Wed, 28 Dec 2011 11:13:53 +0800</pubDate><description><![CDATA[生成和使用动态链接库和静态链接库的Makefile编写
1. 概述
介绍linux下生成和使用动态链接库和静态链接库的Makefile的编写方法。

2. 生成动态链接库的Makefile
首先要有一个c或c++等工具编写出来的库函数文件，也就是里面写了一堆可以被别的函数调用的函数。比如：

aaa.cpp
#include 
void pf1(void)
{
    pri]]></description><category></category></item><item><title><![CDATA[如何安装mkimage工具]]></title><link>https://blog.csdn.net/dadahacker/article/details/7108068</link><guid>https://blog.csdn.net/dadahacker/article/details/7108068</guid><author>dadahacker</author><pubDate>Wed, 28 Dec 2011 10:32:13 +0800</pubDate><description><![CDATA[beyond@ubuntu:~/dev/arch/arm/boot$ sudo apt-cache search mkimage
jigit - tools for working with jigdo files
uboot-mkimage - generate kernel image for U-Boot
beyond@ubuntu:~/dev/arch/arm/boot$ sudo]]></description><category></category></item><item><title><![CDATA[Linux 脚本编写基础]]></title><link>https://blog.csdn.net/dadahacker/article/details/7104596</link><guid>https://blog.csdn.net/dadahacker/article/details/7104596</guid><author>dadahacker</author><pubDate>Mon, 26 Dec 2011 23:58:27 +0800</pubDate><description><![CDATA[This is the basic information about linux,please review it as you can .
 

copy from http://www.linuxdiyf.com/viewarticle.php?id=20338



1. Linux 脚本编写基础
1.1 语法基本介绍
1.1.1 开头
程序必须以下面的行开始（必须方在]]></description><category></category></item><item><title><![CDATA[Porting WiFi drivers to Android]]></title><link>https://blog.csdn.net/dadahacker/article/details/7045482</link><guid>https://blog.csdn.net/dadahacker/article/details/7045482</guid><author>dadahacker</author><pubDate>Tue, 06 Dec 2011 11:58:59 +0800</pubDate><description><![CDATA[写的非常好。原文在：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]]></description><category></category></item><item><title><![CDATA[Linux中的work queue]]></title><link>https://blog.csdn.net/dadahacker/article/details/6995995</link><guid>https://blog.csdn.net/dadahacker/article/details/6995995</guid><author>dadahacker</author><pubDate>Mon, 21 Nov 2011 11:57:27 +0800</pubDate><description><![CDATA[这篇文章http://blog.sina.com.cn/s/blog_55465b470100qmrc.html
讲的非常通俗易懂，当做笔记，备份了。
 
工作队列(work queue)是Linux
 kernel中将工作推后执行的一种机制。这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行，因此工作队列的优势就在于它允许重新调度甚至睡眠。
工作队]]></description><category></category></item><item><title><![CDATA[Android安装Google程序]]></title><link>https://blog.csdn.net/dadahacker/article/details/6891828</link><guid>https://blog.csdn.net/dadahacker/article/details/6891828</guid><author>dadahacker</author><pubDate>Thu, 20 Oct 2011 20:01:23 +0800</pubDate><description><![CDATA[非常有用，独乐了不如众乐乐。

AndroidMarket：
去这个地址把补丁下载下来：
http://wiki.cyanogenmod.com/index.php?title=Latest_Version#Google_Apps
把里面的GoogleServicesFramework.apk和Vending.apk复制到/system/app下面就行了。
注意：内核必须为/cache]]></description><category></category></item><item><title><![CDATA[dlopen dlsym dlclose解析]]></title><link>https://blog.csdn.net/dadahacker/article/details/6559532</link><guid>https://blog.csdn.net/dadahacker/article/details/6559532</guid><author>dadahacker</author><pubDate>Tue, 21 Jun 2011 20:01:00 +0800</pubDate><description><![CDATA[copy from :http://blog.csdn.net/yujixi123/archive/2010/07/28/5772117.aspx讲的很清楚，就当是笔记。 1.  打开动态链接库：    #include     void *dlopen(const char *filename, int flag);    该函数返回操作句柄，如：    void *]]></description><category></category></item><item><title><![CDATA[Android NFC Porting 1]]></title><link>https://blog.csdn.net/dadahacker/article/details/6554686</link><guid>https://blog.csdn.net/dadahacker/article/details/6554686</guid><author>dadahacker</author><pubDate>Sun, 19 Jun 2011 14:59:00 +0800</pubDate><description><![CDATA[Dear all:   因为工作需要，给客户porting一个nfc 的android设备。所以新建了这样一个NFC的文章分类。记录在学习过程中的点点滴滴。      Q1：何为NFC？ 　　NFC（Near Field Communication）是一种采用13.56MHz频带的近距离无线通信技术。虽然通信距离仅为10cm左右，不过和非接触式IC卡技术一样，“只需碰一下”，便可在]]></description><category></category></item><item><title><![CDATA[Android Native C Log]]></title><link>https://blog.csdn.net/dadahacker/article/details/6441811</link><guid>https://blog.csdn.net/dadahacker/article/details/6441811</guid><author>dadahacker</author><pubDate>Tue, 24 May 2011 11:08:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[AT指令简编]]></title><link>https://blog.csdn.net/dadahacker/article/details/6358999</link><guid>https://blog.csdn.net/dadahacker/article/details/6358999</guid><author>dadahacker</author><pubDate>Sun, 24 Apr 2011 16:29:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[Android Init Language]]></title><link>https://blog.csdn.net/dadahacker/article/details/6331294</link><guid>https://blog.csdn.net/dadahacker/article/details/6331294</guid><author>dadahacker</author><pubDate>Mon, 18 Apr 2011 15:29:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[Linux 下串口编程入门]]></title><link>https://blog.csdn.net/dadahacker/article/details/6326998</link><guid>https://blog.csdn.net/dadahacker/article/details/6326998</guid><author>dadahacker</author><pubDate>Sat, 16 Apr 2011 01:46:00 +0800</pubDate><description><![CDATA[<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]]></description><category></category></item><item><title><![CDATA[Win32串口编程]]></title><link>https://blog.csdn.net/dadahacker/article/details/6326977</link><guid>https://blog.csdn.net/dadahacker/article/details/6326977</guid><author>dadahacker</author><pubDate>Sat, 16 Apr 2011 01:12:00 +0800</pubDate><description><![CDATA[<br /> 非常好的一篇文章，介绍了串口通讯的过程，虽然是Win32,但是对于其他的平台也是相当的有启发的。<br />转自：http://www.vckbase.com/document/viewdoc/?id=1734<br /> <br /> <br /> <br />在工业控制中，工控机（一般都基于Windows平台）经常需要与智能仪表通过串口进行通信。串口通信方便易行，应用广泛。<br />
		一般情况下，工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的，只能由作]]></description><category></category></item><item><title><![CDATA[双工 和 半双工]]></title><link>https://blog.csdn.net/dadahacker/article/details/6326962</link><guid>https://blog.csdn.net/dadahacker/article/details/6326962</guid><author>dadahacker</author><pubDate>Sat, 16 Apr 2011 00:53:00 +0800</pubDate><description><![CDATA[全双工（Full Duplex）是：<br />
         在微处理器与外围设备之间采用发送线和接受线各自独立的方法，可以使数据在两个方向上同时进行传送操作。<br />
        指在发送数据的同时也能够接收数据，两者同步进行，这好像我们平时打电话一样，说话的同时也能够听到对方的声音。<br />
        目前的网卡一般都支持全双工。 <br />
半双工（Half Duplex）：<br />
      所谓半双工就是指一个时间段内只有一个动作发生，举个简单例子，一条窄]]></description><category></category></item><item><title><![CDATA[Android 显示不满屏的问题解决]]></title><link>https://blog.csdn.net/dadahacker/article/details/6282873</link><guid>https://blog.csdn.net/dadahacker/article/details/6282873</guid><author>dadahacker</author><pubDate>Mon, 28 Mar 2011 10:21:00 +0800</pubDate><description><![CDATA[<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 ]]></description><category></category></item><item><title><![CDATA[Android Telechips89xx背光控制流程]]></title><link>https://blog.csdn.net/dadahacker/article/details/6268877</link><guid>https://blog.csdn.net/dadahacker/article/details/6268877</guid><author>dadahacker</author><pubDate>Tue, 22 Mar 2011 19:01:00 +0800</pubDate><description><![CDATA[<br />Android Telechips89xx背光控制流程<br />

Rocky@20110322<br /><br />

这里我们以Telechips89xx背光控制来示例讲解一下Android2.1下的背光控制。<br /><br />

这个分成几个部分：<br /><br />

*********************************************<br />

应用层调用<br />

Framework层<br />

Hardwa]]></description><category></category></item><item><title><![CDATA[IMEI]]></title><link>https://blog.csdn.net/dadahacker/article/details/6259522</link><guid>https://blog.csdn.net/dadahacker/article/details/6259522</guid><author>dadahacker</author><pubDate>Fri, 18 Mar 2011 16:59:00 +0800</pubDate><description><![CDATA[<br />MEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写，国际移动装备辨识码，是由15位数字组成的"电子串号

"，它与每台手机一一对应，而且该码是全世界唯一的。每一只手机在组装完成后都将被赋予一个全球唯一的一组号码，这个号码从生产到交付使用都将被制造生产的厂商所记录。<br /> MEI分配<br />　　IMEI码由GSM

（全球移动通信协会）统一分配，授权BABT（英国通信认证管理委员会）审受.IMEI组成<br />  ]]></description><category></category></item><item><title><![CDATA[Android BOOT Time 优化]]></title><link>https://blog.csdn.net/dadahacker/article/details/6256046</link><guid>https://blog.csdn.net/dadahacker/article/details/6256046</guid><author>dadahacker</author><pubDate>Thu, 17 Mar 2011 13:54:00 +0800</pubDate><description><![CDATA[<br />Android BOOT Time 优化<br />
Rocky@20110317<br /><br />
 Android的启动和大多数的智能手机设备都一个通病，都是启动比较慢。这里的速度优化并不是从源代码的角度来优化，因为我相信Google已经做了非常多的工作。但是每个人的机器是不一样的。特别是我们做MID，产品差别很大，有必要针对自己的产品做一些裁剪工作，用这个裁剪来优化我们的开机速度。<br />
 <br />
Android开机流程:<br />
 <br />
 Boo]]></description><category></category></item></channel></rss>