Including the invention provides a method and a device, embedded operating system code to load the method: the current usage scenario to obtain the embedded operating system; according to the corresponding relationship between scenario and address code, and obtain the current use of the corresponding scene in the first memory area to restore code according to the address; the need to restore the code address to get recovery code and call functions; loading the code needs to be restored, and according to the calling function from the second memory area loading other code corresponding to the current scene. The invention ensures the normal operation of the embedded operating system, and ensures the real-time performance of the system and the efficient operation of the system.
【技术实现步骤摘要】
一种嵌入式操作系统代码加载的方法及装置
本专利技术涉及通信领域,尤其是涉及一种嵌入式操作系统代码加载的方法及装置。
技术介绍
在嵌入式系统中,程序执行时,对变量的赋值操作其实就是对内存执行写入操作。如果程序在只读存储器ROM里执行,变量的赋值操作是不能实现的,随机访问存储器RAM可以支持随机地址读写,因此程序代码通常是在RAM里被执行的,而内存是典型的RAM,因此需要将代码从ROM拷贝到内存中。当系统选择从Nandflash启动之后,CPU自动将0x0地址映射到Steppingstone,同时将Nandflash前4K代码拷贝到Steppingstone,由于Steppingstone大小只有4K,而系统启动程序大小往往超过4K,因此需要将全部的启动代码从Steppingstone搬运到空间更大的内存中运行。当Steppingstone里的代码对搬运过程中的相关硬件(如外部存储控制器)设置好后,即进行初始化相关动作后,将程序搬运完成至外部存储控制器—双倍速率同步动态随机存储器DDR,然后跳入到DDR中继续运行。嵌入式系统内部还有一片用于存放系统频繁调度的流程代码的内存区域—InterRam,该内存区域的大小为256k。为保证系统的功耗降至最低,满足需求,系统设计为周期性掉电休眠,唤醒上电的运转系统。唤醒上电后某些特定场景下的代码流程,如唤醒上电后的特定流程即存放在此InterRam中。至此,代码存储空间由外部DDR和内部InterRam组成。这两处代码统一调度,保证系统正常运转。对于DDR和内部InterRam的指令访问区别是,内部InterRam指令访问 ...
【技术保护点】
一种嵌入式操作系统代码加载的方法,其特征在于,所述方法包括:获取所述嵌入式操作系统的当前使用场景;根据使用场景与代码地址的对应关系,获取与所述当前使用场景对应的在第一内存区域中需要恢复代码的代码地址;根据所述需要恢复代码的代码地址,获取需要恢复代码和调用函数;加载所述需要恢复代码,并根据所述调用函数从第二内存区域中加载当前使用场景所对应的其他代码。
【技术特征摘要】
1.一种嵌入式操作系统代码加载的方法,其特征在于,所述方法包括:获取所述嵌入式操作系统的当前使用场景;根据使用场景与代码地址的对应关系,获取与所述当前使用场景对应的在第一内存区域中需要恢复代码的代码地址;根据所述需要恢复代码的代码地址,获取需要恢复代码和调用函数;加载所述需要恢复代码,并根据所述调用函数从第二内存区域中加载当前使用场景所对应的其他代码。2.根据权利要求1所述的方法,其特征在于,所述第一内存区域为用于存放嵌入式操作系统中频繁调度代码的内存区域,所述第二内存区域为外部存储控制器。3.根据权利要求2所述的方法,其特征在于,在所述获取与所述当前使用场景对应的在第一内存区域中需要恢复的代码地址之前,所述方法还包括:将所述第一内存区域根据代码的调用频率划分多个内存子区域,其中每个内存子区域所对应的代码的调用频率不同,且相邻的内存子区域所映射的虚拟地址之间的间隔值至少为32MB。4.根据权利要求3所述的方法,其特征在于,所述第一内存区域划分为第一内存子区域、第二内存子区域和第三内存子区域,其中第一内存子区域和第二内存子区域中均存放有代码,第三内存子区域为保留区域,且第一内存子区域中的代码调用频率大于第二内次子区域中的代码调用频率。5.根据权利要求3所述的方法,其特征在于,所述根据所述调用函数从第二内存区域中加载当前使用场景所对应的其他代码,包括:将与内存子区域对应的所述调用函数经过汇编后生成LDR指令,所述LDR指令链接地址位于所述调用函数对应的内存子区域中,所述LDR指令...
【专利技术属性】
技术研发人员:金志涛,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。