摘要: uboot使用uboot控制台,倒计时命令: 调试,操作一些硬件setenv printenv saveenvnand erasenand writetftp 20008000 zImagehelp: uboot可以提供哪些命令setenv == set == sete == seten环境变量: ... 阅读全文
posted @ 2014-06-22 15:49 Leo.cheng 阅读(8021) 评论(0) 推荐(1) 编辑
摘要: dm9000的驱动分析m9000_initplatform_driver_register(&dm9000_driver);dm9000_probe/*获取平台数据*/struct dm9000_plat_data *pdata = pdev->dev.platform_data;/*表示一个网络设... 阅读全文
posted @ 2014-06-22 15:45 Leo.cheng 阅读(2161) 评论(0) 推荐(0) 编辑
摘要: 两个重要的结构体简单介绍*sk_buff如果把网络传输看成是运送货物的话,那么sk_buff就是这个“货物”了,所有经手这个货物的人都要干点什么事儿,要么加个包装,要么印个戳儿等等。收货的时候就要拆掉这些包装,得到我们需要的货物(payload data)。没有货物你还运输什么呢?由此可见sk_bu... 阅读全文
posted @ 2014-06-22 15:44 Leo.cheng 阅读(1257) 评论(0) 推荐(0) 编辑
摘要: 1.i2c-dev.c(i2c设备驱动组件层)功能:1)给用户提供接口i2c_dev_init//入口函数/*申请主设备号*/register_chrdev(I2C_MAJOR(89), "i2c", &i2cdev_fops);/*创建一个设备类*/i2c_dev_class = class_cr... 阅读全文
posted @ 2014-06-22 15:43 Leo.cheng 阅读(1777) 评论(0) 推荐(0) 编辑
摘要: 触摸屏工作原理触摸屏工作流程@成鹏致远(blogs:http://lcw.cnblogs.com)(email:wwwlllll@126.com)(qq:552158509)From WizNote 阅读全文
posted @ 2014-06-22 15:42 Leo.cheng 阅读(698) 评论(0) 推荐(0) 编辑
摘要: 触摸屏驱动的移植流程注意:看框架图1.添加input.c组件Device Drivers--->Input device support--->Generic input layer (needed for keyboard, mouse, ...)2.添加evdev.c组件Device Drive... 阅读全文
posted @ 2014-06-22 15:39 Leo.cheng 阅读(3731) 评论(0) 推荐(0) 编辑
摘要: 【1.input子系统框架(drivers\input)】如何得出某个驱动所遵循的框架?1) 通过网络搜索2) 自己想办法跟内核代码!2.1 定位此驱动是属于哪种类型的(触摸屏驱动为字符设备)2.2 搜索register_chrdev得到,input.c2.3 分析input.c文件/*入口函数*/... 阅读全文
posted @ 2014-06-22 15:36 Leo.cheng 阅读(1443) 评论(0) 推荐(1) 编辑
摘要: 【平台设备驱动机制的编程流程】【如何将驱动静态的编译进内核镜像】1.添加资源(dev-led.c)1.1:一般来说,系统习惯上将资源放在arch/arm/plat-samsung/目录中cp dev-led.c linux-2.6.35.5/arch/arm/plat-samsung cp led.... 阅读全文
posted @ 2014-06-22 15:34 Leo.cheng 阅读(630) 评论(0) 推荐(0) 编辑
摘要: 【1.分层思想】1.1 rtc-dev.c //设备接口层,功能:给用户提供接口subsys_initcall(rtc_init);//module_init(rtc_init)//rtc/class.c/*创建一个设备类*/rtc_class = class_create(THIS_MODULE,... 阅读全文
posted @ 2014-06-22 15:29 Leo.cheng 阅读(1241) 评论(0) 推荐(0) 编辑
摘要: 【1:引言: linux字符设备驱动的基本编程流程】1.实现模块加载函数 a.申请主设备号 register_chrdev(major,name,file_operations); b.创建字符设备cdev,注册字符设备 cdev_alloc cdev_init cdev_add c.创建设备文件... 阅读全文
posted @ 2014-06-22 15:17 Leo.cheng 阅读(1969) 评论(0) 推荐(1) 编辑
摘要: 【系统环境搭建】1.uboot的命令set serverip 192.168.7.xxset ipaddr 192.168.7.xxxset bootcmd tftp 20800000 zImage\;bootm 20800000 //开发模式set bootcmd nand read 208... 阅读全文
posted @ 2014-06-01 00:23 Leo.cheng 阅读(842) 评论(0) 推荐(0) 编辑
摘要: 【VI使用】1、在命令行模式:在vi编辑器中将光标放在函数上,shift + k可直接man手册,退出man手册直接按两次q:直接gg=G可以使文件自动对齐:gg定位到文件的开头,G定位到文件的末尾:M定位到文件的中间,H最上面一行,L屏幕最下面一行,G文章末尾一行:shift+ctrl+n打开一个... 阅读全文
posted @ 2014-05-31 23:39 Leo.cheng 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 【ARM编程模型】硬件: 电路原理图软件:体系结构, 指令集, 寄存器组【ARM编程技术】汇编/C语言编译, 链接, 烧写和调试windows:MDKlinux :gcc【ARM接口编程】电路原理图datasheet ------> 裸机程序(不带操作系统,直接操作硬件)中断技术初始化程序【ARM基... 阅读全文
posted @ 2014-05-31 23:06 Leo.cheng 阅读(2068) 评论(0) 推荐(0) 编辑
摘要: 第一类:属性值 true或者 falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:layout_alignP... 阅读全文
posted @ 2014-05-24 11:37 Leo.cheng 阅读(1074) 评论(0) 推荐(0) 编辑
摘要: 1.ctrl+shift+r:打开资源这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。 2.ctrl+o:快速outline如果想要查看当前... 阅读全文
posted @ 2014-04-28 23:50 Leo.cheng 阅读(485) 评论(0) 推荐(0) 编辑
摘要: ListViewListView下拉刷新:https://github.com/johannilsson/android-pulltorefreshAndroidPullToRefresh:https://github.com/chrisbanes/Android-PullToRefreshDrag... 阅读全文
posted @ 2014-04-25 23:06 Leo.cheng 阅读(1452) 评论(0) 推荐(0) 编辑
摘要: 这里说的开发规范分成目录规范,项目和包名的命名规范,类,方法,变量和常量的命名规范这几种。目录规范 目录规范——在开发中整体文件夹组织结构。Requirement——需求文档文件夹Design——设计文档文件夹Test——集成测试,系统测试,测试报告,测试清单文件夹Deployment——发布部署的文件夹Study——预研,学习资料的文件夹Src——源码文件夹Help——帮助文档文件夹 这么组织文件有什么好处,就是一个项目做完以后,所有的资料就也完成了,结构一目了然。常见的命名方法匈牙利命名法:该命名法是在每个变量名的前面加上若干表示数据类型的字符。基本原则是:变量名=属性+类型+对象... 阅读全文
posted @ 2014-03-23 16:08 Leo.cheng 阅读(4736) 评论(0) 推荐(3) 编辑
摘要: 快捷方式方法注释的快捷键:ALT+SHIFT+J格式化:Ctrl+Shift+F把当前选中的文本全部变味大写:Ctrl+Shift+X把当前选中的文本全部变为小写:Ctrl+Shift+Y快速修复:Ctrl+1重命名:Alt+Shift+R /F2删除当前行 :Ctrl+D抽取方法 :Alt+Shift+M抽取局部变量 :Alt+Shift+L 复制当前行到下一行:Ctrl+Alt+↓复制当前行到上一行:Ctrl+Alt+↑定位在某行:Ctrl+L字符编码设置工作空间的项目编码,防止出现乱码Window-Preferences-General-Workspace将"Textfilee 阅读全文
posted @ 2014-03-16 15:25 Leo.cheng 阅读(774) 评论(5) 推荐(0) 编辑
摘要: 准则 下面的这些设计准则是为了让Android的用户体验团队保持用户最佳的体验而发明设计的。 把他们融合到你的创造力中,作为你的设计理念,而不是有意地去使用。吸引我 用惊奇的方式来取悦我一个漂亮的界面,一个用心安排的动画或是恰到好处的音效都是一段很棒的用户体验。微妙的效果可以使人感觉毫不费力,并且感到手中有一股强大的力量。 真实的物体比按钮和菜单更有趣让用户直接去触动和操作你的应用中的物体。这节省了很大一部分用于让操作变得让用户更加满意的时间。 让我来个性化用户总是喜欢加上一些个人的元素,因为这让他们有归属感和控制感。提供感性的,漂亮的默认界面,但同时考虑到一些乐趣,有选择性地让用户... 阅读全文
posted @ 2014-03-14 21:37 Leo.cheng 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 测试驱动开发介绍测试驱动开发(Test Driven Development,英文缩写TDD)是极限编程的一个重要组成部分它的基本思想就是在开发功能代码之前,先编写测试代码也就是说在明确要开发某个功能后首先思考如何对这个功能进行测试,并完成测试代码的编写然后编写相关的代码满足这些测试用例然后循环进行添加其他功能,直到完成全部功能的开发。代码整洁可用(clean code that works) 是测试驱动开发所追求的目标。虽然TDD光大于极限编程,但测试驱动开发完全可以单独应用。极限编程极限编程诞生于一种加强开发者与用户的沟通需求,让客户全面参与软件的开发设计,保证变化的需求及时得到修正。要让 阅读全文
posted @ 2014-03-14 20:36 Leo.cheng 阅读(1138) 评论(0) 推荐(0) 编辑
摘要: 结对编程简介所谓结对编程,也就是两个人写一个程序,其中,一个人叫Driver,另一个人叫Observer,Driver在编程代码,而Observer在旁边实时查看Driver的代码,并帮助Driver编程。并且,Driver和Observer在一起时可以相互讨论,有效地避免了闭门造车,并可以减少后期的code review时间,以及代码的学习成本。有实验证明,平均下来,结对编程时间花销比单人编程增加10%的时间,但也会比单人编程减少15%的代码BUG。如果再算上后期代码的维护和学习成本,结对编程比单人编程更有效率,还更为节省成本。 所以无论是对开发团队还是对于Business,结对编程都会是. 阅读全文
posted @ 2014-03-14 20:36 Leo.cheng 阅读(1308) 评论(4) 推荐(1) 编辑
摘要: UniversalImageLoader 简单来说就是用于加载图片的一个开源项目,在其项目介绍中是这么写的支持多线程图片加载提供丰富的细节配置,比如线程池大小,HTPP请求项,内存和磁盘缓存,图片显示时的参数配置等等;提供双缓存支持加载过程的监听;提供图片的个性化显示配置接口; 其他类似的项目也... 阅读全文
posted @ 2014-03-12 23:21 Leo.cheng 阅读(997) 评论(0) 推荐(0) 编辑
摘要: Cocoa是什么,Cocoa是使用OC语言编写的工具包,里面有大量的类库、结构体,其实就相当于java中的标准API、C++中的标准库。OC中没有命名空间的概念,所以使用加前缀来防止命名冲突,因此你会看到大量的以NS 为前缀的类名、结构体、枚举等。Cocoa框架由Foundation Kit、App... 阅读全文
posted @ 2014-03-08 19:30 Leo.cheng 阅读(965) 评论(0) 推荐(0) 编辑
摘要: 位置服务已经成为越来越热的一门技术,也将成为以后所有移动设备(智能手机、掌上电脑等)的标配。而定位导航技术中,目前精度最高、应用最广泛的,自然非GPS莫属了。网络上介绍GPS原理的专业资料很多,而本文试图从编程人员的角度出发,以一种程序员易于理解的方式来简单介绍一下GPS定位的基本原理。当然,本文并没有涉及具体的开发方面的技术。GPS定位数学模型 之所以先介绍数学模型,是因为这个数学模型可能是程序员比较关心的问题。当然这个模型只是根据一些GPS资料而为程序员总结出来的一个简化模型,细节方面可能并不符合实际,想了解具体细节请参考专业的GPS讲解资料。 GPS定位,实际上就是通过四颗... 阅读全文
posted @ 2014-02-27 23:28 Leo.cheng 阅读(4959) 评论(0) 推荐(0) 编辑
摘要: Afinal简介 Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的... 阅读全文
posted @ 2014-02-27 21:25 Leo.cheng 阅读(509) 评论(0) 推荐(0) 编辑
摘要: TCP的socket本身就是长连接的,那么为什么还要心跳包呢? 在smack里有个30s发送一个空消息的线程,同样关于心跳包(keepalive) 据网络搜索到的资料解释如下内网机器如果不主动向外发起连接,外网机没法直连内网的,这也是内网机安全的原因之一,又因为路由器会把这个关系记录下来,但是过... 阅读全文
posted @ 2014-02-24 21:50 Leo.cheng 阅读(22101) 评论(1) 推荐(2) 编辑
摘要: XmpPullParser 鉴于xmpp协议都是以xml格式来传输,因此源码中解析协议都是用到XmpPullParser来解析xml XmpPullParser很简单,先简单介绍几个比较常用的方法//定义一个事件采用回调方式,直到xml完毕public int getEventType() th... 阅读全文
posted @ 2014-02-22 21:19 Leo.cheng 阅读(1952) 评论(0) 推荐(0) 编辑
摘要: XMPP协议简介XMPP协议(Extensible Messaging and Presence Protocol,可扩展消息处理现场协议)是一种基于XML的协议。目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强... 阅读全文
posted @ 2014-02-22 19:46 Leo.cheng 阅读(1442) 评论(0) 推荐(0) 编辑
摘要: Smack 概述 Smack是一个用于和XMPP服务器通信的类库,由此可以实现即时通讯和聊天。Smack主要优势非常简单易用,并且有十分强大的 API。只需三行代码就可以向用户发关文本消息:XMPPConnection connection = new XMPPConnection("jabber... 阅读全文
posted @ 2014-02-16 21:41 Leo.cheng 阅读(2349) 评论(1) 推荐(0) 编辑
摘要: 1、ConnectionConfiguration作为用于与XMPP服务建立连接的配置。它能配置;连接是否使用TLS,SASL加密。包含内嵌类:ConnectionConfiguration.SecurityMode2、XMPPConnectionXMPPConnection这个类用来连接XMPP服... 阅读全文
posted @ 2014-02-12 22:44 Leo.cheng 阅读(1038) 评论(0) 推荐(0) 编辑
摘要: 成鹏致远 | lcw.cnblogs.com | 2014-02-08单例设计模式class Singleton{ private static Singleton instance = new Singleton() ; // 在内部产生本类的实例化对象 public static Singleton getInstance(){ // 通过静态方法取得instance对象 return instance ; } private Singleton(){ // 将构造方法进行了封装,私有化 } pub... 阅读全文
posted @ 2014-02-08 20:28 Leo.cheng 阅读(4199) 评论(0) 推荐(1) 编辑
摘要: 成鹏致远 | lcw.cnblog.com |2014-02-05数据库1.JDBC概述JDBC(Java Database Connectivity,Java数据库连接)提供了一种与平台无关的用于执行 SQL语句的标准 Java API,可以方便的实现多种关系型数据库的统一操作,它由一组用 Java语言编写的类和接口组成在 JDBC中提供的是一套标准的接口,这样,各个支持 JAVA的数据库生产商只要按照此接口提供相应的实现,则就可以使用 JDBC进行操作,极大的体现了 JAVA的可移植性设计思想在 JDBC中所有的类和接口都保存在 java.sql包中,在此包中规定了大量的接口JDBC本身提 阅读全文
posted @ 2014-02-08 20:00 Leo.cheng 阅读(1188) 评论(0) 推荐(0) 编辑
摘要: 成鹏致远 | lcw.cnblog.com |2014-02-04反射机制1.认识Class类在正常情况下,必须知道一个类的完整路径之后才可以实例化对象,但是在 java中也允许通过一个对象来找到其所在的类的信息,那么这实际上就是 Class类的功能此时,所有的操作都是反着来的Object类的支持在Object类中定义了以下的方法,此方法将被所有子类继承:public final Class getClass()以上的方法返回值的类型是一个“Class”类,实际上此类是 Java反射的源头,实际上所谓反射就是:可以通过对象反射求出类的名称Class类Class本身表示一个类的本身,通过 Cla 阅读全文
posted @ 2014-02-08 19:59 Leo.cheng 阅读(1240) 评论(0) 推荐(0) 编辑
摘要: 成鹏致远 |lcw.cnblog.com|2014-02-04JAVA类集1.认识类集类集的作用类集实际上就是一个动态的对象数组,与一般的对象数组不同,类集中的对象内容可以任意扩充类集的特征这种框架是高性能的框架必须允许不同类型的类集以相同的方式和调度互操作方式工作类集必须是容易扩展和修改的对象数组中包含一组对象,但是对象数组使用的时候存在一个长度的限制,那么类集是专门解决这种限制的,使用类集可以方便的向数组中增加任意多个数据对象数组的操作中基本上都要保证对象类型的一致性,对于类集而言本身其内部的元素也应该保持一致,不管是何种类型的数据,所有的操作方式都应该是一样的类集框架的主要接口以上的接口 阅读全文
posted @ 2014-02-08 19:58 Leo.cheng 阅读(710) 评论(0) 推荐(0) 编辑
摘要: 成鹏致远 |lcw.cnblog.com|2014-02-01JAVA常用类库1.StringBufferStringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不同,String类的内容一旦声明之后则不可改变,改变的只是其内存地址的指向,而StringBuffer中的内容是可以改变的对于StringBuffer而言,本身是一个具体的操作类,所以不能你String那样采用直接赋值的方式进行对象的实例化,必须通过构造方法完成当一个字符串的内容需要被经常改变时就要使用StringBufferStringBuffer的内容是可以修改的,通过引用传递的方式完成StringBu 阅读全文
posted @ 2014-02-08 19:56 Leo.cheng 阅读(4202) 评论(0) 推荐(2) 编辑
摘要: 成鹏致远 |lcw.cnblog.com|2014-01-28异常1.异常的基本概念异常是导致程序中断运行的一种指令流基本的异常处理格式:try...catch,try中捕获异常,出现异常之后的代码将不再被执行,而是中转到相应的catch语句中执行,用于处理异常对于异常也可以设置其统一的出口,使用finally完成在整个JAVA的异常结构中,实际上有两个最常用的类:Exception、Error,这两个类全都是Throwable的子类Exception:一般表示的是程序中出现的问题,可以直接使用try...catch处理Error:一般指的是JVM错误,程序中无法处理【注意】一般在输出异常信息 阅读全文
posted @ 2014-02-08 19:54 Leo.cheng 阅读(842) 评论(0) 推荐(0) 编辑
摘要: 成鹏致远 | lcw.cnblog.com |2014-01-23JAVA基础1.开发环境搭建JAVA程序的执行流程JAVA命令->要使用一个*.class文件(类文件)->通过classpath找到*.class文件所保存的真实目录,之后再进行加载执行小结Path的主要功能是设置JDK的可执行命令classpath主要是在执行时候起作用,告诉JVM类的保存路径,一般设置成“.”【注意】classpath只在java命令的时候起作用,而对于javac不起任何作用2.简单JAVA程序使用Public class和class声明的区别public class文件名称必须与类名称一致cl 阅读全文
posted @ 2014-02-08 19:52 Leo.cheng 阅读(751) 评论(0) 推荐(0) 编辑
摘要: 成鹏致远 | lcw.cnblogs.com | 2013-10-25Linux输入子系统回顾1:为什么要回顾linux输入子系统?这个问题后面自然就知道了 1.linux输入子系统设备是基于平台设备机制的,所以先回顾平台设备机制,主要回顾后面用得到的东西 1.申请主设备号 2.创建cdev-... 阅读全文
posted @ 2014-01-05 18:53 Leo.cheng 阅读(4201) 评论(2) 推荐(2) 编辑
摘要: 主题:Linux内存管理中的分段和分页技术 回顾一下历史,在早期的计算机中,程序是直接运行在物理内存上的。换句话说,就是程序在运行的过程中访问的都是物理地址。 如果这个系统只运行一个程序,那么只要这个程序所需的内存不要超过该机器的物理内存就不会出现问题,我们也就不需要考虑内存管理这个麻烦事了... 阅读全文
posted @ 2014-01-04 23:31 Leo.cheng 阅读(6217) 评论(1) 推荐(0) 编辑
摘要: 什么是XMPP 介绍XMPP之前,先来看看GTalk。 GTalk是Google推出的IM(Instant Messaging,即时通讯)软件,类似于QQ和MSN。 从技术角度来说,GTalk与QQ和MSN的差异是使用了不同的通讯协议,QQ使用了自己的私有协议(未公开),MSN也使用了自己的私... 阅读全文
posted @ 2014-01-04 22:08 Leo.cheng 阅读(2850) 评论(2) 推荐(1) 编辑