- 博客(21)
- 资源 (1)
- 收藏
- 关注
转载 命令行手动编译打包Android apk
Android 命令行手动编译打包过程图 【详细步骤】: Step1:使用aapt生成R.java类文件。 例: F:/explorer/android-sdk-windows2.2/tools>f:/explorer/android-sdk-windows2.2/platforms/android-3/tools/aapt.exe package -
2014-10-30 10:56:43
617
转载 C语言测试:想成为嵌入式程序员应知道的0x10个基本问题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。 这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这个愚蠢的问题吗?如要你答出某个字符的ASCI
2012-09-08 11:12:42
972
1
原创 linux kobject与sysfs自学报告
统一设备模型(device model),提供了一个独立的机制专门来表示设备,并描述其在系统中的拓扑结构。建立了一颗设备树。 设备模型的核心部分就是kobject,就是对象类。 kobject对象被关联到一种特殊的类型,即ktype。 kset是kobject对象的集合体。把它看成是一个容器,可将所有相关的kobject对象置于同一位置。 subsystem在内核中代表高层概念,它
2012-07-20 22:18:30
396
原创 linux 页高速缓存和页回写 自学报告
页高速缓存(cache)是linux内核实现的一种主要磁盘缓存。它主要用来减少对磁盘的I/O操作。页高速缓存实际缓存的是页面大小的文件块。内核提供bread()底层函数从磁盘读单个块。 Linux页高速缓存的目标是缓存任何基于页高速缓存中的页面,这包括各种类型的文件和各种类型的内存映射。使用address_space结构体描述页高速缓存中的页面。
2012-07-09 20:31:59
551
原创 Linux 进程地址空间 自学报告
进程地址空间由每个进程中的线性地址区组成,而且内核允许进程使用该空间的地址。每个进程都有一个32或者64位的平坦地址空间。(平坦是指地址空间范围是一个独立的连续空间)。 进程有权访问的虚拟内存地址,这些可被访问的合法地址被称为内存区域(memory area).进程只能访问有效范围以内的内存地址。每个内存区域也具有相应进程必须遵循的特定访问属性(如只读,只写,可执行等属性)。
2012-07-08 12:07:32
467
原创 linux 块I/O层 自学报告
块设备的特点在于可以被随机访问,即在访问设备时随意地从一个位置跳转到另一个位置。 块设备中最小的可寻址单元是扇区(sector),扇区的大小是设备的物理属性。扇区对于内核的重要性在于所有设备的I/O操作都必须基于扇区来进行。软件的最小逻辑可寻址单元---块,(比扇区高一层的抽象)。块是文件系统的一种抽象---只能基于块来访问文件系统。块不能比扇区还小,只能数倍于扇区大小。
2012-06-03 22:47:43
615
原创 linux 虚拟文件系统 自学报告
在Unix中,文件系统被安装在一个特定的安装点上,该安装点在全局层次结构中被称为命名空间,所有的已安装文件系统都作为根文件系统树的枝叶出现在系统中。 文件其实可以看作是一个有序字节串。Unix系统将文件的相关信息和文件本身这两个概念加以区分;文件相关信息,有时候被称为文件的元数据(也就是说,文件的相关数据),被存储在一个单独的数据结构中,该结构被称为索引节点(inode),是index
2012-05-14 22:38:35
362
原创 linux 内存管理 自学报告
物理页作为内核管理的基本单位。主要的三个用途:1,页缓存使用(mapping域指向和这个页关联的address_space对象);2,作为私用数据(由private指向);3,进程页表的映射。用sturct page表示。这个数据结构的目的在于描述物理内存的一个页本身,而不描述包含在其中的数据。使用者可能是1,用户空间进程,2,动态分配的内核数据,3,静态内核代码,4,页高速缓存。 内核
2012-04-08 22:28:10
498
原创 linux 定时器和时间管理 自学笔记
系统定时器是一种可编程硬件芯片,它能以固定频率产生中断。该中断就是所谓的定时器中断。该频率可以通过编程预定,称为节拍率(tickrate). 全局变量jiffies用来记录自系统启动以来产生的节拍的总数,总是无符号长整数(unsignedlong),在32位体系结构上是32位,在64位体系就是64位。用volatile表示。 内核可以使用宏jiffies_to_clock_t()将
2012-03-20 21:18:14
413
原创 linux 内核同步自学报告
内核同步保护的是数据(data),而不是逻辑(logic). 中断处理程序中能避免并发访问的安全代码称为中断安全代码,在对称多处理的机器中能避免并发访问的安全代码称为SMP安全代码(SMP-safe),在内核抢占时能避免并发访问的安全代码称为抢占安全代码(preempt-safte). 1,原子操作,只能针对整数或者bit,用atomic_t类型(只能用24位,因为在SPA
2012-03-11 21:33:32
452
原创 linux 中断下半部自学笔记
中断处理函数有自身的局限: 1,中断可以打断任何重要代码(除去中断屏蔽下的中断处理函数和中断优先级高的中断处理函数)。要求中断处理函数速度越快越好。 2,中断自身会屏蔽,一般是屏蔽同级的中断,也可屏蔽所有的中断。 3,涉及对硬件的操作。 4,中断在进程上下文中进行。 因为以上局限,引入了中断下半部。BH和任务队列(task queue) 已经从2.5去掉。 还有以下三种
2012-02-25 22:47:17
412
原创 linux 中断自学笔记
什么是中断: 中断是某些硬件用来与cpu异步通信的一种方式,类似的还有异常.(中断与异常的根本区别还有待继续研究,将在新的文章中解释) 中断的本质: 发往中断控制器的一个电信号,而后由中断控制器发往cpu。最后由cpu来调用之前注册的中断控制器。 中断类型: 快速中断(SA_INTERRUPT):在中断处理程序中禁止所有的中断
2012-02-01 22:35:23
438
原创 Android low memory killer 详解
Android在内存管理上与linux有些小的区别。其中一个就是引入了Low memory killer .1,引入原因 Android是一个多任务系统,也就是说可以同时运行多个程序,这个大家应该很熟悉。一般来说,启动运行一个程序是有一定的时间开销的,因此为了加快运 行速度,当你退出一个程序时,Android并不会立即杀掉它,这样下次再运行该程序时,可以很快的启动。随着系统中保留的程序越来越多,内存肯定会出现 不足,low memory killer就是在系统内存低于某值时,清除相关的程序,保障系统
2011-02-12 22:20:00
1228
原创 Android vold 2.0 源码详解 (1)
从android2.2(froyo) , Android 改写了vold code. 将code从c语言,变为了C++,并且充分继承了framework,NetlinkListener等通用类,虽然较大了提交的vold的结构性,可继承性和扩展性,但同时也增加了代码的复杂度。介绍一篇很不错的文档 ANDROID中的VOLD分析但这篇文章更加侧重在结构上,实用性有所欠缺。本文首先详细介绍各个文件和类的主要作用,然后再详细的介绍vold的操作流程,希望有所帮助。如有任何问题,可以直接留言提问.
2011-01-26 20:41:00
2830
原创 一丝不挂
<br />在听陈奕迅的一丝不挂,已经听了一个小时了。<br /> <br />查看了一下对于“一丝不挂”的解释, 很中意下面一句:一丝不挂<br /> 无论是心境上,还是形体上都可以用。运用之妙,存乎一心。关键看个人的感想和想象力。<br /> <br />存乎一心,关键看个人的感想和想象力。<br /> <br />对于任何事,任何人,世间万物的理解不都是出自人的内心之处。
2010-11-19 23:54:00
574
原创 linux kernel performance 调试小结
<br />今天写一下,在linux下碰到performance时候的一些调试方法<br /> <br />ps, 了解有哪些进程正在运行,加上cat /proc/meminfo, 查看内存的运用状态<br /> <br />top, 进一步理解各个进程的情况,可以用top -n 1 -t,了解到线程的情况。<br /> <br />了解到哪个进程甚至线程成为了系统的瓶颈,<br /> <br />可以利用strace -p pid, 跟进去发现究竟是什么步骤阻塞了系统。<br /> <br />
2010-10-26 16:45:00
1006
转载 【转载】 YAFFS 自学書面報告
转自http://esslab.tw/wiki/index.php/YAFFSYAFFSFrom ESSLabWikiJump to: navigation, searchIndependent Study 書面報告指導教授:張立平 教授學生:黃千庭目錄一、摘要二、動機三、YAFFS基本架構及運作3
2009-10-27 10:39:00
1186
转载 【转载】Yaffs 文件系统分析
1 Yaffs文件系统结构1.1 简介1.1.1 应用场合 Yaffs(Yet Another Flash FileSystem)文件系统是专门针对NAND闪存设计的嵌入式文件系统,目前有YAFFS和YAFFS2两个版本,两个版本的主要区别之一在于YAFFS2能够更好的支持大容量的NAND FLASH芯片。Yaffs文件系统
2009-10-19 13:40:00
540
转载 linux中的古老缩略语
无意中看到了一篇zz http://hi.baidu.com/lyricidyll/blog/item/54e8f9a9c35bb8bbca130c7c.html挖Linux中的古老缩略语Unix已经有35年历史了。许多人认为它开始于中世纪,这个中世纪是相对于计算机技术的产生和发展来说的。在过去的时间里,Unix和它的子分支Linux收集有许多的历史和一些完全古老的语言。
2009-10-15 11:18:00
505
原创 Yaffs goes bad when flash is completelly full,yaffs文件系统在空间占满后,出现错误
yaffs2的文件系统,在文件空间占满后,如果依然不停的写文件,则会在一段时间后出现文件系统的错乱,文件名出现乱码的现象,日志可能出现yaffs tragedy: no more eraased blocks!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!。Charles Manning已经fix这个问题在http://www.
2009-09-07 10:21:00
1477
原创 vim操作基本命令集合
在正常模式下按下i键来插入文本 按下o在光标下方打开新的一行并进入插入模式 按下a将在光标之后插入文本,A则可以在行末插入 按下键返回正常模式。 按下x键来删除光标所在位置的字符。按下dw键可以从光标处删除至一个单字/单词的末尾。按下d$键可以从当前光标删除到行末。 按下dd键删除该行。[number] d object 或者 d [numbe
2009-02-27 11:33:00
619
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人