自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(182)
  • 资源 (1)
  • 收藏
  • 关注

原创 跳棋程序有2000用户了,在Github上开源

This is short-cut version of Chinese Checkers for only 2 sides, don't know Chinese Checkers? see https://en.wikipedia.org/wiki/Chinese_checkers.Current it is built on Android Studio 2.1.1, you can

2016-09-01 11:28:54 2832 1

原创 原来 Java8 Stream 中的排序是插入排序

写了小程序,验证 Java8 Steam sort是如何实现package com.pnp.tryJ8col;import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;import java.util.stream.Stream;public class Main {

2016-08-25 16:09:58 11410

原创 Android MediaPlayer 类图和调用关系

Service side includes 3 components: Service, Service_client and Service_ImpementationService: it will be regiestered to ServiceManager, so Client can locate it, then call Service to create an Servic

2016-07-13 14:40:22 1483

原创 Droidplanner(tower) 系统分析

个人使用 DroidPlanner 手机地面站(简称DP),觉得很好用。也想了解其系统构成。就 git 下载了一个,在Android Studio 中编译成功。而后又看了下代码下面谈谈自己粗略理解:观测者模式广泛使用观测者模式(Listener), 这跟 model-view-controler 模式也相似, model数据变化,立马通知 view 更新显示。 而无

2016-07-12 10:25:30 5271 2

原创 suid 实验

简单验证看 /usr/bin/passwd 有 suid-rwsr-xr-x 1 root root 47032   /usr/bin/passwd用 payne运行它,发现用户是 root  payne@payne-MS-7678:~/try/uid$ passwdroot      2621  0.0  0.0  64636  1596 pts/12   S+   20:0

2016-06-24 20:54:50 783

原创 android cts理清testpackage和文件名的对应关系

android cts test package 管理有点混乱比如 testpackage android.appwidget 的文件是  CtsAppWidgetTestCases.xml (大概有1/4的文件名和testpackage名字一致  ) 当你生成test plan 的plan 又要指明 testpackage  我写了段python脚本,找出这些

2016-04-26 15:50:51 2048

原创 inotify的用法实践

inotify可用来监听句柄,从而知道文件是否被更改,删除,等监控文件被修改和删除,重新读取数据的代码如下.值得注意的要点是,ubunutu中很多修改的文件策略都是删除,再重建(比如用vi编辑一个文件)当文件删除/再重建后,将收到 IN_DELETE_SELF 消息和 IN_IGNORED 消息, 而后 watch_id 将被从 add_watch中移出,以后再收不到消

2016-04-05 14:23:29 1890

原创 追踪bionic的call method的方法

如果要追踪系统有没有调用bionic的方法,可以采用替换大法比如要查 prctl()  这个函数是否被调用就把 bionic/libc/arch-x86/syscalls/prctl.S 中的prctl 改名为  prctl1而后自己创建一个 bionic/pnp_prctl.cpp #include #include #include __BEGIN_DECLS

2016-03-09 16:17:49 702

原创 cleanflight 代码简单分析

用 Cleanflight 比较满意,就看看了它的源代码以便将来修改的时候方便

2016-02-18 13:04:28 6974 4

原创 2.4g遥控发射机接收机基本流程

bind发射选:择固定的rf channel, 和 address 发送tx id接收机:择固定的rf channel, 和 address 监听, 收到了,记录  tx id发射发射机 把各channel 数据, 打包发送, 还要加上 tx id (或者 tx id 与 address 整合了) 接收机:接收数据,收到后解包,转化为pwm控制各舵机,电调

2016-02-18 11:20:35 10320

原创 如何打log 检查 Android CTS failure

跑了CTS 就需要检查出问题的地方CTS提供一些Log但可能不够用,需要自己下该CTS src再增加代码, 如何做?1)根据出错信息,找到代码位置比如提示 com.android.cts.aadb.TestDeviceFuncTest#testSyncFiles_extStorageVariable 出错通过搜索找到文件是 cts/hostsidetests/aadb/sr

2016-02-17 16:23:07 2666

原创 把简单的老Android App项目转移到Android Studio

过去写了若干Android App, 都是在eclipse中写的现在要转移到Android StudioAndroid Studio 有个 import的功能,但是我就用自己编写简单跳棋程序,实验了一下失败了所以这里谈谈手动转移的建议1)建一个空的Android项目 注意包的名称和原项目名称完全一致2)把原项目的文件 copy过来cd src/cp

2016-02-16 16:42:18 1629

原创 android studio老办法编jni

过去一直用 eclipse, 现在google的官方支持都到 android studio, 所以必须用会它以前在双核i3 win7上运行AS, 慢得如同噩梦一般由来在 ubuntu  i5上运行,而后勇xming来作为xserver, UI相应还是慢得同噩梦只好全在ubuntu上运行了比较奇怪的是 AS 经常要访问网络,如果被 GFW 挡住了,就没法使用了实验

2016-02-16 14:51:15 745

原创 试用groovy

学计算机的没办法,新东西来了,只有跟上groovy 不知道goolge搞出来做啥,可能是java编程太麻烦,找一个替代品安装在 ubuntu下直接安装sudo apt-get install groovy而后运行 groovysh,这个东西不太好用比如生命变量:def str = "Hello world"要把 def去掉,否则就是声明的 local 变

2016-02-16 11:10:49 554

原创 unsigned int 相减的妙处

arduino 中定时器会清零,当我计算两个时间的间隔,是否会受到清0的影响,答案是不会的在arduino中做了试验如下unsigned int i, j=10000;void loop() { i += 10000; j += 10000; Serial.print("i:");Serial.println(i); Serial.print(

2016-01-26 15:16:29 1808

原创 编程练习:找到和最大的子序列

概念:当前位置:本算法只遍历一边,当前遍历到的位置子序列:位置连续的几个数当前子序列:当前要考虑的子序列,这里设定当前子序列是负就要舍弃临时和最大子序列:遍历没完成前,临时记录的和最大子序列,遍历完成它就是最终结果思路:首先,当前子序列为空,当前子序列和为0开始,遍历   当前子序列和 + 当前位置书,看结果是正还是负     正(或0)

2015-12-22 19:13:15 669

原创 首次运行gtest

看到 cleanfight 下面有 test/unit, 估计是做单元测试用的一个make (Ubuntu下面) 都编译了,再到 cleanflight/obj/test 生成了很多可执行文件原来 cleanflight的单元测试不是是stm32上跑了,而是在pc上跑,主要测试函数的功能找个源元件,原来是用gtest写的,下面就在 cleanflight目录下做 gtest的试

2015-12-16 16:08:31 1168

原创 Ubuntu下编译Openpilot

Openpilot  是CC3D 原生固件,下面实践如何编译生成1)首先准备 git  和arm toolchain, 参照"Ubuntu下编译 ardupilot" http://blog.csdn.net/span76/article/details/497820152)下载openpilot源代码git clone https://github.com/openp

2015-11-12 14:03:00 3431

原创 Ubuntu下编译 cleanflight

cleanflight 基于baseflight, 是支持多悬翼和固定翼飞控程序MultiWii 的代码违反很多软件工程原则,baseflight 也是,而cleanfligh 力图改善软件质量,提高可维护性。包括1)通过完善的测试实现更可靠的code, 2)更好的可维护性3)更容易加入新特性4)软件模块化更好,更易复用cleanflight 支持Naze,

2015-11-12 11:13:04 4335

原创 Ubuntu下编译 ardupilot

根据官方文档 http://dev.ardupilot.com/wiki/building-the-code-onlinux/先安装git ,  而后用 git clone下载源文件1)下载源代码sudo apt-get -qq -y install gitgit clone https://github.com/diydrones/ardupilot.git(如果不想cl

2015-11-11 17:45:20 8511 3

翻译 把 MultiWii 移植到arduino-due中

原文:http://technicaladventure.blogspot.com/2014/05/porting-multiwii-to-arduino-due.htmlGitHub 在 https://github.com/HefnySco/MultiWii_DUE, 请使用  Arduino-1.5.6r2 or later 编译Due 微控板使用 SAM3X8E ARM C

2015-11-10 15:12:51 1452

原创 树梅派kernel的编译与patch

2

2015-11-06 14:22:45 1491

原创 MPU6050 6DOF 数据读取

MPU6050 三轴加速度陀螺仪模块1)如何根据读出的值计算重力加速度官方给的文档如下:如果设置 1 (AFS_SEL=1)  量程式 +/- 2g (不是克,是重力加速度) 那么当你把MPU6050水平放置的时候,Z轴的ACC值应该接近 16384.LSB/g 是什么单位?  LSB的意思是最小有效位,为数字输出方式。 就是 如果有1个g的有效

2015-11-03 14:49:03 2939

原创 android netd 笔记

只讨论netd 提供dns服务,从android 4.4 开始,android 提供基于socket 的dns服务(类似ubuntu的dnsmasq)源文件在 system/netd 下面当应用需要访问dns服务的时候,通过system/netd/client接口访问, libnetd_client中的函数被bionic动态load了(只是猜想,需要确认)netd作为单独进程启

2015-10-27 16:57:20 4536

原创 git gerrit 实践经验

用git一段时间,体验还是比较好。尤其没次改一批文件,文件列表非常清晰。和gerrit结合,diff, review 都非常方便,尤其你不需要自己手动提交到服务器有些缺点库太大,做android 开发,要下载几十G的东西如果多人改同一个目录,不是很方便。有些体验如下:1) 工作前都用 repo start dev   开始一个branch 再工作否则

2015-10-26 17:05:15 1968

原创 Arduino 试用 Digispark Attiny85

过去多用 Arduino Mini, 现在试用 Attiny 85这板子,基本就是一个7805 + Attiny 85, 当然上位机为了与Arduino 集成可能还是花了些功夫功能如下:1.支持Arduino IDE 1.0+ (OSX/Win/Linux) (最后还是用Arduino 1.65+, 因为toolchain可以直接下载)2.能够通过USB或者5v或者7-35

2015-09-24 11:07:10 10612

原创 Android SystemUI中HOME key的处理

在Android系统的nav bar 中点击home按钮,就回到HOME,他是如何实现的在view的xml描述文件,指明了key_codeframeworks/base/packages/SystemUI/res/layout/navigation_bar.xml  ...   systemui:keyCode="3"   ...>而后再基类,K

2015-09-14 17:30:31 3051

原创 Android Looper(cpp)用法举例

在使用loop 前,我是直接使用 epoll 的,后来发现 loop 封装了 epoll, 使用起来还要更方便一点。static int event_handle(int fd, int events, void* data){ printf("==== handle === \n"); return 1;}int mMsgFds[2];int main(void)

2015-08-10 18:41:27 2359

原创 MingGW 内外中编写程序进行udp 通信

首先用python 编写一个serverimport socket address = ('127.0.0.1', 21567) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind(address) while True: data, addr = s.recvfrom(2048)

2015-07-24 11:36:44 796

原创 SDL 在 MingGW 中不支持 joystick

实验 SDL 了一个小程序,在linux 正常而后在 MingGW 编译通过gcc  -I/local/include -L/local/lib -w -Wl,-subsystem,windows -lmingw32 -lSDL2main -lSDL2 得到 a.exe, 但运行卡住了,没有任何反应 (看来SDL 在MingGW主要能支持窗口显示)// http://d

2015-06-29 14:42:37 956

原创 fltk(Fast Light Toolkit) hello world

fltk 很像一个小 qt系统,提供 小UI构件和事件循环(逻辑都在 Fl.cxx中).下面只是一个类似 hello world 的程序========= main.c =========#include #include #include using namespace std;//---------------------------------------

2015-06-15 16:03:53 955

原创 raspberry pi 的 C 程序编写

linux 都带了 gcc, 简单程序可以在树莓派中,直接编译复杂的程序,可以用 bcm (因为芯片是 broadcom 的) 的 toolchain 来编译http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/http://raspberrypi.sta

2015-04-30 10:47:57 2824

原创 Linux 下 USB-serial 端口的使用

把USB-serial 插上会看到下面的消息 dmesg | grep tty...[167848.524563] usb 1-1.3: ch341-uart converter now attached to ttyUSB0用下面命令设置好 波特率, 就可以通信了stty -F /dev/ttyUSB0 -raw ispeed 9600 ospeed

2015-04-29 18:17:26 3262

原创 编程练习:Biorhythms

http://poj.org/problem?id=1006DescriptionSome people believe that there are three cycles in a person's life that start the day he or she is born. These three cycles are the physical, emoti

2015-04-29 15:19:01 529

原创 编程练习:Spell checker

http://poj.org/problem?id=1035DescriptionYou, as a member of a development team for a new spell checking program, are to write a module that will check the correctness of given words using

2015-04-28 11:10:09 633

原创 ubuntu 运行 usb camera

用软件Cheese1) 插上 usb camera2)  软件中心 找 cheese 运行ref:http://www.ehow.com/how_5610857_mount-usb-camera-ubuntu.html通过 ffmpeg 捕获原来插了 usb camera 后,多了一个设备  /dev/video0  v4l2-ctl --list-devi

2015-04-27 15:24:45 6876

原创 整理源文件技巧:批量替换

批量改旧文件就是麻烦呀,我写了脚本来帮忙1)找到所有非 binary 的源文件 find -type f -exec grep -Il . {} \; 〉tochange.list2) 把含有 $Id 的一行去掉cat  tochange.list  | while read line; do  cat "$line" | grep -v '$Id' > txt

2015-04-24 17:32:03 633

原创 使用 icsp 烧程序

使用ICSP 异味着不依靠 bootloader才烧程序http://www.arduino.cc/en/Tutorial/ArduinoISP  6pin 的 isp 应该如下:下面的文章谈到了如何uploadhttp://tutorial.cytron.com.my/2011/09/30/how-to-program-arduino-by-using

2015-04-21 14:28:30 7952

原创 试用 Arduino Due

以前都玩328P, 现在玩玩arm的板子关于板子参见:http://www.arduino.cc/en/Main/ArduinoBoardDue1)下载 arduino-1.6.2-windows,2)安装driver其driver 目录下有 dpinst-x86.exe安装后,连接 Due 的programming port ( 靠近圆电源孔孔那个)

2015-04-21 14:05:59 7960 1

原创 编程练习:False coin

http://poj.org/problem?id=1029The "Gold Bar"bank received information from reliable sources that in their last group of N coins exactly one coin is false and differs in weight from other coins (

2015-04-16 17:44:28 1059

gnu-linker

(ld version 2) ld combines a number of object and archive files, relocates their data and ties up symbol references. Usually the last step in compiling a program is to run ld.

2013-06-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除