- 博客(50)
- 资源 (2)
- 收藏
- 关注
原创 Android Studio 更新SDK无法联网问题
Android studio通过获取Android SDK Sites设置的offline repo来安装,默认的offiline Repo可能刷新不出来SDK Platform和SDK Tools的其他版本,需要修改offline repo的URL,即offline-repo.xml文件,下面讲如何修改此文件: 可以去找一些repository的网址,网址内部会有cmake,NDK...
2018-06-12 10:54:33
1660
原创 Android 底层框架笔记
android底层的实现 android的apk想要获取底层的数据或者接口,要实现底层的相关服务,现对此作出记录 1,编写hal层 hal层代码主要是对驱动提供的接口进行操作,其中有open ,read,write,mmap,ioctl和sys下的一些接口的操作; hal层代码严格按照安卓的那套写法编写,
2015-01-26 17:22:56
998
原创 Linux开机Log制作
1)安装工具 sudo apt-get install netpbm2)在配置内核的时候选中了启动Logo的支持。 使用下面的方法可以将企鹅的Logo换成自己喜欢的任意图片。 首先准备一幅自己喜欢的图片,然后将背景涂成黑色。然后将该图片保存成png格式,例如linuxlogo.png。在Linux下使用下面的命令: # pngtopnm l
2014-12-15 10:33:55
1184
原创 AllWinner board 笔记
1,编译出现 sh : arm-linux- 找不到 是因为 Makefile配置CROSS_COMPARE的时候最后的空格没有处理干净;2,自己编译的驱动加载后出现 insmod: init_module 'wlan.ko' failed (Exec format error) wlan: disagrees about
2014-12-13 22:14:24
977
原创 从Linux内核镜像中提取内核配置文件
如果你是一个喜欢编译内核的狂人,同时也是经常忘记将默认的.config文件备份的懒家伙,那么下面的方法将会使你的内核配置工作变得更轻松,从linux 2.6开始内核提供了一种将.config附加到映像文件的方法,通过这种方法,内核配置者可以不必备份当前的.config文件,而是在需要的时候直接从内核映像中提取.config文件。步骤如下:1. 配置内核1.1 make menuco
2014-12-13 22:03:43
2175
原创 Android的权限机制
Android是基于Linux的系统,其权限访问控制自然离不开Linux的权限访问控制,而在第一章当中,将分成两个部分来剖析Android的权限控制系统。一. Linux权限机制 Linux的权限访问是由进程(访问者)和文件(被访问者)两部分组成的。其中相当一部分内容参考至APUE[1]。1.1 Llinux文件权限 我们在Linux当中输入命令 $ls
2014-12-11 15:17:18
639
原创 Dropbear
dropbear是一个轻量级的ssh服务,比openssh要小的多,而且速度比较好。本文介绍在嵌入式的环境中的安装方法。环境以x86架构的linux+busybox环境为例,如果dropbear编译安装于流行版的linux下应该问题不大,但是对于精简的busybox环境就需要做一些工作。我所搭建的环境为x86架构的,比较简单,不需要交叉编译。对于其他的嵌入式架构,可能需要交叉编译。但是这里所说
2014-12-11 10:14:10
2425
原创 ts_calibrate
/* * tslib/tests/ts_calibrate.c * * Copyright (C) 2001 Russell King. * * This file is placed under the GPL. Please see the file * COPYING for more details. * * * Basic test program for touchscreen lib
2014-12-05 16:03:26
1800
原创 WIfi 移植
移植与交叉编译hostapdtar xzf wpa_supplicant_hostapd-0.8_rtw_r6747.20130222.tar.gzcd wpa_supplicant_hostapd-0.8_rtw_r6747.20130222/hostapd/CC=/usr/local/dvsdk/linux-devkit/bin/arm-arago-linux-gnueabi-gcc
2014-12-03 11:36:22
1035
原创 Git常用命令
查看、添加、提交、删除、找回,重置修改文件git help # 显示command的helpgit show # 显示某次提交的内容 git show $idgit co -- # 抛弃工作区修改git co . # 抛弃工作区修改git add # 将工作文件修改提交到本地暂存区git add . # 将所有修改过的工作文件提交暂存区git rm # 从版本库
2014-11-27 10:18:09
344
原创 Linux DMA
大家都知道,DMA的操作是需要物理地址的,但是在linux内核中使用的都是虚拟地址,如果我们想要用DMA对一段内存进行操作,我们如何得到这一段内存的物理地址和虚拟地址的映射呢?dma_alloc_coherent这个函数实现了这种机制。1、函数原型:void *dma_alloc_coherent(struct device *dev, size_t size,dma_addr_t *dma_
2014-11-18 14:27:19
526
原创 Linux SDIO
1、sdio接口层解析SDIO总线 SDIO总线 和 USB总线 类似,SDIO也有两端,其中一端是HOST端,另一端是device端。所有的 通信 都是 由HOST端 发送 命令 开始的,Device端只要能解析命令,就可以相互通信。 CLK信号:HOST给DEVICE的 时钟信号,每个时钟周期传输一个命令。 CMD信号:双向 的信号,用于传送 命令 和 反应。
2014-11-18 13:34:15
1254
原创 Linux 内核驱动固件加载方式
对于内核驱动需要的固件文件,有两种方式加载: 方式1:固件编写进内核1, 在驱动的 Driver ---> Generic Driver Options ---> External firmware blobs to build into the kernel binary 下编写 固件名字,(全称)。同时在此后的root direction下编写文件路径, e
2014-11-13 15:44:14
3175
1
原创 Automake的生成
你说的是automake吧,否则makefile是自己写的。这个网上资料和流程的介绍很多的,给你一个当年我写的作业吧。其实都不难的,自己多试试就成,那时候我刚开始的也觉得一点都不会。按照步骤一步一步来吧,有什么问题继续问我把。这个也好长时间没弄了linux了,有点生疏了 呵呵~1.建目录 在工作目录下建一个zsy目录,用它来存放zsy程序及相关文件。
2014-11-07 09:36:41
465
原创 Linux 线程与进程的学习
【摘要】本文首先介绍了进程和线程的区别,接着分析了内核线程、轻量级LWP线程以及常见的用户线程的特点,同时介绍了内核线程和进程的区别。分析了创建内核线程kernel_thread函数的实现过程,介绍了一个在驱动中使用内核线程的实例。最后针对内核线程创建销毁的特点,给出了通用的内核线程操作函数API,使用该API可在自己的驱动或内核代码中方便的使用内核线程。 1 线程和进程的差别
2014-11-04 14:22:56
508
原创 C++ 总结笔记 <一>
一,定义类的对象先定义一个类:class A{public: A(); virtual ~A();......};类实现略。用的时候:A a;a.成员函数;a.成员变量;a 就是一个对象。也可以这样用:A *a = new A;a->成员函数;a->成员变量;注: A a;
2014-11-03 09:20:52
422
原创 Android之Camera
总体介绍 Android Camera 框架从整体上看是一个 client/service 的架构,有两个进程:一个是 client 进 程,可以看成是 AP 端,主要包括 JAVA 代码与一些 native c/c++代码;另一个是 service 进 程,属于服务端,是 native c/c++代码,主要负责和 linux kernel 中的 camera driver 交互,搜
2014-10-21 10:24:00
470
原创 vi 删除行的所有操作
我这里在编辑一个很大的文件,有几万行,都是文件名sheetid, 中间有很多空行,我现在要做的事情就有要把这个文件中的空行都删除掉,这个本来想在ultraedit里面完成的,结果弄了好半天都没有搞定,时间紧急也没法再去慢慢的try了,干脆放到AIX上面使用vi来做,也是在网上google 结果找到很多这样的:12)删除操作 :%s/r//g 删除DOS方式的回车^M :%s= *$
2014-10-10 13:52:26
976
原创 Android中Parcel的分析以及使用
简单点来说:Parcel就是一个存放读取数据的容器,Android系统中的binder进程间通信(IPC)就使用了Parcel类来进行客户端与服务端数据的交互,而且AIDL的数据也是通过Parcel来交互的。在Java空间和C++都实现了Parcel,由于它在C/C++中,直接使用了内存来读取数据,因此,它更有效率。分析Binder机制中的客户端与服务器端进行实际操作ontransact()函
2014-09-17 16:33:37
763
原创 Linux list解读
Sam之前看2.4 kernel时,常看到List.也仔细看了一下,但现在长期没有看kernel,没有写程序,已经忘记了很多。今天又看一看并记录下来。 Linux Kernel中,常常需要使用双向链表。在~/include/linux/list.h中,就定义了双向链表和常用的function.链表头如下:struct list_head { struct list_head *
2014-09-04 11:15:35
614
原创 Android.mk文件语法规范及使用模板
Android.mk文件语法规范根据eoeandroid上的的连载,进行一些更新、修改和加亮。今天翻译ANDROID-MK.TXT文件(英文原文件在/development/Ndk/Docs/android-mk.txt)Android.mk文件语法规范 Introduction:Android.mk编译文件是用来向Android NDK描述你的C,C++源代码文件的, 这
2014-08-29 17:35:17
521
原创 linux gdb 调试
一.gdb常用命令:命令描述backtrace(或bt)查看各级函数调用及参数finish连续运行到当前函数返回为止,然后停下来等待命令frame(或f) 帧编号选择栈帧info(或i) locals查看当前栈帧局部变量的值list(或l)列出源代码,接着上次的位置往下列,每次列10行
2014-08-27 10:45:19
675
原创 Linux文件属性shell大全
1.创建文件夹#!/bin/shmkdir -m 777 "%%1"2.创建文件#!/bin/shtouch "%%1"3.删除文件#!/bin/shrm -if "%%1"4.删除文件夹#!/bin/shrm -rf "%%1"5.删除一个目录下所有的文件夹#!/bin/bashdirec="%%1" #$(pwd)for dir2del in $direc
2014-08-26 10:24:58
2345
原创 android 编译错误do_inode_allocate_extents: Failed to allocate 157
android 编译错误do_inode_allocate_extents: Failed to allocate 157 (2013-05-06 17:22:22)转载▼ 分类:android移植out/target/product/rk2928sdk/obj/PACKAGING/systemimage_intermediates/syst
2014-08-19 15:28:30
867
原创 Android wifi 简要分析
这里列了很多,但是大致可以分为四个主要的类ScanResult wifiConfiguration WifiInfo WifiManager(1)ScanResult,主要是通过wifi 硬件的扫描来获取一些周边的wifi 热点的信息。在我们进行wifi 搜索的时候,一般会搜到这些信息,首先是接入点名字、接入点信息的强弱、还有接入点使用的安全模式,是WPA、WPE。打开这个类,我们可以看到以
2014-08-12 10:53:18
1031
原创 Vi 配置
搞了一天配置vim, 看了很多博客, 把基本的配置都整完了,貌似有个自动补全插件还没装,后面慢慢来了,现在基本的东西都差不多了,感觉还算做了见一劳永逸的事情, 感觉也多好耍的,就像看说明书玩玩具一样的感觉……syntax on " 语法高亮syntaxenablefiletype on"检测文件的类型filetype pluginonfiletype plugini
2014-08-12 09:53:15
440
原创 android的logcat详细用法
Android日志系统提供了记录和查看系统调试信息的功能。日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命令来查看和使用. 一、使用logcat命令的目的: 1、你可以用 logcat 命令来查看系统日志缓冲区的内容: [adb] logcat [] ... [] ... 详细内容,请查看Li
2014-08-08 14:43:48
433
原创 android wifi驱动移植详细过程
对于刚入手android没多久的人来说,android wifi 驱动的移植确实还是有难度的,不过参考了网友的相关帖子后,最终还是移植成功了,,以便自己和他人查看学习:&&&& WIFI的基本架构 &&&&(这一部分比较重要,是一直wifi驱动的基础)1、wifi用户空间的程序和库:external/wpa_supplicant/生成库libwpaclient.so和守护进程w
2014-08-08 13:48:35
3901
原创 Ubuntu启动问题以及Grub Rescue修复方法
Ubuntu启动问题以及Grub Rescue修复方法问题:之前系统是Windows7 64bit(C盘) + D,E盘(都是NTFS) + Ubuntu。今天,在Windows7中删除了E盘,准备向其中安装RedHat 6。 重启Windows7之后发现Ubuntu的grub菜单不能启动。屏幕显示Invalid FileSystem。 (如果没有记错的话,
2014-08-04 14:45:58
512
原创 升级DM5校验
1,将某个文件生成带DM5的文件,使用srec_cat工具; read A #原始文件 srec_cat $A -o 要生成的文件名 -Line_Length 46 -Address_Length 3 -HEAder "The title" 2,从生成的文件中读取DM5数据 dm5sum 生成的文件 此时会将生成的带
2014-08-04 13:14:33
1272
原创 嵌入式杂项
让自己速度快起来你可以 自己在系统中设置 步骤我给你写出来 单击“开始→运行”命令,输入“gpedit.msc”后回车,运行“组策略”程序, 依次展开“计算机配置→管理模板→网络→Qos数据包调度程序”,在右侧的 窗口中双击“限制可保留带宽”项,打开“限制可保留带宽属性”对话框, 选择“已启用”选项,然后在“带宽限制”中把数值设为“0”即可一起用一 个..不要用软件
2014-07-05 15:33:23
580
原创 dd
dd命令使用详解1.命令简介 dd 的主要选项:指定数字的地方若以下列字符结尾乘以相应的数字:b=512, c=1, k=1024, w=2, xm=number mif=file #输入文件名,缺省为标准输入。 of=file #输出文件名,缺省为标准输出。 ibs=bytes #一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。 obs=b
2014-04-24 13:18:56
1019
转载 SVN linux 命令
SVN linux 命令1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co2、往版本库中添加新的文件svn add file例如:svn add test.php(添加test.php)svn ad
2014-03-06 16:13:00
489
原创 应用程序实现多路监听的内核驱动实现
#include #include #include #include #include #include #include #include #include #include #include #include #include static int major;struct cdev btn_cdev;struct class
2014-02-20 11:04:21
544
原创 基于Linux的LCD驱动及测试代码
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2014-02-20 10:56:38
2756
原创 基于Linux内核的1-wair总线驱动
#include #include #include #include #include #include #include #include #include #include #include #define DS18B20_RESET (0x10009)#define DS18B20_REL (0x10011)#defi
2014-02-20 10:51:17
770
原创 基于Linux内核的IIC驱动
#include #include #include #include #include #include #include //分配初始化设备ID信息static struct i2c_device_id at24c02_id[] = {{"at24c02", 0} //这个名称很重要,用于匹配};static struct i2c_c
2014-02-20 10:45:31
1480
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人