代码改变世界

Google C++编程风格指南

2013-10-13 18:15 by Rudrj2, 2043 阅读, 2 推荐, 收藏, 编辑
摘要:前言 从小就写字很挫,所以受够了被人鄙视的感觉,今天有个coder突然跟我说,你的代码怎么像小孩写的一样,顿时心情沮丧的极点。越来越发现一致的编程风格的重要性,于是把Google的C++编程风格指南看了一遍, 这里记录下于自己有益的rules。当规则有多个选择时,这里只记录个人习惯的用法, 并不代表它是唯一的用法。命名约定命名管理是最重要的一致性规则,因此我把它放在最前面。尽可能给出描述性名称。int num_errors; int num_completed_connections;文件名全部小写,用下划线做连接符。my_useful_class.ccC++文件以.cc 结尾,头文件以.h. 阅读全文

AVR GCC对端口的操作指南

2013-08-12 20:13 by Rudrj2, 2285 阅读, 0 推荐, 收藏, 编辑
摘要:1. AVR GCC for AVRI.I/O端口API1. BV用法:BV(pos);说明:将位定义转换成屏蔽码(MASK)。与头文件io.h里的位定义一起使用。例如,置位WDTOE和WDE可表示为“BV(WDTOE) | BV(WDE)”2. bit_is_clear用法:uint8_t bit_is_clear(uint8_t port, uint8_t bit);描述:如果port的bit位清零则返回1。此函数调用sbic指令,故port应为有效地址。3.bit_is_set用法:uint8_t bit_is_set(uint8_t port, uint8_t bit);描述:如果po 阅读全文

Android Audio 分析

2013-08-06 08:55 by Rudrj2, 5086 阅读, 1 推荐, 收藏, 编辑
摘要:一、架构二、MediaServer初始化所有的media服务都在进程mediaserver里。其代码在framework/base/media/mediaserver/main_mediaserver.cpp中。初始化过程如下。1. 先初始化AudioFlinger其初始化通过AudioFlinger的父类BindService创建唯一的AudioFlinger实例。2. 然后初始化MediaPlayerService和CameraService3. 最后初始化AudioPolicyService三、 AudioFlinger分析AudioFlinger负责管理每个音轨AudioTrack及R 阅读全文

nesC 语言参考手册

2013-07-17 15:25 by Rudrj2, 2881 阅读, 0 推荐, 收藏, 编辑
摘要:1 简介nesC 是对 C 的扩展 ,它基于体现 TinyOS 的结构化概念和执行模型而设计。 TinyOS 是为传感器网络节点而设计的一个事件驱动的操作系统,传感器网络节点拥有非常有限的资源 ( 举例来说., 8K 字节的程序储存器,512个字节的随机存取储存器) 。TinyOS 用 nesC 重新编写。本手册描述 nesC 的 1.1 版本, 在第 3 段中概述了它与1.0版的不同。nesC 基本概念如下:结构和内容的分离: 程序有组件构成, 它们装配在一起 (" 配线 ") 构成完整程序. 组件定义两类域, 一类用于它们的描述 ( 包含它们的接口请求名称) ,另一类用 阅读全文

浅析Linux操作系统工作的基础

2013-06-29 21:32 by Rudrj2, 1756 阅读, 3 推荐, 收藏, 编辑
摘要:环境:lubuntu 13.04 kernel 3.9.7作者:SA12226265 katao简介:本文根据 Linux™ 系统工作基础的分析,对存储程序计算机、堆栈(函数调用堆栈)机制和中断机制进行概述。文中将为您提供操作系统(内核)如何工作的细节,进一步从宏观概述结合关键点进行微观(CS:EIP、EBP/ESP等的变化)分析。一、存储程序计算机 首先让我们了解一下,什么是存储程序计算机,并对存储程序计算机的整个运行过程及所需的硬件组件进行简... 阅读全文

浅析Linux计算机进程地址空间与内核装载ELF

2013-05-30 22:28 by Rudrj2, 6884 阅读, 4 推荐, 收藏, 编辑
摘要:环境:lubuntu 13.04 kernel 3.8 gcc 4.7.3作者: SA12226265简介: 本文基于Linux™系统对进程创建与加载进行分析,文中实现了Linux库函数fork、exec,剖析内核态执行过程,并进一步展示进程创建过程中进程控制块字段变化信息及ELF文件加载过程。一、初识Linux进程 进程这个概念是针对系统而不是针对用户的,对用户来说,他面对的概念是程序。当用户敲入命令执行一个程序的时候... 阅读全文

浅析Linux计算机工作机制

2013-05-17 02:11 by Rudrj2, 2126 阅读, 2 推荐, 收藏, 编辑
摘要:环境:lubuntu 13.04 kernel 3.8 gcc 4.7.3作者:卡涛 SA12226265简介:本文将对 Linux™ 系统计算机的工作机制进行简单概述。文中将为您提供单任务系统如何工作的细节,然后将进一步展示汇编指令在CPU的运行过程,以及由单任务向多任务处理的扩展。♦ gcc用法参考(*表示文件名)– gcc –E –o *.cpp *.c 生成预处理文件– gcc –x cpp-output –S –o *.s *.cpp• gcc –S –o *.s *.c 编译成汇编– gcc –x assembler –c *.s -o *.o• gcc –c *.c -o ... 阅读全文

非官方翻译《如何在 Vitamio 中使用自己编译的 FFmpeg?》

2013-03-20 18:13 by Rudrj2, 1098 阅读, 0 推荐, 收藏, 编辑
摘要:要求:Vitamio3.0实在AndroidNDKr8b环境下构造的,因此建议你使用NDKr8b构造你的制定FFmpeg.通过开发者们的反馈,如果用其他版本的NDK会有很多问题,甚至崩溃.构造FFmpeg:首先需要从我们的GitHub(http://github.com/yixia/FFmpeg-Android)克隆一份FFmpeg-Android库.并且修改FFmpeg-Android.sh以适应你的需求.最通常的情景是,你想编译几个必要的FFmpeg模块到你的应用,并去掉其他你认为没有用到的部分.在这种情况下,你所需要做的就是修改shell脚本中的FFMPEG-FLAGS.所有变量在FFm 阅读全文

Service异常关闭解决

2013-03-19 16:01 by Rudrj2, 508 阅读, 0 推荐, 收藏, 编辑
摘要:每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,这个方法return 一个int值,return 的值有四种:START_STICKY:如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象。随后系统会尝试重新创建service,由于服务状态为开始状态,所以创建服务后一定会调用onStartCommand(Intent,int,int)方法。如果在此期间没有任何启动命令被传递到service,那么参数Intent将为null。START_NOT 阅读全文

Android转换位图BUG,知其然不知其所以然

2013-03-15 00:55 by Rudrj2, 4207 阅读, 4 推荐, 收藏, 编辑
摘要:最近,在开发某App的时候,发现了一个很奇怪的bug,前面我也发了关于bitmap的总结,但是这个问题恰恰出在BitmapFactory.decodeFile(pathName)这个函数上,使用这个函数在我的应用中如果设置在activity的onCreate方法内部,会导致activity无法加载,返回上级activity。 网上描述的大多数原因是OutOfMemoryError,但我catch不到这个error,所以可以肯定不是内存溢出引起的错误。为什么解码图像会出现这样的问题呢?关于这个问题,我纠结了一段时间。由于调用decodeFile与decodeStream基本相似,中间过程中... 阅读全文