当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]一种基于Smartphone类的注册表实现方案

摘要:目前SmartphcIne类型的手机注册表都是用数据库实现的,现在要改用COMS来实现,具体做法是采用大小为64 KB的2块FLASH来模拟CMOS,在此基础上实现注册表的管理,直接从FLASH驱动层做起。注册表的记录改变了传统的Windows做法,采用一种简化的方法,不分目录级,由一个主键加一个键值构成,其主键是一个null结束的字符串,可以包含目录信息,这对后继手机软件的应用开发建立了良好的开发基础。
关键词:注册表;Smartphone:CMOS;FLASH

0 引言
    随着多媒体移动终端(PDA,智能手机)的快速发展,使其已经不再只是用于语音通信的手持设备,而成为集成了MP3,MP4以及上网移动办公等附加功能的嵌入式通信平台。Smartphon是Accelerator Technology公司开发的一种嵌入式RTOS产品,其操作系统为Nucleus,只需一次性购买Licenses就可以获得操作系统的源码。Accelerator Technology公司在底层对无线通信以及语音文本信息通信模块做了大量优化。
Nucleus是一款优秀的嵌入式实时操作系统(RTOS),具有抢占式和时间片轮转任务调度方式,主要用在时间苛刻的嵌入式应用当中。大约95%的Nucleus用ANSIC写成,作为一个库加载到应用代码当中,目前手机行业有很多使用Nucleus。Smartphone平台的基本架构分为:
    无线堆栈层:负责最终的数据发送与接收处理,它对接收和发送的硬件细节进行控制,突出无线通信这个核心内容,是Smartphone操作平台最低的一层。
    核心API层:可利用它们来进行与无线通信和语音服务相关的开发,主要参照MSDN来使用。
    逻辑层:系统为简化开发,将一些API包装成各个功能块以便调用类似控件,这层提供各控件接口。
    应用层:是系统中面向用户提供服务的各应用程序。

1 接口设计与实现方案
    当前大部分智能手机的注册表原来是用数据库实现的,现在要改为用COMS来实现,具体做法是,采用大小为64 KB的2块FLASH来模拟CMOS,在此基础上实现注册表的管理,直接从FLASH驱动层做起。注册表的记录改变了传统Windows的做法,采用一种简化的方法,不分目录级,由一个主键加一个键值构成。主键是一个null结束的字符串,可以包含目录信息,也可以写成“\APP\WINDOW\POSITION\X”,考虑到查找的方便性,主键字串必须用大写,并且要以“\”开始。键值有3种类别,分别是DWORD,Binary和string。其中,DWORD占4 B;String是null结束的字符串;Binary是由一个4 B的Size加上内容构成。考虑到FLASH的读写特性以及可移植性,整个记录信息向4 B对齐,并用0填充冗余各位。
1.1 数据结构
    注册表的大小为64 KB,另外的64 KB是为了擦写时备份用的。整个64 KB空间分成2大块,即索引块和数据块,其中索引块大小为4 KB,数据块为60 KB。索引块由32 B的HEAD和一个偏移表构成,HEAD由1个4 B的片选字加1个28 B的保留位构成,保留位建议填写成“HTW CMOS VER1.0”,片选字用作擦除时掉电的保护。偏移表的每项占4 B,共有1 016项,每个偏移项均由低28 b的偏移值和高4 b标志位构成,标志位用作增加和修改时掉电的保护。数据块由一个接一个变长的记录构成,每个记录内容向4 B对齐,并用0填充冗余各位。记录由4 B控制字段+4 BCHECKSUM+主键+键值构成。其中,控制字段=28 b SIZE+4 b FLAG。SIZE是低28位,即物理的前28位。它表示整个记录的大小,包括自身及CHECKSUM、主键、键值等。FLAG是高4位,即物理的后4位,它表示键值的属性,同时用来作为掉电保护的判断标志。
1.2 关于掉电保护信息
    掉电保护要做好,有2个必要条件,一是系统启动后在初始化时,有能力知道上次关机是正常关机还是异常掉电关机;二是系统在任何时候突然掉电,有能力追溯到掉电前的资料信息。注册表系统用于掉电保护的信息有3处,分别是片选字、偏移表项的标志位、记录控制字段的FLAG。片选字共有2块64 KB的FLASH,每块最前面的4 B是片选信息,正常情况下,正在使用的那一块(记A)片选信息写着00 00 00 C0,另外一块(记B)写着FF FF FF FF,并且B是一个擦除过的很干净的空块。A其余可能的取值是00 00 00 80,B其余可能的取值是00 00 00 F0和00 0000 E0,这一点与FMM中的用法基本相同。当A写满时需要整理,会运行一个整理流程,也会用到这些取值。每个偏移表项由低28 b的偏移值和高4 b标志位构成,其中标志位正常取值时,0xC0表示有效,0x8表示已删除;其余可能的取值是0xF表示空闲或者正在写,0xE表示刚刚修改完。对注册表的增加、修改、删除都会用到这些取值。记录控制字的FLAG每个记录控制字由低28 b的SIZE和高4 b的FLAG构成。FLAG的取值前面有描述,正常情况下0xE表示键值为DW0RD,0xC表示键值为Binary,0x8表示键值为String,其他的取值都表示正在写入控制字段时突然掉电,此时SIZE不可靠,整个数据块应该丢弃这4个字节。下一个偏移表项的取值应该仪仅越过这4个字节。对注册表的增加、修改、删除等操作,会用到这个FLAG,它与偏移表项的标志位一起使用,共同完成这几种操作的掉电保护。
1.3 部分API函数示例
    注册表系统向应用提供的API接口有4个,另外还有一个初始化和一个块擦除流程,即RegCreateKey()刨建;RegDeleteKey()删除;RegQueryValueEx()查询;RegSetValue()设置;Reg_Initialize()初始化;Reg_EraseChip()擦除。

2 开发环境
    本软件模组在PC机上开发,经过编译工具embedded Visual C++后,在CPU为ARM920T的硬件平台下运行。
    编程语言:C语言
    操作系统:Nucleus
    Nucleus内核版本:2.4.20
    交叉编译工具:VC++&ADS
    编译环境:Visual C++
    硬件平台:SC32442X或ARM920T

3 结语
    由于Smartphone的用处已经越来越广泛,故提出一种为Smartphone建立较为通用高效的手机注册表实现方案,这对后继手机软件的应用开发,建立了良好的开发基础,性能优越且易于移植,已经成功应用于Linux和Windows CE等嵌入式操作系统。目前该方案已用于诸多无线移动多媒体终端项目,且效果理想。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭