- 博客(38)
- 资源 (20)
- 收藏
- 关注
原创 wpa_cli P2P 连接相关调试命令
最近在一个客户那边调试基于p2p的wifi display, 一半都是在Android上去调这个,所以之前也没有过多研究整个p2p连接流程, 而客户现在用的是非Android平台架构, 很多东西需要协助客户debug 之前debug wifi 连接时用到了wpa_cli 来协助调试连接,那p2p怎么去调试呢? 可以用wpa_cli协助调试吗? 查看了代码有了肯定
2014-10-24 14:39:04
17294
3
原创 Android SoftAp支持 (二)
SoftAp界面开启流程(让你的手机支持SoftAp功能)市面上大多数手机支持SoftAp功能,有少数手机没有打开SoftAp的界面设置,所以无法开启此功能(当然有些山寨手机平板打开了此设置功能也不一定能使用SoftAP,因为此功能需要WIFI芯片与WIFI驱动的支持才能真正意义上实现)。深入代码介绍一下手机 Portable Wi-Fi hostpot 界面开启条件上文《Androi
2013-12-03 16:21:31
11274
1
原创 Android SoftAp支持 (一)
Softap字面意思是用软件实现AP的功能,让你的移动设备可以作为一个路由,让别的站点链接。比如让别人的手机连上你的已经打开AP功能的手机,玩联机游戏或者上网等等但事实上此功能是需要硬件以及驱动的支持才能真正的实现的。Softap打开流程。 在Android系统的Setting界面的wireless配置项中会看到一个“Portable Wi-Fi hotspot” 跟一个
2013-05-29 17:25:34
25091
3
原创 Linux驱动编程 step-by-step (十一)
Linux 内核链表(2)之前描述了如何创建内核链表(INIT_LIST_HEAD)向链表中添加节点(list_add)删除一个链表节点(list_del)获取一个链表节点对应的结构体(list_entry)等接下来会介绍几种操作替换一个链表节点,合并两个链表,将一个链表分成两段,遍历链表。替换链表节点替换节点很好理解,就是将新的节点替换老节点,将新的节点的对应的prev,ne
2012-06-05 14:47:08
3299
原创 Linux驱动编程 step-by-step (十)
终于可以清闲下来打理一下我的blog了,台资企业真的事情很多很烦……前几篇文章对字符设备有个简单介绍,并以简单的一个字符设备驱动作结尾,其实linux上大部分驱动程序都是字符设备程序,Linux源码中也可以看到很多的字符设备驱动,所以供学习的代码还是很多的。这一节本想说一下如何测试设备驱动,但是因为最近看了看内核链表,所以趁还记的比较清楚赶紧记录下来。有不到位的地方烦请指正。Lin
2012-03-15 13:39:16
2748
原创 Linux驱动编程 step-by-step (九)
字符设备模拟pipe的驱动程序让我们用一个”pipe“的设备驱动去结束简单字符设备吧(这里所说的pipe并非标准的pipe只是模拟了一个从一端写入从另一端写入的设备)测试代码1 测试代码2设计思路用一个图来说明(可是画了很久哟)简单说来就是一个进程写入缓冲区,另一个进程可以读出,读出后原buffer中的数据被置为无效值,自定义一个结构#defi
2011-11-29 23:17:13
3956
2
原创 Linux驱动编程 step-by-step (八)
阻塞型字符设备驱动前面说到了 如何实现read write 等操作,但如果设备缓冲已满,现在想而用户此时又想写入设备,此请求就无法立即执行,那怎么办呢?第一种情况是:驱动程序想用户返回请求失败的信息。第二种情况是:使调用进程阻塞等待设备可以被操作。而用户更希望自己选择在请求无法满足时候如何操作,所以在用户空间有了O_NONBLOCK标志在打开设备的时候如果用户指定了此标志(
2011-11-24 00:31:18
3444
原创 Linux驱动编程 step-by-step (七)
并发 竞态 (信号量与自旋锁)代码传至并发竞态控制并发进程 导致竞态的一个例子前面所述的字符驱动都是没有考虑并发竟态的情况,想象一下一个进程去读一个字符设备,另一个进程在同一时间向这个设备写入(完全有这种情况)原来设备中存有 A B C D 要想设备写入1 2 3 4 每次读写一个字节t1t2t3t4t5t6t7t8
2011-11-17 00:24:33
6785
4
原创 Linux驱动编程 step-by-step (六)
说点上节没有讲完的话题用户地址检测 简单模块调试 以及一些杂项检测用户空间地址的有效性上一节中提到在read write时候要检测用户空间传递的参数地址是否是有效地址,有的内核函数会自行检测,但是在调用轻量级的内核函数时候,就可能不去检测用户空间的地址是否有效,如果此时用户无传递一个无效地址,而内核函数去操作了它,这时棘手的问题出现了,轻则内核oops 关机重启就OK了,在特别严重
2011-11-13 00:47:50
4087
3
原创 Linux驱动编程 step-by-step (五)
主要的文件操作方法实现文件操作函数有很多的操作接口,驱动编程需要实现这些接口,在用户编程时候系统调用时候会调用到这些操作struct file_operations { ... loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char __user *, size_t, lo
2011-11-11 00:35:40
8728
15
原创 Linux驱动编程 step-by-step (四)
似乎每一章介绍的内容比较少,但学习是一个循序渐进的过程,不在于一天学多少,重要的一天能真正的学懂多少,所以我主张一步一步来,从多个渠道去学习知识,实现互补。本节测试代码传到此处了:char_step1 大家可以下载测试一下。字符设备的注册与设备节点的自动创建cdev 结构内核内部使用struct cdev来表示一个字符设备struct cdev { struc
2011-11-05 23:48:54
4279
5
原创 Linux驱动编程 step-by-step (三)
字符设备中 重要的数据结构大部分字符驱动设计三个重要的数据结构struct file_operationsstruct filestruct inode 一、文件操作 在之前的一篇文章中已经有介绍了如何去生情字符设备设备号,但是没有做任何的工作,也就只能写一个不能工作的字符设备;struct file_operations 结构域用来
2011-11-05 16:11:31
3993
5
原创 Linux驱动编程 step-by-step (二)
简单字符设备驱动1、主次设备号主设备号标识设备连接的的驱动,此设备号由内核使用,标识在相应驱动下得对应的设备在linux中设备号是一个32位的dev_t类型typedef __u32 __kernel_dev_t;typedef __kernel_dev_t dev_t;crw------- 1 root root 10, 1 Apr 1
2011-10-30 16:00:06
4878
9
原创 Linux驱动编程 step-by-step (一)
第三次看了LDD3了(虽然现在已经是kernel3.0但从这本书商还是能学到很多) 每次都有一些收获 现在终于能够些一些代码了驱动程序的作用:简单来说 驱动程序就是使计算机与设备通信的特殊的代码,在作单片机时候(无OS)我们自己定义接口及自定义的结构来操作相关硬件,而在有OS的模式下我们操作的硬件是去实现对应的接口(这些接口是已定义好的,我们需要实现这些接口)而无需自己定义接口,这样既能正
2011-10-26 23:06:28
6968
15
原创 基于android 的GPS 移植——调用关系
http://download.csdn.net/detail/jshazk1989/3710563相应PDF文档传在此资源下大体看来很多的GPS程序都是通过socket连接deamon Location app and frameworkLocation JNIHAL - get GpsInterface
2011-10-16 14:49:50
6467
原创 基于android 的GPS 移植——主要结构体及接口介绍
最近负责 Android 驱动的GPS部分,所谓Android驱动 我觉得可以说成是linux应用之前发了一个图描述了 Android GPS 架构GPS芯片大多采用串口通信,所以只要CPU能够提供一个UART 驱动, 那么跟GPS芯片通信是没有问题的,但是现在很
2011-10-16 00:20:48
17198
原创 两种描述瑞年的方法 以及由此引申的一些思考
/*看起来比较生硬*/int is_leap_year(int year){ if( ((year%400)==0) || ( ((year%4)==0) && ((year%100)!=0)) ) ) return 1;
2011-10-10 20:24:18
2898
原创 Makefile 理解(4) 【Android.mk 浅析 模块编译Makefile编写】
终于将C++代码porting到了bootloader中,唯一的收获就是熟悉了Makefile,有工厂的公司伤不起啊,每次都得先做一些东西满足工厂端测试的需求,为了能够做到工厂在boot中测试的要求,经过与芯片公司讨论,只有将C++弄到了boot中,真是一个很二的决定boot最终做到了2M比有些kernel还要大。不过老板要这么做就硬着头皮做了现在做成了心中还蛮高兴的,原来被逼之后人的潜能还是蛮大
2011-09-26 21:03:00
15140
1
原创 cygwin一闪而过 的处理(小经验)
由于家里有台电脑配置比较低,给爸妈用,不能装linux,也跑不了虚拟机,但是每次回去总要去玩玩linux,所以想起了装一个cygwin,我将我电脑上的cygwin打包好,放到那台电脑上选择使用本地库安装,安装很快(因为不需要下载, 在线安装时候需要 2-3个小时),但是打开cyg
2011-09-23 23:06:56
9006
1
原创 发现从我百度空间拷过来得东西是没有用得图片显示不了 郁闷啊(无正文)原百度博客(http://hi.baidu.com/%CB%E6%B7%E7603089707/blog)
没有正文
2011-09-15 00:14:42
1989
原创 Makefile 理解(3)
make 是如何工作的1、make target会在当前目录中查找Makefile 或者 makefile GNUmakefile 或者是自己用-f指定的文件(最好是Makefile)2、找到后它会执行相应目标(如果没有target则默认执行第一个目标),并将这个目标作文最终目标3、如果目标文件不存在或者目标依赖的文件修改时间新于目标文件修改时间,则执行这个命令生成新的目标
2011-09-15 00:07:47
1743
1
原创 Makefile 理解(2)
上次提到了伪目标、变量及函数先说说伪目标 与 变量: 函数不多但用法很灵活 换句话说就是 太复杂了 以后慢慢讨论先看一个例子:OBJS = main.o a.o b.omain: $(OBJS) cc -o main $(OBJS)main.o: m
2011-09-12 17:51:11
956
原创 Makefile 理解(1)
最近因为需要了解bootloader的一些内容所以看顺便看了一下Mafefile的编写规则。当然了解的只是皮毛了,作为一个学习记录与总结 还是写一篇小文章吧。作为我在正式工作后的第一次的写博客 也把在百度博客上的文章copy过来了, 当然那是在校时写得, 现在看来写的一般了,
2011-09-10 21:23:43
1083
原创 UC/OS-II学习3
学习系统就得看源代码,不然讲再多都是没有用的,内核的主要工作就是实现任务间的调度,但是内核如何调度每个任务呢?在UC/OS-II中每个每个任务都会有一个任务控制块,用来记录任务的状态。应用程序可以有的最多的任务数,是由os_cfg.h中定义的OS_
2011-09-09 00:05:23
1048
原创 UC/OS-II学习 2
好像现在Android很火,真想去学android不过android也是linux内核,即在linux内核上搞一个java虚拟机,执行java程序(我的理解不一定正确),所以学习LINUX还是很好啊。。。呵呵。转正题UC/OS-II学习。可重入函数上次讲到可重入函数,
2011-09-09 00:03:26
1431
原创 uC/OS-II学习1
以前总是想做linux的平台开发但是苦于linux的系统过于庞大,对于我这个刚接触软件不到三年的我感觉很是吃力,大四下期过来公司实习,因为公司现在用的是UC/OS-II平台,说实话刚开始有些失望,想怎么还用这么小的系统,哎,感觉自己很是落伍了一样,但是实习两个月下来我看完了几乎所
2011-09-09 00:02:58
1175
原创 UC/OS-II学习小结
由于公司最近的产品都是以uC/OS-II作为系统平台,虽然自我感觉UC/OS与LINUX难易程度相差太大,所以意愿上不相去弄UC/OS,感觉好像落伍来了一样,不过有些事情是没办法的,公司用的这个平台,你不去了解,就什么都不会做了。 经过了一个多月的学习,忽然感觉到U
2011-09-09 00:02:27
1410
1
原创 闲聊
零零散散看了一些编程的书籍 后天将要正式的从学生变成职业人 虽然感觉有些不适应 但学习的 目的不就在于此吗我算是比较幸运的找到了一份自己爱好的工作虽然现在对这份工作有些陌生但是 我愿意下功夫学习世上无难事 只怕有心人我很敬佩那些能在网上分享自己
2011-09-08 23:56:22
687
原创 工作了……
每次都说会及时更新博客,说说嵌入式,说说C语言什么的(虽然知道自己还很一般), 把自己所学习到的知识及时的鱼大家分享,同时也做一个自我总结吧,看到网上那么多嵌入式高手博客,我也有那么一点点冲动吧,不过感觉每次都想不出些什么,有时候感觉自己所要写的东西太简单,有时候学习的知识又感觉
2011-09-08 23:53:46
754
原创 求职PK考研
开学已经两个月了,经历了考研与找求职的抉择,最终走向了求职之路,我的求职之路还算顺利,当然也有失败了,先后接到了3个offer,也被4个公司拒过,但是最后还是选择了一家深圳的公司,虽然不是很大,但是我觉得能够锻炼到自己,能够学习到东西,而且自己相对比较爱好。
2011-09-08 23:51:33
1595
1
原创 嵌入式根文件系统制作
好长时间没有写有关嵌入式的文章了,最近想移植QT,看了一些介绍 知道QT移植需要动态库才可以,但以前做的根文件系统是静态链接的 这就给做QT带来了问题, 所以一狠信 在网上图书馆找了些动态制作根文件系统的文章来看 弄了好久终于成功了一起分享一下吧这里先介绍一个很强的大哥的
2011-09-08 23:46:24
1070
原创 嵌入式Linux学习5——Shell编程
Shell 使用:1.Shell简介: 简单的说Shell就是一种命令解析器,是一种编程交互接口,通过驱动操作系统内核完成指定的工作,它是用户与操作系统之间的桥梁。 分类:Linux主流的Shell有三种BASH TCSH Korn
2011-09-08 23:44:17
1041
原创 编译器GCC使用
编译器GCC使用1.GCC概述:GCC(GNU C Compile)经过长时间已经发展成是支持C语言C++,java等众多语言的编译器gcc的编译流程分为四步:1.预处理(pre-processing), 2.编译(Compiling), 3.汇编(assemblin
2011-09-08 23:43:46
1060
原创 嵌入式Linux学习3——vi文本编译器应用
Linux提供了一系列功能强大的编译器 如vi,emace是屏幕交互式编译器vi简介:vi编译器是最早也是最受广大用户青睐的,(其实emace比vi好些但是我还没有用过,以后学会了 再给大家介绍vi有有三个模式分别是:命令模式,插入模式,底行模式。命令行模式:最初
2011-09-08 23:43:00
1368
1
原创 嵌入式Linux学习2——宿主机Linux相关配置
本章节 主要在为后面嵌入式应有做铺垫作用 如果这些没有做好 可能后面会出现很多东西用不了的情况1tftp 服务器配置(宿主机到目标机的下载工具)简单介绍: 这里说到宿主机于目标机 两个不同的概念 我们有的电脑机宿主机——用来执行编译出开发平台能使用的可执行
2011-09-08 23:41:31
1028
原创 嵌入式Linux学习1——Linux相关命令介绍
刚刚 开始研究 嵌入式Linux 感觉 比较难 接下来的日子里 我会与大家 一起分享我的学习成果 也作为我的学习笔记吧“学习贵在坚持,别畏难”首先是 Linux 的基础Linux 的特点:1.免费 开源2.可移植性,设备平台无关性3.强大的网络功能4.
2011-09-08 23:38:18
813
Android4编程入门经典(完整英文版)
2013-12-05
char_step4
2011-11-11
char_step3
2011-11-11
char_step2
2011-11-07
char_step1
2011-11-05
AGPS规范 终端A-GPS技术规范
2011-09-24
线程池使用介绍用程序可以有多个线程,这些线程在休眠状态中需要耗费大量时间来等待事件发生。其他线程可能进入睡眠状态,并且仅定期被唤醒以轮循更改或更新状态信息,然后再次进入休眠状态
2010-09-20
Verilog_HDL_华为入门教程
2010-05-18
嵌入式系统设计师官方教程.pdf
2010-01-29
protel dxp高级教程 讲述了DXP的高级应用
2010-01-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人