STM32系统中应用的动态加载可行性研究过程

时间:2021-03-02 20:44:56

           目前了解到应用的安装实现其实是系统对应用程序包的一种动态加载和链接的过程,加载过程中首先将应用程序包进行解压缩,然后将程序包中包含的code、data、res等分别存放到指定的存储空间(CPU内置的ROM或者外扩的FLASH存储空间);而链接过程中是让应用程序可以正常的运行code和获取到相对应的数据和资源。如果应用是用C来实现,那么系统可以直接将code进行重定位后调用执行;如果应用是用JAVA来实现,那么系统需要集成JAVA虚拟机,通过JAVA虚拟机对应用程序包中的code进行编译之后才能在系统中执行,因为JAVA的应用程序包中的代码是一个class文件,其实是一个字节码,并不是可直接执行的机器码,需要通过JAVA虚拟机编译成机器码之后才能执行,那么就需要在系统中移植JAVA虚拟机;如果应用是用JavaScript来实现,那么系统中就要集成一个JS引擎来解析JavaScript语言,因为JavaScript实现的应用程序包代码是没有经过任何编译器编译过的,它是一个脚本语言,JS引擎在系统运行时刻充当解释器的角色。
           从上面三种的实现形式看,不管采用哪种形式,我们都要涉及到一些我们根本不熟悉的领域,要去了解加载器和链接器原理、JAVA虚拟机移植实现、JS引擎移植实现;这些都不是一个简易的事情啊。为了研究工作的进一步进展,我们暂定从JavaScript的实现形式着手,看能不能有些进展,根据这个方向,我暂且抛出如下几个问题:
          1、JavaScirpt语言如何使用;
          2、JS引擎如何移植;
          3、在目前的硬件系统中资源有限,是否可以支持JS引擎的移植; 看能否了解到Pebble方案的实现原理;Pebble的手表系统中有移植JS引擎吗;