斯凯引擎程序启动详解:从mr_start_dsm到应用初始化

需积分: 10 2 下载量 77 浏览量 更新于2024-08-13 收藏 500KB PPT 举报
斯凯引擎的程序启动过程是一个关键环节,它涉及到斯凯平台的应用部署和运行。首先,当需要启动一个应用程序时,程序会通过调用`mr_start_dsm(entry)`函数来启动虚拟机。这个函数是斯凯平台的核心组件,它负责初始化虚拟环境并为后续的程序运行做好准备。 虚拟机在启动后,会定位到与之对应的MRP(Mythroad Program)程序。MRP是斯凯平台特有的可执行文件格式,它是Mythroadpack的缩写,专为Skyengine设计,可以直接运行于该平台上。Mythroad是一种高效的语言,相较于Java,它具有更高的执行效率,且支持标准C语言,为开发者提供了灵活性。 接下来,虚拟机会对找到的MRP程序进行解压缩,这是为了将程序的二进制代码和资源释放到内存中。这一阶段涉及内存管理,确保足够的空间来存储代码和数据。然后,全局变量会被载入内存,这些变量在整个程序执行过程中是共享的,对程序的行为至关重要。 一旦全局变量加载完毕,`int32 mrc_init(void)`函数会被调用,用于完成应用程序的初始化过程。这个步骤涵盖了设置环境、配置资源、初始化数据结构等核心任务,确保应用程序能够顺利启动并开始运行。 应用程序启动完成后,根据MRP文件的配置,平台可能会生成额外的中间文件或依赖文件。这一步可能包括读取Mythroad的工程文件(mpr),该文件是项目管理和构建的基石,用于指导编译器生成MRP文件或者库文件。 在这个过程中,斯凯平台提供了专门的工具如MRPBuilder,它负责编译和构建应用程序。MRPBuilder是程序编译器,负责将源代码转化为可执行的MRP文件。Mpr则是一个工程管理工具,类似Makefile,用于组织C和Mythroad的源代码,协调编译过程。此外,平台还支持C语言编译器(armcc.exe)和链接器(armlink.exe),用于处理C语言程序的编译和链接。 斯凯引擎的程序启动过程是一个精心设计的链条,从虚拟机启动、MRP文件的定位和处理,到应用程序的初始化和资源加载,每个环节都体现了斯凯平台对于性能、内存优化和兼容性的重视。了解并掌握这个流程对于开发人员来说,是理解和利用斯凯平台开发高效、低内存占用应用的基础。