Avatar

帮同学宣传一下http://shop57644665.taobao.com/

终端管理(DM)平台是基于OMA 国际标准的移动数据增值业务,开放性与标准化是DM 业务系统赖以生存发展的基础。支持DM 业务的终端产品应同样符合这一原则,基于业界开放式标准,包括各种网络协议、内容格式,并且要体现良好的扩展性和互操作能力。

主要涉及的标准及其协议有
中国移动GPRS移动终端规范,CMPP协议,SyncML,OMA,OTA,WAP.

终端管理(DM)业务是中国移动用于管理用户终端的新业务,它使得中国移动实现了通过无线方式对移动终端进行远程管理的能力。终端管理业务一阶段应包括:终端自注册,软件补丁修复和功能升级,终端参数收集以及终端参数配置。

如终端出现软件故障或参数配置问题,用户无须前往维修中心进行诊断和软件更新,而是通过终端管理(DM)平台提供的服务进行远程终端诊断,通过无线方式下载终端软件补丁程序或执行自动远程设置即可解决终端软件故障和参数配置问题。使用终端管理业务平台,手机业务参数的设置以及新的终端软件版本的下载升级也可通过DM 平台的用户自服务门户,由用户自行完成相关参数设置和软件升级,极大的方便了用户对终端的使用。

中国移动的未来新业务部署工作,可以通过在原有终端上推送新版本的软件完成,避免了过去为了支持新业务给中国移动和用户带来的各种不便,同时也利于中国移动迅速推广新业务。使用终端管理(DM)平台,中国移动可以对终端的界面进行更新,辅助用户实现个性化终端设置。这将还有助于树立中国移动品牌形象,提升用户满意度。终端管理(DM) 平台的业务分析统计功能,通过分析终端厂商上传的终端能力信息和无线方式收集的终端其他信息,可用于中国移动的业务分析和经营决策。

终端通过终端自注册,将终端的基本信息上报到终端管理(DM)平台。终端管理(DM)平台使用OMA DM 协议对终端的参数进行配置。通过OMA DM1.1.2 协议实现了终端信息与终端管理(DM)平台的信息同步和信息发现过程,以及对终端的远程无线方式的参数收集和参数配置功能。终端管理(DM)平台使用OMA FUMO 规范,实现终端软件补丁修复和功能升级。

终端自注册成功后,移动用户可以通过多种方式使用终端管理服务。
网络侧发起,对终端进行批量参数设置、参数收集或软件除错或功能升级;
移动用户通过登录用户自服务网站,通过DM 平台触发终端管理业务;
移动用户通过手机DM WAP Portal,触发终端管理业务;
通过终端侧发起的DM 服务;(二阶段)

Tagged with: , , .
Avatar

帮同学宣传一下http://shop57644665.taobao.com/

直接通过一个例子来解释。
-c /* Autoinitialize variables at runtime */
在代码中可以使用scatter file中的符号。

以下这个MEMORY字段是这个系统的整体上划分。包括系统的flash,片外ram,片内ram,还有也表明了已经固化的ROM的地址及其长度。

MEMORY
{
/* Secure Boot ROM */
BOOT_MEM (RXI)  : org = 0×00000000   len = 0×00100000
名称(属性) 要固定的起始地址  长度。
/* CS0: External SRAM 2 Mbytes */
D_MEM0   (RW)  : org = 0×00400000   len = 0×002d0000

/* code Area */
P_MEM0   (RXI) : org = 0×06000000   len = 0×00210000
P_MEM1   (RXI) : org = 0×06210000   len = 0×001f0000
P_MEM2   (RXI) : org = 0×06400000   len = 0×00080000
P_MEM3   (RXI) : org = 0×06480000   len = 0×00180000

/* resource Area */
R_MEM      (RXI)  : org = 0×06600000   len = 0×00200000

/* FFS Area  */
FFS_MEM  (RI)  : org = 0×06800000   len = 0×00800000

S_ROM   (RXI) : org = 0×08050000   len = 0×00030000

/* Allocate memory for MIDI and JPEG */

/* CS6: Calypso+ Internal SRAM 320 kbytes */
/* Code & Variables Memory */
S_MEM    (RXW) : org = 0×08000000   len = 0×00037560 /*0×0004FB60*/
}

-heap 0×10000    /*HEAP AREA SIZE*/
Heap是留给系统实时库使用的空间。

SECTIONS字段是对MEMORY中各个段的详细描述。

SECTIONS
{
/* Entry point of the Firmware */
.start   : {} > 0×06000000
.start是使用预处理指定定义的一个标识,代码中是
.sect “.start”
这里将其地址固定在0×06000000处。

/*
*  Interrupt vector re-mapping management
*/
.intload : {} > 0×06000004
.indint  : {} load = 0×06000008, run = 0×0800000C
.indint的代码储存在flash中的地址也就是load的地址是0×06000008,但是可以通过run = 0×0800000C来实现其在ram运行,在ram中的地址是0×0800000C,链接器在link时对该处使用在ram中的地址来进行链接。

.inttext : {} > P_MEM0     /* int.s Code */

.bss_dar : > D_MEM0        /* DAR SWE Variables */
{
$(BSS_DAR_LIB)
}
名称为BSS_DAR_LIB的lib的bss,也就是全局变量放入到D_MEM0,而且他们有一个标识.bss_dar
.bss     : > D_MEM0        /* Global & Static Variables */
{
$(BSS_BOOT_LIB)
}
.bss是编译器默认的全局变量的名称。以上一段是将名称为BSS_BOOT_LIB的lib中的全局变量放入到D_MEM0中。
Read the rest of this post »

Tagged with: , .
Avatar

帮同学宣传一下http://shop57644665.taobao.com/

scatter-loading机制允许我们通过scatter file将image中的各个区域指定到特定的地址上。其实对于一个特定的系统,这个也是必须的,因为每个系统的片选地址是不一样的。

以下这个简单的例子中,flash的开始地址是0×0000,其长度为0×8000,用于存放code和各种Read-Olny数据。RAM的起始地址是0×10000,其可用大小为0×6000,用于存放Read-Write数据。

Load和Run时的情况如下

我们也可以通过类似bootarm.obj (C$$code,+First)的格式,来手动指定特定c文件中特定部分(使用预处理指令命名,例子中为C$$code)出现在该段的最前面(+First)或最后面(+Last)。
当然scatter file支持更加复杂的应用,比如多个load rom,内存共用,代码在ram中执行等等…

使用scatter file会对应生成一些与之相对应的符号(symbols)。这些符号是可以在我们的代码中进行引用的。生成的符号及其意义如下:
Load$$region_name$$Base                 Load address of the region.
Image$$region_name$$Base               Execution address of the region.
Image$$region_name$$Length            Execution region length in bytes (multiple of 4).
Image$$region_name$$Limit               Address of the byte beyond the end of the execution region.
Image$$region_name$$ZI$$Base         Execution address of the ZI output section in this region.
Image$$region_name$$ZI$$Length      Length of the ZI output section in bytes (multiple of 4).
Image$$region_name$$ZI$$Limit         Address of the byte beyond the end of the ZI output section in the execution region.
在我们的代码中使用如下例子。
IMPORT ||Image$$region_name$$ZI$$Limit||
__user_initial_stackheap
LDR r0, =||Image$$region_name$$ZI$$Limit||
MOV pc, lr

Tagged with: .
Avatar

帮同学宣传一下http://shop57644665.taobao.com/

一般一个ARM系统的boot过程是这样的。首先ARM在上电后直接跳转到0地址,在这个地址上存放的是系统的启动代码。系统开始执行时一般会先设置DPLL和clock,然后进行片选,接着将需要放到ram中代码手动copy到ram中,设置EMI等系统必要参数,设置ARM各个模式的系统堆栈,切回SVC模式进行操作系统初始化。
以下是一个实际的基于ARM平台的一个bootloader示例。
编译环境:ADSv1.2
Read the rest of this post »

Tagged with: , .
Avatar

帮同学宣传一下http://shop57644665.taobao.com/

典型的手机ic由以下几部分组成
The Digital Base Band structure
The Radio Frequency Sub-System
The RF Sub-System Wrapper

这部分主要由MCU部分,DSP部分,外设GPIO,数据总线等部分组成。

Read the rest of this post »

Tagged with: , , .
Page 1 of 11