ROM系统结构和分区解析

合集下载

半导体存储器结构及版图(ROM)

半导体存储器结构及版图(ROM)

半导体存储器结构及版图(ROM)
本篇主要涉及有关半导体存储器的存取方式及相应版图结构分析。

首先我们来看看一个最基本的ROM存储器的结构及其工作方式。

假设2根地址线,4根数据位,即A[1:0],D[3:0]。

A0,A1可以最多产生2^n种变化,这里的n为2即可产生4种组合记为W[3:0](如图)。

表格中列出了不同的地址信号产生的不同选择,比如A0=0,A1=0时,只有W3 =1,其余均为0。

也就是说,如果定义1 (高电平)选中那么A0A1=00时,W3被选中。

如上图所示,输出的数据即为D0=1,D1=1,D2=0,D3=0。

换句话说A0=0,A1=0就必然选中W3,所以完全可以用两个开关MOS来代替,如下图所示:
通常采用NMOS,就将开关MOS替换成NMOS接地,A0-A0反反接,A1-A1反反接即是。

不过实际的ROM电路并不是直接连获取得电位,而是ROM 的核心部分都是NMOS,BL线MOS源漏相连接地,WL控制gate以低电位选通(NMOS电位gate平时都是高电位,只有为低电位时才会阻断到地)。

考虑到R OM的扩展性,还会有片选SEL端控制一个区域是否选中。

把电路画成版图就会有一些形式上的变化,除了考虑到结构的规整,也会考虑到是否因为过于庞大造成寄生的增加,影响到读取的速度,因此也就出现如图所示的结构分布。

手机rom原理

手机rom原理

手机rom原理
手机ROM是只读存储器(Read-Only Memory)的简称,它是
手机内部的一种存储器芯片。

它的特点是可以一次性写入数据,但是无法擦除或重写。

手机ROM通常用于存储手机操作系统(如Android、iOS等)和预装的应用程序。

ROM的原理是通过一种特殊的制造工艺将数据写入到芯片中。

ROM芯片内部包含了一系列固定的电路和存储单元,每个存
储单元只能存储一个位(0或1)。

在制造ROM芯片时,厂
商根据需求预先编程,将特定的数据写入到芯片中。

与可擦写存储器(如闪存)不同,ROM芯片无法通过电信号
的激活来改变存储单元的状态。

这意味着一旦数据被写入
ROM芯片,就无法更改或者删除。

这是ROM的一大特点,
也是它应用于手机操作系统和预装应用的原因之一。

当手机通电时,ROM芯片中的数据会被加载到手机内存中,
供操作系统和应用程序使用。

此时手机的操作系统就能够被启动并正常运行。

由于ROM的数据无法被改变,因此操作系统
和预装应用程序的稳定性得到了保证。

总之,手机ROM是一种只读存储器芯片,用于存储操作系统
和预装应用程序。

它通过特殊的制造工艺将数据写入到芯片中,一旦写入后无法修改或删除。

这使得ROM在手机中起到了保
证操作系统和应用程序稳定性的重要作用。

只读存储器(ROM)

只读存储器(ROM)

7.2 只读存储器(ROM)1. ROM的结构ROM主要由地址译码器、存储矩阵和输出缓冲器三部分组成,其基本结构如图 7.2.1所示。

存储矩阵是存放信息的主体,它由许多存储单元排列组成。

每个存储单元存放一位二值代码(0 或 1),若干个存储单元组成一个“字”(也称一个信息单元)。

地址译码器有n条地址输入线A0~An-1,2n条译码输出线W0~W2n-1,每一条译码输出线Wi称为“字线”,它与存储矩阵中的一个“字”相对应。

因此,每当给定一组输入地址时,译码器只有一条输出字线Wi被选中,该字线可以在存储矩阵中找到一个相应的“字”,并将字中的m位信息Dm-1 ~ D0送至输出缓冲器。

读出Dm-1~D0的每条数据输出线Di也称为“位线”,每个字中信息的位数称为“字长” 。

ROM的存储单元可以用二极管构成,也可以用双极型三极管或MOS管构成。

存储器的容量用存储单元的数目来表示,写成“字数乘位数”的形式。

对于图 7.2.1 的存储矩阵有2n个字,每个字的字长为m,因此整个存储器的存储容量为2n×m位。

存储容量也习惯用K(1 K=1024)为单位来表示,例如1 K×4、2 K×8和64 K×1的存储器,其容量分别是1024×4 位、2048×8 位和65 536×1 位。

地址译码器的作用是将输入的地址代码译成相应的控制信号,利用这个控制信号从存储矩阵中把指定的单元选出,并把其中的数据送到输出缓冲器。

输出缓冲器的作用有两个,一是能提高存储器的带负载能力,二是实现对输出状态的三态控制,以便与系统的总线联接。

2. 二极管ROM电路图7.2.2是具有2位地址输入码和4位数据输出的ROM电路,它的存储单元使用二极管构成。

它的地址译码器有4个二极管与门组成。

2位地址代码A1A0能给出4个不同的地址。

地址译码器将这4个地址代码分别译成W0~W34根线上的高电平信号。

rom工作原理

rom工作原理

rom工作原理
ROM(只读存储器)是一种电子计算机存储器,其工作原理
是通过一个非常稳定的电容或磁态来存储数据。

与RAM(随
机存取存储器)不同,ROM的数据在电源关闭后仍然保持不变,因此被称为只读存储器。

ROM的数据是在制造时被编程的,编程过程在生产过程中进行。

数据被写入ROM后,将不能再进行修改或擦除。

这使得ROM对于存储不变的程序代码或固定数据非常有用。

ROM的电容或磁态的稳定性是实现其只读特性的关键。

数据
被存储在ROM的存储单元中,每个存储单元代表一个位(0
或1)。

当读取ROM时,电子设备会根据存储单元的状态将
其解释为相应的位。

这是通过向ROM施加电压或电磁信号来
实现的。

如果ROM存储单元的电容或磁态为高电平,则对应
的位为1;如果电容或磁态为低电平,则对应的位为0。

由于ROM是只读的,因此它在计算机系统中用于存储固化的
程序代码和初始设置数据,例如启动程序和基本输入/输出系
统(BIOS)。

ROM有多种类型,包括只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)和电可擦除可编程只读存储器(EEPROM)。


些不同类型的ROM具有不同的特性和数据写入/擦除机制,
但它们都遵循了ROM的基本工作原理。

ROM定制部份原理知识

ROM定制部份原理知识
源作者:MrPotter64MB,系统中显示的少,是除去了PAGEPOOL(高速缓存默认6MB)、RADIO、DMA、屏幕缓冲区等系统核心的部分。WM不支持虚拟内存PAGEFILE。
ROM 128MB位于DiskOnChip芯片,顾名思义就是把存储芯片模拟成了磁盘,用的FAT文件系统,所以就有分区,一般用的是OS分区(就是刷机要刷的分区)和extended_rom分区(放恢复出厂设置后自动安装的OEM安装包)。还有IPL(BIOS)、SPL(加载OS,显示第2屏开机画面,如果刷机刷坏了就停这了,这时还可以利用三色屏或SD卡重新刷官方ROM,所以只要IPL、SPL不坏就不怕,而一般刷机是不刷这2部分的)、RADIO模块。剩下的就是用户可以使用的存储区(大概40多MB,FLASH ROM和U盘一样是可读写的,只是没电不丢数据)。
ROM分NAND和NOR两种,现在一般用的NAND,就是制作存储卡和U盘的那种,不能直接运行代码,要调入RAM才能运行。NOR是可以直接运行代码的。所以刷机就是重写OS分区了,用PDOCREAD可以把整个OS分区读成一个NB镜象文件,然后把镜象解开到DUMP文件夹,就是所有ROM的文件了。文件分2种,一种是普通文件,另一种是XIP(ExecuteInPlace)模块,这是为了加快OS运行设计的,就是这些文件可以不调入RAM而直接在ROM执行,但因为现在都是NAND ROM,所以XIP模块其实还是要调入RAM的PAGEPOOL执行。但是由于XIP模块有很多地址信息,所以移植OS最难的就是这了。因为WM6内部版本是CE 5.2所以文件结构和WM5是一样的。对DUMP进行自己需要的修改后再打包会NB镜像文件然后用PDOCWRITE通过ACTIVESYNC连接整个写入ROM的OS分区就刷机完成了。DUMP里有default.hv(包括HKCR和HKLM)和user.hv(包括HKCU)是初始注册表文件,可以转换成REG来编辑再转回去。当然直接对DUMP目录进行操作太麻烦了,比如要去掉一个软件,你要删掉这个软件用到的所有文件和注册表项,要一个个找。所以就有了BUILDOS工具,他把每个软件分成一个文件夹,里面有软件的所有文件和注册表项,文件夹里的RGU文件就是这个软件所要的注册表项,DSM文件是关联信息,就是以后把DUMP反编成BUILDOS时根据DSM的内容来确定这个软件需要哪些文件。BUILDOS生成的DUMP目录里的RGU文件可以删掉,不过别人反向生成就没有了单独的注册表项。DSM还有另一个作用是系统硬启时会从DSM里读取PROVXML文件列表,然后执行对应的PROVXML文件,所以随便直接删除DUMP里的文件是不可靠的,如果万一删到那个DSM里有PROVXML文件的话,这个DSM就被破坏了,那些PROVXML也不会被执行。所以最好是用BuildOS来制作ROM,因为那样DSM会被重新生成。刷机后首先要硬起(HARD RESET),出厂设置就是格式化ROM中的用户分区,这样就剩ROM文件了,干干净净。ROM分区就是\windows,里面的文件除了刷机是不能修改的,所以如果OEM商在里面装了什么软件用户是无法删掉的,只能删掉外面的快截方式。当用户把文件复制进windows时系统会把它放在用户分区,然后隐*掉windows里的原始文件,这样看起来文件就被覆盖了,实际上ROM里的文件没有变,有人想通过这样复制一个小文件覆盖windows的大文件想节省空间是不可能的,这样只是浪费了用户分区的空间。在刷NB格式的情况是不会重新分区的,OS分区的空间没有节省的说法,因为OS分区的剩余空间不能被用户使用,所以在DUMP生成镜像的时候尽量多放点东西才叫利用,不过那又不纯了。如果用RUU刷NBF的ROM的话,用户分区会随OS分区变化,就是OS越小用户STORAGE分区就越大。所以硬启所做的事就是把用户分区格式化了,这样就只剩一个没有子目录的windows目录,然后系统执行initflashfiles.dat里的命令建立子目录和把一些需要的ROM文件(比如注册表)复制到用户分区,因为这些文件后期是可能要修改的。然后initflashfiles.dat运行checkautorun.exe来检查windows\autorun.exe,然后这个autorun又执行\extended_rom\autorun.exe就是运行EXTROM分区的程序。EXTROM分区默认是写保护的,可以用程序解开,默认也没有加载点显示,可以改注册表显示为STORAGE,或者不显示就直接在文件管理器输入\extened_rom路径进入。这个分区硬启不会丢失,所以可以放入硬启后想自动运行的软件。 WM6比WM5还是有不少改进的,主要是增强了电话基本功能(比如SP的智能拨号功能)和单手操作,其实就是像SP一样都能用软键菜单操作;加入了蓝牙PAN和NAT,现在电脑通过手机上网就有4种方式了,2种是以前就支持的把手机当成USB MODEM或蓝牙MODEM拨号上,这种方式是电脑控制拨号,拨上了后手机就不能再拨号了。新方法是把手机当作电脑的USB或蓝牙网卡,手机充当路由器,这样是手机拨号,手机和电脑可以同时上;OFFICE MOBILE支持OFFICE 2007了;集成了.NET CF 2.0;集成了SIP IP电话,不用SJPHONE了。其他OEM部分比如相机、WIFI驱动其实还是从WM5移植来的一样的。我做的这个版本稳定性、速度、耗电基本和WM5一样,没兴趣再倒回WM5了。 制作步骤: os.nb文件就是ROM中的OS分区镜象(就像GHOST文件),os.nb含有XIP和IMGFS两部分,其中XIP部分是不会到DUMP的,含有系统核心文件nk.exe、coredll.dll等,要用XIPPORT才能修改。IMGFS就是磁盘文件系统,里面包含了所有DUMP里的文件,是用XPR或LZX压缩的。所以imgfsfromnb os.nb imgfs.bin就是从os.nb里提取出IMGFS部分,而imgfstodump imgfs.bin就是把IMGFS部分解压缩到DUMP目录。然后PACKAGE TOOL根据DUMP里的package.sof和DSM文件将DUMP目录重新还原SYS和OEM分组结构便于修改ROM。修改完ROM后先BuildOS把SYS和OEM重新生成DUMP目录,这时还会合成所有目录下的RGU文件和ROM\XIP\boot.rgu(因为boot.rgu的内容是在os.nb的XIP部分,而不在其他SYS或OEM目录里),然后把RGU分组转换成default.hv和user.hv。接着执行imgfsfromdump imgfs.bin imgfs1.bin就是根据imgfs.bin的压缩方式来把DUMP压缩到imgfs1.bin。然后imgfstonb imgfs1.bin os.nb osnew.nb就是把imgfs1.bin替换掉os.nb里的IMGFS部分而生成osnew.nb。这时既可以用PDOCWRITE通过ACTIVESYNC直接把osnews.nb写入到ROM的OS分区,也可以把osnew.nb打包成nbf文件用RUU刷入。区别是RUU写入会根据nbf文件大小调整STORAGE分区大小,而PDOCWRITE不会。因为NAND ROM是不能直接XIP执行的,而且IMGFS又是压缩的更不可能直接执行,所以系统会把OS分区的文件解压调入RAM中预留的PagePool执行,这就是PP的作用,PP越大则调入的系统文件越多,但是用户进程可用RAM就小,所以要找到一个平衡点,MS默认的是6MB。可见PP和电脑上的PageFile作用是完全不同的,PageFile是虚拟内存,而PagePool是运行系统文件的内存缓冲区。如果PP为0则系统文件会直接调入普通RAM执行。

内部的ROM与外部RAM的空间分配

内部的ROM与外部RAM的空间分配

内部的ROM与外部RAM的空间分配8051单片机的存储器在物理结构上分为程序存储器空间和数据存储器空间,共有4个存储空间:片内程序存储器、片外程序存储器以及片内数据存储器、片外数据存储器空间。

这种程序存储和数据存储分开的结构形式被称为哈佛结构。

MCS-51使用哈弗结构,它的程序空间和数据空间是分开编址的,即各自有各自的地址空间,互不重叠。

所以即使地址一样,但因为分开编址,所以依然要说哪一个空间内的某地址。

而ARM(甚至是x86)这种冯诺依曼结构的MCU/CPU,它的地址空间是统一并且连续的,代码存储器/RAM/CPU 寄存器,甚至PC机的显存,都是统一编址的,只是不同功能的存储器占据不同的地址块,各自为政。

图1MCS-51单片机存储器的配置特点①内部集成了4K的程序存储器ROM;②内部具有256B的数据存储器RAM(用户空间+SFR空间);③可以外接64K的程序存储器ROM和数据存储器RAM。

从物理结构的角度讲,51单片机的存储系统可以分为四个存储空间:既片内ROM,RAM和片外ROM、RAM。

从逻辑结构上看(既编程的角度),可以分为三个不同的空间:(1)片内、片外统一编址的64KB的程序存储器地址空间:0000H~FFFFH(用16位地址);,其中0000H~0FFFH为片内4KB的ROM地址空间,1000H~FFFFH为外部ROM 地址空间;(2)256B的内部数据存储器地址空间(用8位地址),00H~FFH,分为两大部分,其中00H~7FH(共128B单元)为内部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域;(3)64KB的外部数据存储器地址空间(用16位地址):0000H~FFFFH,包括扩展I/O地址空间。

上述4个存储空间地址是重叠的,如图1所示。

8051的指令系统设计了不同的数据传送指令以区别这4个不同的逻辑空间:CPU访问片内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM指令用MOV。

关于安卓系统的RAM、ROM、可用空间的解释(通俗易懂,史上最全)

关于安卓系统的RAM、ROM、可用空间的解释(通俗易懂,史上最全)

关于安卓系统的RAM、ROM、可用空间位置:1、RAM是集成到CPU上的;2、ROM是集成到CPU上的,和RAM一样;3、所谓的“可用空间”,是集成在手机电路板上的闪存,相当于焊接在手机电路板上的存储卡;4、TF卡、SD卡是外接的,不用多说。

功能:1、RAM相当于电脑的内存条,存放运行数据,断电即消失;2、ROM相当于电脑的C盘,或者严谨一点,相当于电脑的硬盘,只是没分区而已,ROM里面分为“系统分区”和“用户分区”,只有“系统分区”相当于C 盘,但是也只是相当于;“用户分区”可以像电脑里的D、E、F盘里一样使用。

【注】:现在ROM通常都是电可擦写ROM了,意味着可读可写。

3、所谓的“可用空间”,是集成上去的闪存,相当于电脑硬盘。

4、至于外置的存储卡,如SD卡、TF卡,就相当于移动硬盘了。

【注】:(闪存指各种存储卡(包括SD、TF)和U盘,是电可擦写ROM的变种,读写速度比电可擦写ROM快,断电数据保留)安装:1、安装软件除非只能安装在ROM里,否则建议都安装到“可用空间”或者外接存储卡里。

例如,手机ROM为512M,机身“可用空间”为16G(当然实际可用的没有这么多),安装软件是装在512M里还是16G里,在安装的时候是可以选择的。

【注】:(现在的手机的ROM也用的是闪存了,意思就是说512M的ROM与16G的“可用空间”的存储介质类型是一样的,只不过两者的位置不同而已)2、如果将程序安装到所谓的“可用空间”中;例如,某些大型3D游戏,它们都是由一个XXXX.apk安装过后所产生的“游戏程序客户端”+“游戏的数据包”组成,游戏程序还是会占用ROM,数据包则占用的是所谓的“可用空间”。

【注】:(游戏包是进入游戏程序后提示你用wifi或3G下载,这个有几十到几百兆不等建议用wifi)3、如果将程序安装到SD卡中;每次安装一个程序或者游戏,即便你安装到了SD卡中,但你的ROM空间依然还是会被占用一部分,即便你使用了APP2SD类的软件将各类应用程序安装到了SD卡中,其实程序的系统数据还是写在了ROM中,SD卡相当于只是存放多媒体类的资料,如游戏的数据文件。

安卓手机rom的各个部分的作用

安卓手机rom的各个部分的作用
splash1:这个就是开机第一屏幕了.
radio:这个是无线所在的分区,即基带所在分区。
misc:其他分区
额外说明:

从原理上分析,通常
底包,Bootloader,Recovery,基带都是可以刷新替换的,升级包当然更可以。但是底包、Bootloader很少会有第三方开发或者修改的,一般都使用官方发布的。底包有时候会内置Bootloader、Recovery,这样的底包刷新时会连上述两者一起更新(推测结果,不确定)。更新这样的底包是有危险的,有可能会造成Bootloader损坏,这个东西损坏了,基本就是变砖了,真正的变砖,只能花钱去修了。只有这个东西没坏,就不是砖。②
2)用户安装应用程序所在目录/data/app/*.apk
3) 注意:a)在模拟器中,每重启一次,/system/app/下的应用都会被还原,有时/data/app下也会被清除
b)若在/system/app和/data/app下有重名的应用,不一定会启动哪一个,尤其是在adb install杀死正在运行的程序时,有时旧的就会被启动
framework目录就是系统的UI了,想改界面的人应该改这个目录中的文件。。大约也就是替换一些什么图片,换掉界面框架什么的,改改字体颜色什么的?以达到改换界面的目的。
media目录是系统内置的媒体文件,如开机音乐,内置的通话铃声、信息铃声、闹钟铃声,可以改,但格式是OGG的,可以自己去搜索如何换格式。
userdata:数据分区.
cache:缓存分区
recovery:Recovery分区,相当于建立在hboot与android系统间的一个中间层,如名字一般,主要用于系统调试和恢复。.
boot:存放内核和ramdisk的分区.

rom详细解释

rom详细解释

ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。

ROM在系统停止供电的时候仍然可以保持数据,而RAM 通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。

---------------------------------------------------------------------------------------------ROMROM指的是“只读存储器”,即Read-Only Memory。

这是一种线路最简单半导体电路,通过掩模工艺,一次性制造,其中的代码与数据将永久保存,不能进行修改。

在微机的发展初期,BIOS都存放在ROM(Read Only Memory,只读存储器)中。

如果发现内部数据有错,则只有舍弃不用,重新订做一份。

PROMPROM指的是“可编程只读存储器”既Programmable Red-Only Memory。

这样的产品只允许写入一次,所以也被称为“一次可编程只读存储器”(One Time Progarmming ROM,OTP-ROM)。

PROM在出厂时,存储的内容全为1,用户可以根据需要将其中的某些单元写入数据0(部分的PROM在出厂时数据全为0,则用户可以将其中的部分单元写入1),以实现对其“编程”的目的。

PROM的典型产品是“双极性熔丝结构”,如果我们想改写某些单元,则可以给这些单元通以足够大的电流,并维持一定的时间,原先的熔丝即可熔断,这样就达到了改写某些位的效果。

另外一类经典的PROM为使用“肖特基二极管”的PROM,出厂时,其中的二极管处于反向截止状态,还是用大电流的方法将反相电压加在“肖特基二极管”,造成其永久性击穿即可。

PROM一旦写入后无法修改,若是出了错误,已写入的芯片只能报废。

EPROMEPROM指的是“可擦写可编程只读存储器”,即Erasable Programmable Read-Only Memory。

安卓分区

安卓分区

安卓系统一般把rom芯片分成7个区,如果再加上内置sd卡这个分区,就是8个:hboot分区----------负责启动。

radio分区----------负责驱动。

recovery分区-------负责恢复。

boot分区-----------系统内核。

system分区---------系统文件。

cache分区----------系统缓存。

userdata分区-------用户数据。

所谓ROM芯片就是断电后不丢失数据的芯片,可以用来储存数据。

需要注意的是,前6个区的容量在系统信息里面是看不出来的,我们看到的rom总容量,其实就是第7个区userdate区的大小,这个区主要装一些软件,是用户可以使用的分区。

这个分区的大小直接影响到安装软件的数量。

也就是说userdate区就是我们常说的“可用rom”在安卓里,虽然软件可以安装到卡中,但是一些系统软件最好还是安装到userdata分区,否则会出现加载的一些小问题,比如使用的桌面软件和一些在桌面上显示插件的软件。

并且就算你把软件都装到卡里,userdata分区还是会不断减小。

就像在电脑里,就算你把软件装到D盘,仍然会在c盘生成一些系统文件,占掉c盘空间一样。

一般手机参数里面写的1G ROM 或2G ROM ,2G的ROM用来装软件的分区一般也就几百MB,1G的也就100多MB 。

而上面写着自带8GB,16GB的,用来装系统的,就是前7个分区一般是2G到4G。

所以用来装软件的分区比较大。

因为手机自带ROM芯片比SD卡读取速度快,所以这类ROM大的机器就比ROM小的机器更有优势。

手机自带的软件一般是在SYSTEM分区里面,所以一般情况下删除不了,需要ROOT权限才能删除。

删除手机自带的无用软件可以增大SYSTEM分区的剩余容量,从而提高系统的运行速度。

手机ROM分区教程 自定义手机分区 MTD Partition 更新到v1

手机ROM分区教程 自定义手机分区 MTD Partition 更新到v1

手机ROM分区教程自定义手机分区MTD Partition 更新到v1.5.8作者:佚名字体:[增加减小] 来源:互联网时间:09-02 15:23:05 我要评论本文教你如何自定义手机的ROM内存分区,本文以HTC Hero200手机为例讲解.因为自带的ROM内存是512M的.所在很需要MTD.一般1G以下的都需要的.1G以上的看情况了.如果感觉不够用也可以分区.随着软件游戏安装数量的增多,手机自带的ROM存储空间是不是感觉不够用呢?所以大大们创造了Apps2sd的方法,不否认这个方法是很了不起的,可以把软件和游戏都安装到SD卡上,释放手机存储空间。

但是随之而来会遇到一些问题,比如SD卡Class级别太低导致运行软件和游戏性能大打折扣,开机SD卡最后才加载导致一些软件游戏启动出错或异常,手机SD卡挂载到电脑上时软件无法正常使用等等。

那么有没有可以增加手机内部空间又可以让软件不出错或性能下降呢?答案是肯定的undefined!!最近在XDA及国外一些论坛闲逛的时候突然被我发现了这个很牛的方法,是一个叫Firerat 的大大提出的方法,基本概念就是重新调整手机分区(MTD Partition),使之能有效充分的利用同时又不浪费。

备注:MTD=Memory Technology Devices,像手机闪存类的存储设备都可以称之为MTD设备。

让我们先来看看手机ROM分区的基本信息吧。

手机(比如HTC Hero,不同的型号的分区结构是不同的)默认分区结构为/system占170MB,/cache占130MB,而留给用户使用的/data却只有160MB。

打个通俗的比方/cache是你厌食的妹妹,他总是吃一点点,剩很多;/data是你肥胖的哥哥,总是觉得饿要多吃点;你是最健康的/system,只是吃你的份,从来不多吃也不厌食。

那我们是不是把厌食的妹妹吃不掉的东西分点给你肥胖的哥哥呢,然后自己再留适当一部分食物,剩下的全部分给你肥胖的哥哥,这样你哥哥就不会觉得饿,也就是用户可以使用足够大的空间来装软件和游戏了。

ROM BIOS数据区详解

ROM BIOS数据区详解

ROM BIOS 数据区详解内存区地址0:0400H到0:05FFH的内存块保留作通信区。

BIOS.DOS及用户应用程序使用此区中的特定域以存储参数标志及其他数据,程序员可直接访问这些区域以获得有关系统状态的内部信息,修改系统的性能及其他应用程序交换信息。

许多单元含义在一系列IBM PC机中没有改变,直接对这些单元操作,可以取代某些系统调用(有些功能是系统调用不提供的),快速地、简洁明了地实现某些特殊要求,达到事半功倍的效果。

以下内容适合IBM PC及其兼容机,但很多内容不适于PC/JR机型。

1.通讯区0:400—00:400—:407RS—232四个适配器基地址:0:400—0:401 通道1(COM1)0:402—0:403 通道2(COM2)0:404—0:405 通道3(COM3)0:406—0:407 通道4(COM4)如果一个地址为0,则表示这个通道没使用0:408—40F 四通并行打印机通道地址:0:408—0:409 打印机1(LPT1)0:40A—0:40B 打印机2(LPT2)0:40C—0:40D 打印机3(LPT3)0:40E—0:41F 打印机4(LPT4)如果一个地址为0,则表示这个通道没使用0:410—0:411 设备编码表,与中断11返回值返回值相同0:412 :在PC Convertible中用于初始化标志,其他机保留$0:413—0:414:内存大小,单位为K,同中断12H返回值$0:415—0:416:PC convertible机用0:415记录电池状态,其他机保留0:417 :换档状态0:418 :扩充的换档状态0:419 :当按下Alt并从副键盘按下数字时,数值暂存,一旦松开Alt键,此内容立即送到键盘缓冲区并使这个地址变为0.0:41A—0:41B:该字指向存放键盘键入字符的循环缓冲区首地址。

0:41C—0:41D:循环键盘缓冲区,它保存从键盘键入的字符,直到程序可以接受这些字符为止。

[S1教程] ROM定制教程:手把手教你做ROM

[S1教程] ROM定制教程:手把手教你做ROM

教程大体分为以下几部分:1。

ROM基础知识2。

ROM制作工具介绍3。

ROM定制4。

ROM定制FAQ5。

DIY及OEM包制作6。

模板的制作7。

移植第一部分:ROM基础知识A。

名词解释1. ROM,RAM,Flash MemoryROM(Read Only Memory)的全名为只读记忆体,是PPC上的硬盘部分用来存储和保存数据。

ROM数据不能随意更新,但是在任何时候都可以读取。

即使是断电,ROM也能够保留数据。

但是资料一但写入后只能用特殊方法或根本无法更改,因此ROM常在嵌入式系统中担任存放作业系统的用途RAM(Random Access Memory)的全名为随机存储记忆体,是PPC上的移动存储部分,用来存储和保存数据的。

它在任何时候都可以读写,RAM通常是作为操作系统或其他正在运行程序的临时存储介质(可称作系统内存)Flash Memory,由于ROM不易更改的特性让更新资料变得相当麻烦,因此就有了Flash Memory的发展,Flash Memory具有ROM不需电力维持资料的好处,又可以在需要的时候任意更改资料,我们常见的FLASH Memory有TF卡(全名:TransFLash卡),SD卡(全名:Secure Digital Memory Card),CF卡(全名:Compact Flash卡)等。

2. XIP,IPL,SPL,RADIOXIP(Execute In Place)中文意:立即执行。

XIP 所起到的作用是让操作系统内核直接在Flash中运行,不需要拷贝到RAM,即指操作系统或应用程序直接从非易失性存储器中执行,这样减少了内核从闪速存储器拷贝到RAM的时间,其采用的非压缩映像也减少了内核自解压的时间,换句话说,XIP直接决定了PPC 系统运行和加载程序的时间,也就是直接决定了PPC系统的运行速度。

IPL(全称:InitialProgramLoader)中文意:首次装载系统,其负责主板,电源、硬件初始化程序,并把SPL 装入RAM,如果IPL损坏,由于不能加载SPL,所以机器将不能装载任何由SPL完成装载的OS系统。

Android系统分区理解及分区目录细解

Android系统分区理解及分区目录细解

Android系统分区理解及分区⽬录细解Android 通常有以下分区:System分区: 就是我们刷ROM的分区Data分区: 分区就是我们装APK的分区Catch分区:是缓存分区SDCard分区:就是挂载的SD卡。

可以在adb中使⽤df 来查看分区情况。

1、跨分区不能⽤ MV命令来拷贝。

但是可以⽤CP命令。

如PWD,当前⽬录为:/data/local/tmp 。

此⽬录下有个busybox和1.txt⽂件。

则利⽤CP命令拷贝如下:./busybox cp1.txt /system.2、Android的⽤户组有 System, root, shell3、怎么样才能操作分区分区操作是需要权限的。

⼀般来说System分区的权限限制得⽐较严,Data分区限制⽐较严,⽤户可以操作的⽬录有local,app⽬录。

⽐如/data/local/tmp.data分区常⽤⽬录:app , system , data ,local,misc 其中system,local可以进⼊并使⽤ls等命令。

data,app可以进⼊,但不能⽤ls命令。

data/data⽬录:存放的是所有APK程序数据的⽬录,每个APK对就⼀个⾃⼰的Data⽬录,就是在data/data/⽬录下,会产⽣⼀个跟Package⼀样的⽬录。

如有⼀个APK,它的包名叫com.test.hello则,在data/data/⽬录下会有⼀个com.test.hello的⽬录,这个APK只能操作此⽬录,不能操作其它APK的⽬录.这个在LINUX下叫做⽤户进程只能操作⾃⼰的进程⽬录.data/app⽬录:⽤户安装的APK放在这⾥。

我们如果把APK放⼊这个⽂件夹下⾯的话,就算安装好了。

这就叫静默安装。

不⽤管APK⽂件⾥⾯的lib⽬录下的库⽂件,系统会⾃动帮我们放⼊调⽤库的。

data/system⽬录下⾯有packages.xml ,packages.list,appwidgets.xml, 等等⼀些记录⼿机安装的软件,Widget等信息。

手把手教你做ROM!

手把手教你做ROM!

要哇网址导航: -上网就上要哇! 要哇技术论坛:1 教程大体分为以下几部分:1。

ROM 基础知识.....................................2。

ROM 制作工具介绍...............................3。

ROM 定制............................................4。

ROM 定制FAQ......................................5。

DIY 及OEM 包制作.................................6。

模板的制作............................................7。

移植....................................................第一部分:ROM 基础知识.........................................A 。

名词解释1. ROM ,RAM ,Flash MemoryROM (Read Only Memory )的全名为只读记忆体,是PPC 上的硬盘部分用来存储和保存数据。

ROM 数据不能随意更新,但是在任何时候都可以读取。

即使是断电,ROM 也能够保留数据。

但是资料一但写入后只能用特殊方法或根本无法更改,因此ROM 常在嵌入式系统中担任存放作业系统的用途RAM (Random Access Memory )的全名为随机存储记忆体,是PPC 上的移动存储部分,用来存储和保存数据的。

它在任何时候都可以读写,RAM 通常是作为操作系统或其他正在运行程序的临时存储介质(可称作系统内存)Flash Memory ,由于ROM 不易更改的特性让更新资料变得相当麻烦,因此就有了Flash Memory 的发展 ,Flash Memory 具有ROM 不需电力维持资料的好处,又可以在需要的时候任意更改资料,我们常见的FLASH Memory 有TF 卡(全名:TransFLash 卡),SD 卡(全名:Secure Digital Memory Card ),CF 卡(全名:Compact Flash 卡)等。

关于如何定制开发Android第三方ROM,最全开发教程、原理阐述

关于如何定制开发Android第三方ROM,最全开发教程、原理阐述
简单地说Android就是:Linux内核+第三方库(如sqlite、webkit等)+Android核心库+Java虚拟机+定义提供的一些接口 只要把上边每个词搞懂是啥了,基本就搞懂Android是怎样工作的了。
Android在宏观上的结构如下 从上至下依次为:应用程序层、应用程序框架层(提供给应用程序对低层接口)、支持库及Android运行时环境(含核心库及Java虚拟 机)、Linux内核
|-- ndk
|-- device
|-- out (编译完成后的代码输出与此目录)
|-- packages (应用程序包)
|-- prebuilt (x86和arm架构下预编译的一些资源) |-- sdk (sdk及模拟器) |-- system (文件系统库、应用及组件——C语言) `-- vendor (厂商定制代码)
2、Android系统结构
接下来就说一说Android系统的结构,对于Android系统结构的了解对于Android软件开发和ROM制作都很重要。 只有当你真正了解了Android是怎样的构成的时候,才能更深刻的理解之后每一步做的是什么,也才能明白出了问题可能是哪里的问题。
(1)宏观
Android是基于Linux内核的, Linux内核是什么不知道?简单地说就是Linux是一个操作系统,Linux Kernel就是这个系统最最基本的部分,是核心。 好比用户数最多的Windows系统,你看道的那些窗口啊、画图计算器扫雷那些附件啊什么的,不过是架在Windows的内核之上而已。 所谓内核,就是供上层用户库、用户程序调用的核心。就好比计算所得税有一个公式,而其核心是加减乘除四则运算……扯远了……
|-- dalvik (dalvik JAVA虚拟机)

RAM和ROM你分清了吗?

RAM和ROM你分清了吗?

RAM和ROM你分清了吗?佚名【期刊名称】《个人电脑》【年(卷),期】2016(022)011【总页数】3页(P79-81)【正文语种】中文一直以来,普通消费者对于手机存储方面的专有名词就非常凌乱,智能手机发展至今,什么运行内存、内存、存储空间,RAM、ROM等等五花八门,不同的叫法把消费者绕得云里雾里,概念混淆不清。

在这些叫法中,出镜率最高的应该就是RAM和ROM了,本次,我们就来聊聊手机中的RAM和ROM。

一直以来,普通消费者对于手机存储方面的专有名词就非常凌乱,智能手机发展至今,什么运行内存、内存、存储空间,RAM、ROM等等五花八门,不同的叫法把消费者绕得云里雾里,概念混淆不清。

在这些叫法中,出镜率最高的应该就是RAM和ROM了,本次,我们就来聊聊手机中的RAM和ROM。

从概念上讲,RAM的全称为Random Access Memory,翻译为随机存取存储器,尽管在RAM的基础上还会细分DRAM和SRAM,但是RAM更为广泛地被消费者们了理解为内存。

例如,当前的手机配置中,存储组合一般会有2GB+16GB、3GB+32GB、4GB+64GB等等,这些2GB、3GB、4GB就是指RAM的容量,也就是我们常说的内存容量。

使用安卓手机的用户可能经常会有这样的疑惑:为什么购买的时候明明说好是4GB内存,可开机一看,显示内存大小只有3GB多,而实际可用内存则仅仅只剩下2GB左右,这难道是虚假宣传吗?可以肯定的是,这当然不是什么夸大其词的宣传手法,手机作为一款智能硬件,它的图形处理器(GPU)工作同样需要内存支持,所以厂商宣传的4GB内存并没有作假,只是归为图形处理器使用的那一部分内存并没有显示出来。

这一点与只使用核显的电脑很类似,当你查看系统信息时,被核显划拨的内存会从总内存数量中扣除,所以在配置为4GB内存的手机中显示3.xGB可用内存是正常的。

既然手机显示的内存容量与厂商宣传“不符”的问题解决了,那实际可用仅剩2.xGB就更容易理解了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

META-INF
这里面主要是卡刷包的签名文名和刷机时执行的脚本(updater-script),移植时,我们主要要更改的就是刷机的脚本。

system
这里面就是android的系统部分
app这里存放的是系统的app,每个app都有两个文件,一个*.apk,一个*.odex,我们在移植时,要将这个文件合并到对应的*.apk里面去,apk文件其实就是一个zip文件,可以用WinRAR或7zip打开的,当然,合并odex文件不是把它改名直接放到apk里去这么简单的,后面具体介绍一下。

还有,这个文件夹里面的程序,刷完以后是不能通过程序管理来卸载的。

bin这里面存放的是native程序,不好意思,一下子忘掉中文怎么说了。

简单来说,apk 是JAVA程序,而这个是C/C++的程序。

etc这里面存放的是系统默认的配置文件,GPS的配置也在这里
fonts这个是字体文件夹,一般很少改动,除非要做美化
framework这里存放的是android框架,移植MIUI,很多改动在这个文件夹里,美化ROM 的话,主要改framework-res.apk就可以了。

当然,MIUI本身就有主题机制了,不用这么麻烦去改。

这个文件夹里也会有对应的odex文件。

lib一些通过的类库,一般是由app/bin里面的程序调用的。

media媒体文件,要添加系统默认的铃声就在这里了。

如果是别的ROM的话,壁纸也会放在这里面。

usr这个文件夹我不知道如何解释,移植时,键盘布局文件就在这里面
xbin扩展命令文件夹,一般不动它,有一些ROM可能直接用busybox来替代了。

build.prop这个文件也类似于一个配置文件,它主是描述了这个ROM的版本,对应的机型名称,还会有部分的硬件配置,移植的时候我们也会要修改这个文件。

boot.img系统核心,其实就是Linux内核部分,这个img也是可以解开来定制的,但我没有试过。

如果你喜欢新的核心的话,可以将这个文件替换,不过要兼容才行。

Boot 分区:
当按下电源键开机时,手机会进入正常启动模式。

Secondarystage bootloader 会从 boot 分区开始启动。

Boot 分区的格式是固定的,首先是一个头部,然后是Linux 内核,最后是用作根文件系统的ramdisk。

当 Linux 内核启动完毕后,就开始执行执行根文件系统中的 init 程序,init 程序会读取启动脚本文件(init.rc 和init.xxxx.rc)。

根文件系统中有一个重要的配置文件,叫default.prop,该文件的内容一般为:
ro.secure=1
ro.allow.mock.location=1
ro.debuggable=0
persist.service.adb.enable=1
这里大家需要注意的两属性ro.secure 和 ro.debuggable,如果ro.secure=0则允许我们运行 adb root 命令,通常大家说说内核 ROOT 指是就是 ro.secure=0。

而一般所说的 ROOT 权限指的是手机上有一个名为授权管理的程序 (Superuser.apk)可以授予程序 root 用户的权限。

System 分区:
System/app:app 目录下存放的是核心应用,也就是大家熟知的系统APP,这些系统自带的程序是不能简单的卸载的,要通过特殊的方式才能删除(大家熟悉的是ROOT后用RE 文件管理器来精简系统,达到纯净,流畅的效果)。

System/lib:lib 目录下存放的线 JNI 层,Dalvik 虚拟机,本地库, HAL 层和厂家适配层的所有动态链接库(.so 文件)。

System/framework:该目录下存放的是框架层的 JAR 包,其中系统最重要的JAR包(framework.jar,android.policy.jar,services.jar)。

System/fonts:该目录下存放的是系统缺省的字体文件。

System/media:该目录下存放是是系统所使用的各种媒体文件,比如说开机音乐,动画,丌同机型略有丌同。

System/bin:该目录下存放的是一些可执行文件,基本上是由 C/C++编写的。

System/xbin:该目录下存放的是一些扩展的可执行文件,既该目录可以为空。

大家常用的busybox 就放在该目录下。

Busybox 所建立的各种符号链接命令都是放在该目录。

System/build.prop:build.prop 和根文件系统中的 default.prop 文件格式一样,都称为属性配置文件。

它们都定义了一些属性值,代码可以读取戒者修改这些属性值。

属性值有一些命名规范:ro 开头的表示只读属性,即这些属性的值代码是无法修改的。

Persist 开头的表示这些属性值会保存在文件中,这样重新启动乊后这些值还保留。

很多ROM 制作都会修改一下build.prop 信息,ro.build 开头的属性就是手机设置关于手机看到的,修改这个属性就在ROM 打上自己印记,比如某某修改。

Ro.build.display.id=后面就是版本号
System/etc:该目录存放一些配置文件,和属性配置文件丌一样,这下面的配置文件可能稍微没那么的有规律,一般来说,一些脚本程序,还有大家所熟悉GPS 配置文件(gps.conf)和 APN 配置文件(apns-conf.xml)放在这个目录。

System/media/bootanimation.zip这就是我们手机开机的第二屏,相应于WINDOW开机画图。

(注:开机第一屏,就相当于电脑系统的BIOS,这个也可以更改,但是不同厂商的路径和定义方法会不同。

)
其实ROM的机构不仅仅是这几个文件夹和文件,还包括一个叫data的文件夹。

这个data文件夹下也有一个app文件夹。

这个文件夹是干什么的,前提这里要告诉大家的是system/app文件夹的程序,一旦我们刷进手机,就不能删除了。

而data\app文件夹下的程序刷机后,我们可以在手机上卸载。

这就是为什么有些ROM在介绍里说:自带XX软件,可以卸载。

Date 和 cacher 分区:
当开机进入桌面程序后,一般来说我们都会下载安装一些 APP,这些 APP 都安装在
data/app 目录下,所有的 android 程序生成的数据基本上都保存在 data/data 目录下。

Wipe data 实质上就是格式化 data 分区,这样我们安装的所有 APP 和程序数据都丢失了。

Cache 分区从名字上来看是用来缓存一些文件的,比如说一些音乐下载的临时文件,戒者下载管理下载的内容基本上放在这个分区。

相关文档
最新文档