- 博客(82)
- 资源 (6)
- 收藏
- 关注
原创 构建模块
Helloworld Makefile DRI_NAME :=helloworldobj-m :=$(DRI_NAME).oKERNELDIR ?=/opt/source/os/linux-2.6.24PWD ?=$(shell pwd)default: $(MAKE) -C ${KERNELDIR} M=${PWD} modulesclean: @rm -rf *.o *.ko ....
2018-05-08 11:09:27
922
原创 iptables初探
因为某些原因,为了让自己的机器可以上网必须通过同事的一个IP 192.168.1.34本机IP为192.168.1.54还有一台机器IP为192.168.1.44同事192.168.1.34增加了一条路由表iptables -t nat -A POSTROUTING -s 192.168.1.54 -o eth0 -j SNAT --to 192.168.1.34我的192.168.1.54 既可...
2018-05-08 11:08:49
1512
原创 nfs 启动linux
最近在研究gcc 本身-pg + gprof的热点分析支持,可析我们开发板的uclibc不支持此选项,于是产生更换uclibc为glibc的想法,由于以前自己未曾构建过根文件系统,为了避免一次一次的写FLASH,决定使用nfs rootfs启动. 首先内核加入选项Root file system on nfs 编译内核使用命令mkimage -A arm -T kern...
2018-05-08 11:08:04
1784
原创 分辨率等比例缩放
前几天给同事查了一个BUG,最后发现BUG是因为16/9分辨率的视频缩放到非16/9分辨率的屏幕上黑边引起的问题,然而,关于一个1280*720缩放到1024*768分辨率的屏幕上应该留多少像素的黑边却一时不知道如果计算了,后来咨询同事算法如下 以1024为基准计算出1024如果是16/9为基准的得到的宽度为1024*9/16=576 那么1024*768应该留的黑...
2018-05-08 11:07:43
9077
原创 linux LD_PRELOAD
前些天为了排查我们程序中不知道是库里面还是我们自己调用了assert断言,导致我们程序死亡。想通过hook拦截到调用这个函数的调用者,偶然间想起proload(预加载),小试牛刀使用如下代码#include <syscall.h>#include <stdio.h>#include <sys/types.h>#include <unistd.h>vo...
2018-05-08 11:06:58
5960
1
转载 ARM GNU 工具链在使用gprof中的一个bug
最近发现了ARM GNU 工具链在使用gprof中时存在一个bug,描述如下:版本为:gcc-3.2.1+glibc-2.3.1+binutils-2.13.2。这个bug存在于glibc-2.3.1至目前的最新版本(2.3.5)。搭建的工具链为ARM版本。 现象:gcc -pg(或gcc -pg -O2)选项编译的动态程序运行不生成gmon.out文件。静态程序不存在问题。 解决:下面两点都要注...
2018-05-08 11:06:22
2024
原创 linux启动程序缓慢
公司的机器E5800 2G内存,debian 5.0,用了一年了,但是最近发现启动程序异常缓慢,慢道有点接受不了了启动一个vim要1分钟左右使用strace vim输出如下信息zhangzhao-debian:~# strace vimexecve("/usr/bin/vim", ["vim"], [/* 34 vars */]) = 0brk(0) ...
2018-05-08 10:42:34
5263
原创 printf输出死机
今天老大给安排了个任务,查死机BUG 这正是我喜欢的事情,于是二话不说投入200%的精力,开始查。话说此BUG 必先,一般来讲,毕现不是BUG,可是这个BUG却把我折腾的够呛,查了两个小时从有根据变成了没根据此BUG崩溃时我们dump出了他当时的寄存器值和堆栈的内容,提一下我们的运行环境arm1176,编译器为gcc 3.4.1。 通过分析寄存器的值 regs.ARM_pc = ...
2018-05-08 10:41:51
6267
原创 VirtualBox 磁盘扩容
平时工作在linux主机上,公司的一些软件无法使用,无奈使用虚拟机虚拟windows,喜欢web版的软件,跨平台方便呀。 以前使用过vmware,在windows是上跑的当当的,linux版本虚拟机开机关机,内核模块总是内存泄露。导致机器占用内存越来越多,无法接受,况且vmware还得找序列号,偶然间发现Sun VirtualBox (现在是Oracle的了),非常好用,速度...
2018-05-08 10:40:52
2894
1
原创 android学习之路-1-初步环境建立
移动互联网浪潮不可阻挡,安防破监控设备依然是那么的图,北漂一族不能被时代抛弃,准备学习android or ios ,我认为android 有几大优势1.N多大公司支持2.开放性极强,程序员的思维有时候解决问题可以跟踪代码从上到下(app->jni->c++ framework->linux kernel->driver->hardware)当然,我的水平仅限于APP...
2018-05-08 10:40:03
1373
原创 android 显示系统1(本系列使用的源代码和一些资源)
AOSP源代码下载之所以使用下面的版本,是因为它可以运行在google最新的pixel手机上(Pixel 2 XL、Pixel 2、Pixel XL、Pixel ),并且代码的新旧程度也很合适,目前最新的tag是android-8.1.0_r18repo init -u https://android.googlesource.com/platform/manifest -b and...
2018-05-03 15:35:45
248
原创 openjdk 初试(build)
下载我使用的环境是 ubuntu 16.04 基本上属于ubuntu 的最新版本所以建议下载openjdk的最新开发分支的代码 否则会有个中问题的 下载链接 http://openjdk.java.net/projects/jdk8u/ openjdk使用了hg作为版本控制的工具hg clone http://hg.openjdk.java.net/jdk8u/jdk8ucd jdk8u
2017-12-29 18:39:40
1474
原创 android bionic linker debug enable
Linker—android里面的加载器ld这类的基础库要想调试基本上gdb是派不上用场的,最好用的还是printf,这里的printf是个泛指 android 的调试基本上都是通过logcat 输出的,当然你也可以自己打开一个文件写,不过那样子会带来各种权限问题,阻止的让你崩溃!Linker 的debug 主要靠printf 分为三个档#define PRINT(x...)
2017-08-04 18:58:42
1198
原创 Docker
ubuntu 编译aosp必备 不过大家也知道ubuntu 桌面一直稳定性比较弱 之前一直使用debian 稳定性还是很高的,基本上可以一年开两次机器,一次开半年!随着android 版本的不断增多,一个单一的ubuntu 14.04也不足一满足所有的android 版本编译 你仍然需要在openjdk 7\openjdk 8\jdk 6\jdk 7几个版本不断切换,带来了很多的不确定性 直
2017-07-21 18:08:12
254
原创 gdb 系列(2) (build&debug gdb)
为什么要debug上文我们提到的,1.很多时候你对一些ptrace系统调用为什么错误很感兴趣,这里面首要的问题就是在错误的时候错误码是什么?当然你可以在kernel里面打印,不过不经济,如果你不是深入调查这个错误的原因2.如果我自己实现一个类似gdb的东西那么我应该怎么传递ptrace参数,比如attach一个pid3.我想查看一些gdb工作原理,比如breakpoint是怎么工作的这些都
2017-02-20 18:14:27
470
原创 gdb 系列(1) (hwbreakpoint\watchpoint)
1. 软硬件环境android 7.0(n) QCOM 骁龙8202. 背景我最初是因为要做一件类似这样的事情的时候才研究这个的 art debug过程中我们发现 经常有SIGSEGV的问题,而且是死在java 代码里(art 已经使用dexoat把java code compile 成了机器码) 几经分析发现是在对象的method里执行的时候this指针被改了,导致了取对象的一些成员的时候出
2017-02-18 20:43:34
8057
3
原创 android memory
查看内存工具有 dumpsys meminfo procrank procmem ps topVSS ( 等同于 ps 命令列出的 VSZ) 是单个进程全部可访问的地址空间。 其大小包括可能还尚未在内存中驻留的部分。比如地址空间已经被 malloc 分配,但是还没有实际写入。 对于确定单个进程实际内存使用大小, VSS 用处不大。RSS 是单个进程实际占用的内存大小。 RSS 易被
2017-01-25 18:25:24
307
原创 基础(可执行文件elf)
因为oat本身就是一个elf文件,所以进行一些2进制问题分析的时候还是需要一些基础知识字节序 // 小端口诀: 高高低低 -> 高字节在高地址, 低字节在低地址 // 大端口诀: 高低低高 -> 高字节在低地址, 低字节在高地址 // 1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。 // 2.大端法(Big-Endi
2017-01-24 10:44:59
387
原创 linux 虚拟内存地址转化成物理内存地址
背景 现代手机这种SOC(system on chip),因为功耗、Modem等功能soc上集成了很多core,他们还可以是独立的系统在运转。 比如ADSP简介ADSP(Application Digital Signal Processing)就是高通的Hexagon DSP ,就是独立运转的一个core+system。这样做不仅可以使用soc上的专用核处理专业的事情,比如上面说的ADSP就可
2017-01-23 16:04:15
1285
原创 JVM基本概念
编译相关 英文缩写 英文全称 中文 AOT Ahead Of Time 静态编译器 JIT Just In Time 动态编译器 PGO Profile-Guided Optimization 通俗的说就是基于动态信息的激进优化Java调试相关IBM Developerworks 介绍调试相关的好文章 英文缩写 英文全称 中文 JDWA
2017-01-10 19:26:42
391
原创 2017新年,开篇
2017新年,开篇新年,新开始Android 摸爬滚打已经(2014.05 — 2017.1)有小三年,回顾过去,搞过手机Multimedia,Frameworks问题排查,和15年风口上的VR(Virtual Reality),效力的东家还是除了暴风之外一个视频巨头(可以联想很多很多)。只是什么都略懂一些,没有拳头,用小说里武林人士说法就是各种杂牌武功练了一遍,还是武林中的一名小卒子,需要找个深山
2017-01-10 18:47:20
328
原创 windows 7 修改samba共享时保存的用户名和密码
2015-08-28离开了老东家 2015-08-31入职新东家2015继续加油 ubuntu 环境配置好,windows 7 虚拟机搞起来,virtualbox 一直有点问题就是文件共享不好用于是使用了另一套方案samba配置ubuntu 14.04 samba使用了如下方案http://jingyan.baidu.com/article/00a07f38b9194082d0
2015-09-10 10:08:26
16018
1
原创 android java unicode 之间的关系
背景 使用正则表达式寻找emoji字符,进行过滤 1.通过 http://apps.timwhitlock.info/emoji/tables/unicode 确定emoji 的字符码点范围在 \u1F600-\u1F6FF 之间 需要查看unicode码点和UTF-8 UTF-16 UTF-32的童鞋可以参考这篇文章 http://www.ruanyifeng.com/blog/20
2015-02-26 17:07:23
3823
原创 apache config 1 Bandwidth Mod (apache speed control)
调试网络的时候进行 HTTP模拟网速 快慢 使用apache 插件 Bandwidth Mod 1.安装mod_bw下载http://bwmod.sourceforge.net/#解压进入目录执行sudo apxs2 -i -a -c mod_bw.c2.配置在配置文件/etc/apache2/httpd.conf 加入如下 配置为低速模式 1KB/SS
2014-09-30 19:27:51
1209
原创 eclipse config 5 括号匹配插件
这个插件将可以使你的eclipse 具备sourceinsight的另一项大招当函数体过长时,嵌套层次过多时,在大括号结尾显示这个大括号对应的开始字符方便查看层次问题,当然所有的编码规范不推荐嵌套层次过多。如下图虚线部分即是同时该插件还可以支持多层级括号匹配时 不同的层级使用不同的亮度来进行显示,清晰明了还支持鼠标划过时括号匹配动态更新,我一般关闭这个选项,个人癖好
2014-09-03 19:29:47
2906
原创 git submodule
使用这个的前提:1.工程依赖不太大,比较简单,5个以内吧(比较大了还是用android 的 repo吧)2.注意submodule的提交需要在它的目录下执行3.注意 git submodule update4.循环执行可以使用git submodule foreach git submodule update主要应用与 使用了别人的库,不需要自己维护总之就是
2014-08-26 20:54:44
3567
原创 eclipse config 4 关闭eclipse警告
毫不夸张的说每个程序员都是一个完美主义者添加一个c/c++代码,满脸的都是条纹各种标注无法容忍像下图所示好,我们来个暴力的,关闭它点击Window->Preferences打开如下选项关闭所有的代码分析是不是舒服多了
2014-07-09 16:03:34
2160
原创 eclipse config 3 配置pydev
啥也不说了人生苦短,我用python准备工作sudo apt-get install python3-dev如下操作依次点击菜单Help->Install New Software... 点击add添加如下插件地址http://pydev.org/updates然后列出了两个插件 下面的PyDev Mylyn Integrat
2014-07-09 14:32:00
1580
原创 eclipse config 2 tab -> space
编码规范要求不允许使用tab,但是又要有4个字符的缩进,连点4次space,这不是程序员的风格来看看 eclipse 设置一次tab像space的转换如下操作Window->Preferences 基于K&R clone一个新的代码风格更改缩进风格 缩进大小为4,即4个字符,OK完成了
2014-07-09 13:42:24
918
原创 eclipse config 1 配置主题
程序员盯着屏幕时间长了难免会想看个自己舒服的颜色,尤其是一天下来一直盯着的编辑器OK 依次点击菜单Help->Install New Software... 点击add添加如下插件地址http://eclipse-color-theme.github.com/update如下图所示之后就一步一步的操作然后如下操作Window->Preferences
2014-07-09 11:10:48
1010
原创 android 开发中用到的工具-持续更新(码农必看)
1. vim 单文件查看修改利器(一直使用支持各种编码各种文件,各种插件),欢迎下载笔者插件git clone https://github.com/green130181/vim-conf.gitdevelopment 是开发目录,要使用的话直接进入该目录执行make install 即可doc是个继续latex 的 文档,介绍一些插件如何使用的文档2.Geany 不错的文件查
2014-07-02 16:43:13
1498
原创 android 如何单独下载一个项目
起因,“网络”不太好,“比如铁通的就是不如联通的”每次执行一边repo sync,十分蛋疼,如果不做full build无需全部下载,着急看某个项目的改动可是repo sync会一个不拉的把所有的AOSP项目拉一遍。。。。。。。废话少说,单刀直入执行方式git clone https://android.googlesource.com/platform/framewo
2014-06-27 08:34:16
1631
原创 实用的eclipse adt 快捷键
Ctrl + Shift + T: 打开类型:显示"打开类型"对话框来在编辑器中打开类型。"打开类型"选择对话框显示工作空间中存在的所有类型如类、接口等。 Ctrl + Shift + R: 打开资源:打开"打开资源"对话框以打开工作空间中的任何资源。在Package Explorer中不必浏览文件便可快速打开任意一个文件。使用这个快捷键可以打开一个对话框,在里面输入你想查找的文件或者
2014-05-29 15:44:04
8475
1
原创 ubuntu unity 左侧长条添加新启动
gnome terminal 我的最爱,以前用debian各种舒服最近搞android 切换到ubuntu 12.04 不得以
2014-05-28 16:15:58
1174
原创 android学习之路-2-package build环境建立
写本文章时,笔者已经成功的进入了安卓开发者(framework/av)的行列。感谢大家在论坛中对笔者的鼓励,后面会陆续给大家分享自己工作中的心得,大家共同学习共同进步。开发环境:ubuntu 12.04 LTS 64bit硬件: 有史以来,配置最强的硬件1.下载构建 android-source ubuntu 依赖包sudo apt-get install git gn
2014-05-26 14:40:37
1182
VLC-debug.apk arm android
2014-06-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人