Jason Blog

Stay Hungry, Stay Foolish

Linux信号编程,sigprocmask用法

最近在学习nginx,看到里面有关于sigprocmask使用,查了些资料,顺便记录下。 sigset_t sigset_t是代表信号集合的数据结构。一个进程有一个信号集,这个信号集表示当前屏蔽(阻塞)了哪些信号。 如果把信号集中的某个位置置1,表示屏蔽了该信号,如果再来此信号,该进程是收不到的。 先介绍几个信号编程常用的系统API sigemptyset();//把信号集中的所有...

Android开机启动优化

最近在搞安卓开机优化,很不好搞,把遇到的问题先记录一下。 使用bootchart分析开机启动时间 编译bootchart 在/system/core/init中的Android.mk中加入INIT_BOOTCHART:true LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) INIT_BOOTCHART := true 使...

Google 神经网络TensorFlow填坑日志

Tensorflow简介 TensorFlow™ 是一个使用数据流图进行数值计算的开源软件库。图中的节点代表数学运算, 而图中的边则代表在这些节点之间传递的多维数组(张量)。这种灵活的架构可让您使用一个 API 将计算工作部署到桌面设备、服务器或者移动设备中的一个或多个 CPU 或 GPU。 TensorFlow 最初是由 Google 机器智能研究部门的 Google Brain 团队中...

Linux Kernel里的cpu_to_le32是干啥的?

在kernel里面经常能看见把十六进制数用下面几个函数转换一下,比如be32_to_cpu, cpu_to_be32, cpu_to_le16,cpu_to_le32等.其实很简单. 名词解释 le叫做little endian, be叫做big endian,这是两种字节序,分别称为小段和大端. le表示地址低为存储值的低位,地址高位存储值的高位. be表示地址低位存储值的高位,地...

ARM gdb调试函数显示问号

GDB是一个非常强大的调试工具,尤其是在查找segmentation fault原因时非常有用.但有时加载了core dump文件后,你会发现出错的地方函数显示是问号.怎么办呢?其实是共享库路径没设置对的原因. 首先启动gdb. #查看共享库信息 (gdb) info sharedlibrary From To Syms Read Shared Obj...

利用shell脚本实现守护进程

在程序开发过程中,经常需要使用一个进程来监视另一个进程,如过这个进程挂了,那么监视它的进程就会把它重新拉起来.这就是守护进程的作用,守护进程可以用C实现,下面介绍一种简单的实现方式,使用shell脚本. #!/bin/sh #添加本地执行路径 export LD_LIBRARY_PATH=./ while true; do { #启动一个循环,定时检查进程是否存在 # ps aux --...

Android Binder系统分析

毫不夸张地说,Binder是Android系统中最重要的特性之一;正如其名“粘合剂”所喻,它是系统间各个组件的桥梁,Android系统的开放式设计也很大程度上得益与这种及其方便的跨进程通信机制。 Binder模型 Binder对用户来说主要分为注册服务,获取服务和使用服务,后面我会分别分析这三个过程的C++实现和JACA实现。 ###addService 这里我先不具体分析Bin...

Android APP如何使用通知灯

从APP到JNI层

本文采用情景分析的方法来分析应用程序如何使用通知灯,所谓情景分析,就是抓住一条主线,只关心与我们相关的代码,忽略不相关的代码.这个方法是我从LINUX内核源代码情景分析中学到的,在此向两位前辈毛德操,胡希明致敬. 应用程序中如何使用通知灯 NotificationManager manager = (NotificationManager)getSystemService(NOTIFIC...

NandFlash ECC软校验错误调试

问题描述 公司的的板子要换NandFlash,所以需要先验证下.以前NandFlash一直使用的是软校验的方法,按理说这部分不用动,系统就应该正常启动,并挂载文件系统.因为U-boot里面的软校验算法就是移植内核里面的. 可实际情况确实,内核能起来,但挂载文件系统的时候报ECC ERROR. 问题解决 由于文件系统是u-boot烧写进去的,那就先比较下文件系统在内核里面和在u-boo...

Android ADB 常用命令

adb logcat的过滤基本用法 adb logcat //打印默认所有日志 adb logcat -s tag //打印带有tag标签的所有日志 adb logcat -v time //打印所有日志并带上时间 adb logcat -s tag -v time //打印带有tag标签的所有日志并带上时间 adb logcat > D:/log.txt ...