- 博客(57)
- 资源 (8)
- 收藏
- 关注
原创 android adb流程
1. adb_trace_init : 初始化调试级别, 通过设置ADB_TRACE=all环境变量可打开调试 默认的服务端口为5037,也可以通过环境变量ANDROID_ADB_SERVER_PORT来设置。执行adb命令时过程: *) 把命令变成字符串(例如 host:devices) *) 通过tcp连接到本地服务器(5037端口) *) 如果服务器
2013-07-03 18:36:20
4228
原创 git邮件发送
1. 下载脚本: post-receive 获取git项目下config文件中的内容:收件人列表: recipients=$(git config hooks.mailinglist)里程碑收件人列表, 不是必须的: announcerecipients=$(git config hooks.announcelist)邮件标题前缀: e
2013-07-02 11:43:33
1848
原创 音频降采样系数
如果需要把8K, 16K, 32K, 48K采样率的音频数据降为4K的音频数据, 最简单的方法根据降频倍数来取点, 但是线性度不好.另一种线性度好一点的方法是: 取适当个数的点数, 各点乘以各自点的系数, 然后相加取平均值.降频倍数与系数的关系如下:2倍: {0.3, 0.4, 0.3}4倍: {0.15, 0.2, 0.3, 0.2, 0.15}8倍: {0
2013-06-09 10:06:37
4405
原创 shell+makefle提取kernel和uboot等编译部分的代码
之前写过一篇使用 使用scsh编写脚本收集编译的代码(http://blog.youkuaiyun.com/joans123/article/details/7475046), 之所以再写这边文章是因为scsh不常见,以及之前那种方法的扩张性不行. 由于代码编译有Makefile管理的,所以用Makefile来搜集所编译的代码是相当方便及容易扩张的.下面的collect-src脚本先生成一个Makef
2013-01-18 18:27:49
1404
原创 linux commands
1. lsb_release print distribution-specific information, example :#lsb_release -aDistributor ID: UbuntuDescription: Ubuntu 12.04.1 LTSRelease: 12.04Codename: precise
2012-11-16 21:58:57
615
原创 实模式和保护模式
一. 实模式介绍 X86体系的CPU启动时进入实模式, 20根地址线, 16位寄存器, 最多访问1M的内存空间,使用段地址(CS) + 偏移地址的方式来访问. 二.保护模式介绍 提供了硬件对多任务的支持并能够快速地进行任务切换和保护任务环境, 物理内存也不能直接被程序访问. 4个特权和完善的特权检查机制. 为了在32位保护模式下执行纯16位程序,支持虚拟8086方式
2012-11-10 22:14:39
752
原创 objcopy/objdump/readelf等工具使用
1. objcopy 复制及修改目标文件 -I : 输入文件的格式(binary, elf32-i386等) -O : 输出文件的格式 -B : 二进制文件体系结构(i386, arm等) -R : 删除不用的section(.comment .note 等) -j : 仅留下有用的section(.text
2012-11-07 19:46:10
1507
原创 linux下汇编语言编译执行
1. 如果使用gcc编译汇编文件的话, 使用main符号作为入口( gcc -o a.out a.S)2. 如果使用as和ld命令编译汇编的话, 使用_start符号作为入口( as test.S -o test.o; ld test.o -o a.out) 以上生成两个文件都是ELF格式的可执行文件, 只不过第一个会自动添加一些环境的初始化代码. 对于ELF文件可以通过
2012-11-07 18:57:51
7498
原创 gnu汇编
1. GNU汇编的伪指令. = _start + 4 表示当前地址等于标号_start的地址加4.file 定义一个FILE类型的符号.text 指明后面段为指令.data 指明后面段为数据.comm symbol,length 申明一个符号名为symbol的通用符号(common symbol).当链接时,目标文件中的通用符号可
2012-11-06 22:56:21
1363
原创 IA-32汇编知识
1. 通用寄存器 EAX 用于操作数和结果数的累加器 EBX 指向数据内存段中的数据指针 ECX 计数器 EDX IO指针 EDI 用于字符串操作的目标数据指针 ESI 用于字符串操作的源数据指针 ESP 堆栈指针 EBP 堆栈数据指针其中EAX, EBX
2012-11-06 22:23:07
804
原创 内核学习
1. 节点中使用的链表通知机制(函数: fsnotify_clear_marks_by_inode )struct fsnotify_mark_entry { __u32 mask; /* mask this mark entry is for */ /* we hold ref for each i_list and g_list. also
2012-09-29 09:23:35
628
原创 usb-简介
1. USB物理接口分类: 主机(USB HOST) 设备(USB DEVICE) 集线器(USB HUB)2. 速率传输: 低速(1.5Mb/s), 中速(12Mb/s), 高速(480Mb/s)3. 数据传输方式: 控制传输(Control transfer) --- 短包,用于设备控制合配置. 中断传输(Interrup
2012-08-10 19:44:19
1015
原创 usb-host
1. 端点0中断处理 * 选择端点0 * 读取端点0状态查看接收到的数据长度 * 判断错误状态,如果出错设置urb->status状态并结束urb请求 * 判断端点0状态做出相应动作并更新状态 1)START : 发送setup包,并设置为IN或者OUT状态 2)IN : 读入数据包到urb 3)O
2012-08-10 19:43:23
932
原创 usb存储
1. USB存储类下面的子类有: 01h flash设备 02h CD-ROM 03h QIC-157 04h Floppy 05h Removable media 06h SCSI transparent 07h password-protected f0h
2012-08-10 19:42:48
755
原创 usb 驱动
1. USB host Controller驱动程序 * 处理USB状态,管理并报告状态信息 * 数据并/传转换 * 生成frame或者microframe * 处理数据传输的请求 * 处理USB总线协议 * 进行差错检测和控制 * 处理电源管理请求, 把总线置为suspended状态以及响应wakeup事件 * 提供
2012-08-10 19:42:08
2974
原创 omap3 usb register
* 功能地址寄存器(Function Address Regsiter --- 0x00) 设备模式时,作为USB设备的地址.* 电源管理寄存器(Power Management Register --- 0x01) bit[0] : 设置使能挂起输出 bit[1] : 设置时进入挂起模式. 读中断或者RESUME位设置时清除此位 b
2012-08-10 19:40:33
1080
原创 arm mmu
一个两级页表集合存储在内存中用来控制地址转换,权限检查,内存区域属性。MMU使用一个转换查找缓冲(TLB)来缓存页表. 地址转换映射可分为页表映射和区域映射。 * 大页映射 * 小页映射 * 极小页映射 * 段(section) 映射段映射只要一级转换, 页映射需要2级转换.段描述符: 提供1M内存块的基址, 即一个描述符描述1M的内存空间.bits
2012-06-09 12:14:13
1185
原创 缓冲区溢出保护
1. 堆栈内存地址随机化,程序每次执行的堆栈地址都不一样(空出一段随机偏移).关闭方法:sysctl –w kernel.randomize_va_space=0echo 0 > /proc/sys/kernel/randomize_va_space2. 栈代码不可执行 如果栈中代码不可执行的话, 缓冲区溢出的shellcode将不能执行.关闭方法:
2012-06-09 10:39:52
1228
原创 linux进程空间
在32位机器的linux系统同进程的地址空间大小是4G.0~3G( 0x0000 0000 ~ 0xBFFF FFFF) 属于用户空间3~4G( 0xC000 0000 ~ 0xFFFF FFFF) 属于内核空间进程地址空间由以下几部分组成高地址 内核空间 | 0xc000 0000 |
2012-06-09 10:10:33
864
原创 arm AAPCS(程序调用标准)
ABI : Application Binary Interface 应用程序二进制接口EABI : Embedded ABI 嵌入式ABIPCS : Procedure Call Standard 程序调用标准AAPCS : PCS for ARM Architecture ARM体系结构程序调用标准APCS :
2012-06-06 13:23:10
7815
原创 arm 相关学习(2)
* 六个操作模式 User Mode --- 用户模式,大部分任务在此模式下运行 FIQ --- 快速中断模式 IRQ --- 普通中断模式 Supervisor --- 特权模式,软件中断或者复位进入 Abort --- 数据访问错误模式 Undef --- 指令未定义模式* ARM V4添加第七中模式 S
2012-06-05 20:44:26
1070
原创 arm 相关学习(1)
1. 有16个可见的32bit寄存器: r0-r7(所有处理器模式都有各自的寄存器) r8-r12(通用目的寄存器)其中: r10 --- sl (stack limit)寄存器 r11 --- fp (frame point) 寄存器 r12 --- ip (供链接器使用) r1
2012-06-05 13:50:10
1210
原创 linux completion
一. linux kernel阻塞等待事件方法: 把线程置为可中断或者不可中断状态 然后调用进程调度函数执行其他代码 该进程代码再次执行的情况: 1) 调度超时 2) 进程被等待事件唤醒 3) 进程设置可中断状态,被某个信号中断了 4) CPU空闲调度 此时需要判断进程是否被等待事件唤醒, 是的话则返回. 否则重复上述
2012-05-30 20:00:36
1405
原创 emacs 之 缩写表(abbrev)
变量:abbrev-table-name-list 缩写表变量的列表global-abbrev-table 全局缩写表变量local-abbrev-table 当前buffer的缩写表fundamental-mode-abbrev-table 基础模式的本地缩写表abbrev-all-caps 非空表示扩展多字缩写时全部大写abbrev-s
2012-05-19 09:58:41
1611
原创 asmack杂记
asmack的代码以及jar可以从 http://code.google.com/p/asmack/downloads/list 下载.在android中创建一个service用来管理连接以及处理报文.创建连接代码如下 ,其中server_ip是jabber服务器的ip, 可以是域名. Log.i(TAG, "ConnectManager in...");
2012-05-14 20:12:32
13138
原创 Emacs 键映射(keymap)
Emacs 键映射(keymap) 一个键序列是由一些键值单元组成的。键值包括字符,功能键和鼠标按钮以及所有你能发送到电脑的输入。 在elisp中键序列要么是字符串,要么就是向量。 控制字符以 "\C-" 串打头,Meta字符以"\M-"打头。 另外,,,这些事件与"\t", "\r", "\e"和"\d"相对应。 键序列和函数绑定记录在keymap的结构体当中。 全局的key
2012-05-13 14:24:45
6800
原创 Elisp 标记-清除算法简介
标记-清除(mark-sweep)算法 Emacs Lisp最早使用的就是标记清除算法. 算法分为"标记"和"清除"两个阶段.1) 首先标记出所有正在使用的对象.2) 回收那些所有未被标记的对象,并清除掉标记. 该算法的缺点是:1) 效率问题, 标记和清除的效率并不高. 2) GC运行时, 正常程序必须停下来, 降低实时性.下面以elisp中的cons单
2012-05-08 20:28:21
1694
原创 linux下查看哪些程序占用sdcard or usb
1. 遍历查看/proc下的程序(以数字打头的目录, 一个目录对应一个程序的pid) 文件名称获取 cat /proc/ [pid] /cmdline2.查看 fd目录下的链接文件查看 maps文件的内容查看 cwd链接文件查看 root链接文件查看 exe链接文件如果其中一个路径与你sdcard的路径相同, 则代表该程序占用sdcard
2012-05-07 10:43:49
1323
原创 使用flex编程解析内存依赖的.o.cmd文件
编译内核之后相应的文件会产生一个 .*.o.cmd的依赖文件, 根据此文件可以看出被编译的.o文件依赖哪些头文件,以及被编译的参数..o.cmd文件的格式为:cmd_dir/output.o := commandsdep_dir/output.o := depended_files 总的来说由两部份组成, 一个是编译命令, 另一个是依赖文件. 所以此法分析分成两结: CMD
2012-04-26 19:53:26
3163
原创 objdump 反汇编一个函数的脚本
1)使用System.map文件查找函数的起始地址和结束地址2)使用objdump -d 反汇编, 然后通过--start-address和--stop-address参数指定函数区间3)使用nm -n out.elf > System.map 命令生成System.map文件4)grep -A 1 打印匹配行和下一行, awk 打印第一列地址.#!/bin/shrou
2012-04-19 12:51:44
4574
原创 使用scsh编写脚本收集编译的代码
在查看比较复杂的代码时, 往往由于过多的宏定义以及相同的函数名弄的晕头转向的.比较快速的查看代码的方法是1. 先用自己板子的配置文件编译源码2. 根据编译的.o文件和.depend文件 使用脚本生成一个文件列表3. 使用source insight或者其他查看代码工具添加文件列表. 经以上步骤, 查看的源码就不会包含那些不被使用的头文件和c文件. 这样便能快速而方便的了
2012-04-18 20:32:19
1721
1
原创 dma使用
1. DMA : 直接存储访问. 在不带MPU或者DSP的情况下,外设和内存之间高性能数据传输.2. 一个DMA传输器可以通过一个逻辑DMA通道来编程, 以适应应用需求.3. 专用DMA控制器: ISP(camera image signal processor) DMA, EDMA(内嵌在IVA2.2子系统), 显示DMA, USB HS(high-speed) DMA.4. DMA
2012-04-11 13:50:51
6003
原创 自上而下分析法
归约: -- 自下而上的语法分析过程 -- 分类: 简单优先分析法,算符优先分析法,LR分析法1.自下而上的语法分析过程思想 -- 是一个最左归约的过程, 从输入串开始, 朝着文法的开始符号进行规约,直到文法到达文法的开始符号为止的过程。 -- 工作方式: 移进--规约 -- 即: 自左至右把输入串的符号以一个移进栈,在移进过程中不断查看栈顶符号串,一旦形成某个巨型
2012-04-08 09:45:36
4705
原创 自上而下语法分析LL(1)
1. 语法分析的地位 --- 是编译程序的核心部分2. 语法分析的任务 -- 识别由词法分析得出的单词序列是否是给定文法的句子3. 语法分析的理论基础 -- 上下文无关文法和下推自动机4. 语法分析的方式 1) 自上而下语法分析 * 反复使用不同产生式进行推导以谋求与输入符号串相匹配 2) 自下而上语法分析 * 对输入符号串寻
2012-04-07 15:06:00
11458
原创 flex中dfa和nfa
有限自动机的数学模型由五个部分组成: 1. 有穷状态集 States 2. 输入字符集 Input symbols 3. 转移函数 Transitions 4. 起始状态 Start state 5. 接受状态 Accepting states一个状态机由起始状态, 通过接受输入一系列字符来实现状态迁移, 最终到达接受状态. 一. 在flex中一个nf
2012-04-05 20:45:15
1776
原创 设备事件通知
1. hotplug使用 1)内核配置文件:CONFIG_HOTPLUG=yCONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 2) 当设备添加,删除,更改时内核会调用 /sbin/hotplug 程序执行 3) 可通过/sys/kernel/uevent_helper 或者 /proc/sys/kernel/hotplug 修改 h
2012-03-29 08:46:21
704
原创 linux工具
1. ip与mac绑定#arp -f ip-macip-mac内容为:192.168.99.19 bc:30:5b:b9:93:82#arp -n地址 类型 硬件地址 标志 Mask 接口192.168.40.215 ether 14:14:4b:0
2012-03-29 08:41:18
742
原创 gcc生成二进制文件供uboot的go命令执行
使用gcc编译出二进制文件给uboot中go的命令执行.test.c 文件如下 ================ Start of test.c =======================================#include typedef void (*pr)(const char *fmt, ...);int main(int argc, cha
2012-03-21 20:36:30
5698
原创 android 屏幕设置相关
锁屏设置:1. 初始值 : 600002. 数据库/data/data/com.android.providers.settings/databases/settings.db中 system 表 screen_off_timeout.3. 开机锁屏, 在frameworks/policies/base/phone/com/android/internal/polic
2012-03-09 19:33:27
11753
1
原创 kernel-DDR配置
启动过程参考: http://bbs.chinaunix.net/thread-2039668-1-1.html参考: http://processors.wiki.ti.com/index.php/Setting_up_AM37x_SDRC_registersomap3_evm_init_irq 函数配置 sdrc_cs0和sdrc_cs1各种速率所对应的参数.最后通过 om
2012-03-08 20:23:14
4809
U盘kon-boot制作
2010-04-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人