- 博客(25)
- 资源 (3)
- 收藏
- 关注
原创 __init 奇怪的语法
意思是内核在调用这个函数之后便将这个函数注销。/* * hello-2.c - Demonstrating the module_init() and module_exit() macros. * This is preferred over using init_module() and cleanup_module(). */#include /* Ne
2016-07-12 23:14:24 295
原创 linux 下 adb 安装apk
方法二,使用adb命令 安装apk 到data/app:adb install xxx.apk 到system/app:adb push xxx.apk system/app 卸载apk 卸载data/app下的apk: adb shell cd d
2016-07-09 19:45:15 9058
原创 烧写nexus one
ubutn 16.04 安装依赖参考网址http://blog.csdn.net/fuchaosz/article/details/51487585编译完成后 烧写代码 到nexus https://source.android.com/source/devices.html(参考网址)$ fastboot flash boot out/target/product/hik
2016-07-09 17:33:37 283
原创 设备与模块
块设备: blkdev,可寻址,寻址以块为单位,典型的块设备是硬板。字符设备:cdev,不可寻址,应用程序直接访问设备节点与之通信。网络设备:ethernet ,通过套接字API的特殊接口来访问。模块:内核在运行时插入或者删除一些二进制镜像。一个内核模块必备的要素:1,module_init(); 模块在被内核加载的时候来调用。2,module_exit();
2016-07-08 18:29:54 314
原创 文件系统
1. Unix从一开始就把所有的外部设备都当成文件。2.Linux文件系统是Ext2。3.出去linux本身的系统ext2,为了使得linux支持不同的文件系统,linux隐去了不同的文件系统的实现细节,为用户提供一个虚拟的统一的文件系统,称之为虚拟文件系统。VFS。
2016-07-07 15:42:47 264
翻译 内核数据结构
一,链表的基本结构typedef struct list_head{ struct list_head *prev; struct list_head *next;};#include #include #include /* * 该示例参见linux-kernel中内核链表list的实现 * * 文件list.h * http://lxr.
2016-07-07 12:32:54 237
原创 配置jdk
0. 使用env 发现编译android 需要的版本书java-7-openjdk-amd64/bin:fuxuan@ubuntu:/usr/lib/jvm$ envANDROID_DEV_SCRIPTS=/home/fuxuan/WORKING_DIRECTORY/development/scripts:/home/fuxuan/WORKING_DIRECTORY/prebuilts/de
2016-07-07 10:54:44 343
原创 3.硬件抽象层模块HAL
硬件抽象层:向下屏蔽硬件驱动模块的实现细节,向上提供硬件服务。硬件抽象层的编写规范:1. 以模块的形式管理各个硬件的访问接口。2. 模块用结构体 hw_module_t 来描述。3. 硬件设备用结构体hw_device_t 来描述。4. 每个模块对应一个动态链接库文件。
2016-07-06 17:31:26 372
原创 2.调试回调函数
#include typedef struct{ //定义一个结构体 int age; int num;}GpsLocation;GpsLocation GpsLocation1;//1. 定义一个函数指针gps_location_callback,这个指针在后面的应用中要指向函数//2. 定义了一个指针指向GpsLocation结构体 //3. GpsLocat
2016-07-04 23:56:06 556
转载 1. 安卓源码gps代码
一,定义一个结构体431typedef struct {432 /** set to sizeof(GpsLocation) */433 size_t size;434 /** Contains GpsLocationFlags bits. */435 uint16_t flags;436 /** Represents lat
2016-07-04 23:51:50 421
原创 2.安卓源码下载
有时候我们辛苦取到Android的源代码,想知道它的确切版本号,比如有时候我们只粗略知道拿到的是2.3的源码,但并不明确他的小版本号,这就是有时候明明都是2.3的代码可比较起来还是有差异的原因,比方说一个是2.3.1,而一个是2.3.4;确认的方法很简单,有两种:1. 编译的时候在终端中一开始就会打印出来:PLATFORM_VERSION:2.3.12. 直接去
2016-07-04 17:23:22 249
原创 0. 回掉函数
1. 函数指针:void (*) () 【左边的*是函数指针生命的关键】 首先函数指针是一个指针。存储的是一个函数的地址。 写段代码了解下函数指针。typedef void(*Fun)(int,int); //定义函数指针类型 void min(int a,int b); void max(int a,int b); void min(int a,i
2016-07-04 16:49:00 271
原创 2.2 堆栈溢出
一,数组越界,导致缓冲区溢出。(1)文本段:该区域保存了我们上面test.c的经编译链接之后的可执行程序文本段(2)数据段:该段保存了如我们test.c中的data1和data2等全局变量(当然局部或全局静态变量也会在此保存)(3)堆:当我们调用malloc分配内存时,其分配的内存就是从该段获取的其增长方向由下向上(4)栈:下面着重讲(5)argv:这些保存的就是mai
2016-07-03 15:34:18 313
原创 2.1 Linux进程介绍
进程: 1. 进程就是处于执行器的程序。通常是调用fork系统,系统通过复制现有进程来创建新的进程。 2.每个进程都有一个task_struct数据结构,称为进程描述符和一片用作系统空间堆栈的存储空间。 3. 内核通过标识进程pid来识别进程 ,也就是pid_t 它的类型是int。 4. 通过fork()创建一个进程。
2016-07-03 14:29:51 275
原创 9.全局描述符表与分页机制
在保护模式下,对段的访问依然使用段地址与偏移地址。但是为每个程序有一个自己的段描述符。段描述符是在操作系统加载用户程序时,操作系统根据用户程序结构而建立的,用户无法修改GDT。8个字节为一个段描述符,在段空间中所有的段描述符都是靠在一起的,构成了段描述符表。每个描述符中指定了32位的段起始地址以及20位的段边界。在未开启分页功能之前,段址就是32位的线性物理地址。DPL,段描述符的
2015-07-08 00:11:27 550
原创 1.Win32汇编程序开发
.386 .model flat,stdcall option casemap:none;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>; Include 文件定义;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2015-07-07 15:00:19 322
原创 8.16位中断程序
写完中断代码,16位汇编就告一段落了。终于算完了。。。。。。。win32汇编才迷人呀!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!明天再写,今天休息。
2015-07-04 00:09:24 384
原创 7.加载器代码与用户代码
直接贴代码吧,懒得分析结构头码与用户程序。加载器代码: app_lba_start equ 100 phy_base equ 0x10000SECTION mbr align=16 vstart=0x7c00 mov ax, 0 mov ss, ax mov sp, ax mov ax, 0x1000;
2015-07-04 00:03:58 331
翻译 6.加载器代码分析
1.初始化堆栈 app_lba_start equ 100SECTION mbr align=16 vstart=0x7c00 mov ax, 0 mov ss, ax mov sp, axtimes 510-($-$$) db 0 db 0x55, 0xaa设置下堆栈段与堆栈指针。 2. 运行用户代码。
2015-07-02 11:46:16 409
原创 3. 用户代码的结构分析
; write by zhujiu123; nasm编译器;========================================================SECTION header vstart=0 ;定义用户程序头部段 program_length dd program_end ;双字节来存储代码长度
2015-06-29 22:11:11 572
原创 2.用户程序代码分析
; write by zhujiu123; nasm编译器;========================================================SECTION header vstart=0 ;定义用户程序头部段 program_length dd program_end ;双字节来存储代码长度 ;用户程序入口点
2015-06-29 20:35:44 274
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人