代码拉取完成,页面将自动刷新
开发者移植vm至mcu工程,首先需要了解vm功能原理以及其依赖关系。首先vm的记忆原理是在系统掉电之前写入需要保存的信息到 内置系统flash 的“EEPROM区域”,这样可以在下一次上电之后通过访问flash从对应的区域读取掉电前保存的信息。vm在初始化过程中需要通过 文件系统(syd) 的方式初始化“EEPROM区域”,而文件系统在挂载和开文件时需要 申请内存 给文件系统和文件句柄。所以我们可以了解到 vm功能 需要依赖 文件系统 、 设备(内置系统flash) 和 malloc 相关功能。
接下来以AD15v1.8.0 mcu SDK为例,简要说明vm移植流程
1、 链接相关的静态库。
按照上述说明的依赖关系,链接malloc、设备、文件系统和vm静态库。链接之前最好从voice_toy工程的liba目录将需要的库拷贝到mcu的liba目录。
2、加入相关的初始化代码
init.c中的依赖函数可以直接从voice_toy工程中移植。
3、添加相关的依赖代码
将框内的依赖代码加入编译
4、在app_config.h中选择vm,然后打开vm初始化中的demo,测试vm是否读写正常