- 博客(15)
- 资源 (5)
- 收藏
- 关注
原创 9100官方Rom
三星官方ROM下载地址http://www.sammobile.com/firmware/?page=3 Odin使用说明http://www.netded.com/a/jingpinshouji/2012/0518/23927.html 4.1.2官方新闻http://www.sammobile.com/2013/01/23/samsung-rolls-out-a...
2013-02-02 17:37:34
328
原创 Android调试工具
1. 查看当前堆栈1) 功能:在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系2) 方法: new Exception(“print trace”).printStackTrace(); 2. MethodTracing1) 功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函数调用关系等2) 方法:a) 在程序代码中加入追...
2012-09-02 11:36:03
186
原创 Android Recovery
Recovery简介Android利用Recovery模式,进行恢复出厂设置,OTA升级,patch升级及firmware升级。升级一般通过运行升级包中的META-INF/com/google/android/update-script脚本来执行自定义升级,脚本中是一组recovery系统能识别的UI控制,文件系统操作命令,例如write_raw_image(写FLASH分区),...
2012-05-27 20:34:10
282
原创 Nand Flash驱动, ECC, MTD, FTL, 文件系统
Nand Flash驱动, ECC, MTD, FTL, 文件系统2011-05-23 20:03特点Nand flash存储结构为chip->(plane)->block->page>byte。page分为数据区和oob(out of band),oob用于存放ecc码、标记坏块和文件系统备用等。Nand flash的物理特性决定了每一个bit只能从...
2012-04-27 18:19:05
834
原创 详解C中volatile关键字
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:short flag;void...
2012-03-31 12:55:10
150
原创 转:轮询、中断、DMA、通道
一、轮询方式 对I/O设备的程序轮询的方式,是早期的计算机系统对I/O设备的一种管理方式。它定时对各种设备轮流询问一遍有无处理要求。轮流询问之后,有要求的,则加以处理。在处理I/O设备的要求之后,处理机返回继续工作。 尽管轮询需要时间,但轮询要比I/O设备的速度要快得多,所以一般不会发生不能及时处理的问题。 当然,再快的处理机,能处理的输入输出设备的数量也是有一定限度的。而且,程序轮询毕竟占...
2012-03-28 18:50:51
194
原创 字符设备和块设备区别
设备分为两种:字符设备和块设备。不同之处在于块设备对于请求有缓冲区,因此它们可以选择以什么顺序进行响应。对于存储设备而言这一点是很重要的,因为在读写连续的扇区时比远远的分离的扇区更快。另一个不同就是块设备只能以块为单位接受输入和返回输出(块的大小根据设备的不同而不同),而字符设备只能使用它们可能使用的或多或少的字节大小。大多数设备是字符设备,因为它们不需要这种缓冲而且不以固定块大小进行操作。你...
2012-03-23 10:40:09
979
原创 C语言中static 用法总结
一、c程序存储空间布局 C程序一直由下列部分组成: 1)正文段——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(数据段)——在程序中所有赋了初值的全局变量,存放在这里。 3)非初始化数据段(bss段)——在程序中没有初始化的全局变量;内核将此段初始化为0. 4)栈——增长方向:...
2012-03-23 10:28:01
154
原创 spinlock,mutex,semaphore,critical section的作用与区别
-------------------------------------------------------------------------------------------- Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问,保证这段代码不会被并行的运行。Semaphore是...
2012-03-23 10:15:59
178
原创 Boot Loader
Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对 Boo...
2012-03-21 11:53:15
190
原创 常见存储器概念辨析
常见存储器概念辨析:RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash存储器可以分为很多种类,其中根据掉电数据是否丢失可 以分为RAM(随机存取存储器)和ROM(只读存储器),其中RAM的访问速度比较快,但掉电后数据会丢失,而ROM掉电后数据不会丢失。ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Me...
2012-03-21 11:20:30
198
原创 什么是BSP
什么是BSPBSP(Board Support Package)概念解析 BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写...
2012-03-20 11:37:19
331
原创 C++ 与 JAVA的不同点
一、 变量的定义和缺省初始化c++ 中声明变量的时候大多的进行了定义(即分配了内存),特例有:1) extent int x,仅仅声明了x,没有为x分配内存。2) 函数的声明(即在调用函数之前进行的声明,此时未定义)。3) 类的声明。java中 方法中的变量在声明时没有初始化,有些人以为会被初始化为null,其实不是.不初始化的话,编译器会报错的.直到被赋值或者被调用。...
2012-02-16 15:49:09
153
原创 Android 内存分析工具 MAT(Memory Analyzer Tool)
如果使用DDMS确实发现了我们的程序中存在内存泄漏,那又如何定位到具体出现问题的代码片段,最终找到问题所在呢?如果从头到尾的分析代码逻辑,那肯定会把人逼疯,特别是在维护别人写的代码的时候。这里介绍一个极好的内存分析工具 -- Memory Analyzer Tool(MAT)。 MAT是一个Eclipse插件,同时也有单独的RCP客户端。官方下载地址、MAT介绍和详细的使用教程请参见:www.e...
2011-11-24 17:54:28
199
原创 Android 内存优化的两个类:SoftReference 和 WeakReference
如果你想写一个 Java 程序,观察某对象什么时候会被垃圾收集的执行清除,你必须要用一个 reference 记住此对象,以便随时观察,但是却因此造成此对象的 reference 数目一直无法为零, 使得对象无法被清除。 java.lang.ref.WeakReference 不过,现在有了 Weak Reference 之后,这就可以迎刃而解了。如果你希望能随时取得某对象的信息,但又不想...
2011-11-18 14:01:00
139
android gridview/listview加载大量图片
2013-02-05
irrlicht 1.6 游戏引擎源码
2010-07-14
OpenGL编程指南SourceCode(VS2005工程)
2009-06-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人