代码拉取完成,页面将自动刷新
演示自定义资源加载器(本项目主要是演示目的,实际使用时,请自己多测试,有问题请反馈)。
本项目中的资源加载器,可以在没有文件系统的情况下,从 norflash 加载资源。
基本工作原理:
通过资源打包工具 (assets_pack) 将资源打包成二进制文件。
将打包二进制文件烧录到 norflash 中。
在代码中定义宏 ASSETS_CUSTOM_INIT(),并实现 my_assets_init 函数。在该函数中,将资源地址指向 norflash 中资源所在地址。
git clone https://github.com/zlgopen/awtk.git
cd awtk; scons; cd -
scons
python3 ./scripts/update_res.py all
assets_pack 负责将资源打包成二进制文件。
./bin/assets_pack <项目根目录> <生成的资源包文件名>
项目根目录 中必须存在事先生成好的 res 目录。
生成的资源包文件名 为二进制文件,用来烧录到 norflash 中。
./bin/assets_pack ./ data/assets.bin
./bin/assets_pack ../awtk-ftpd ../awtk-ftpd/assets.bin
在 main.c 中定义宏 ASSETS_CUSTOM_INIT(),并实现 my_assets_init 函数,如下所示:
ASSETS_BIN_ADDR 为资源包的起始地址,ASSETS_BIN_SIZE 为资源包的大小。
#include "asset_loader_custom.h"
#define ASSETS_CUSTOM_INIT() my_assets_init()
static ret_t my_assets_init(void) {
asset_loader_t* loader = NULL;
assets_manager_set_res_root(assets_manager(), "data");
#if defined(WIN32) || defined(MACOS) || defined(LINUX)
loader = asset_loader_custom_create_with_file(ASSETS_BIN_FILENAME);
#else
/*对于嵌入式系统:请将下面的宏改成实际的地址和大小*/
#define ASSETS_BIN_ADDR 0x0000
#define ASSETS_BIN_SIZE 0x0000
loader = asset_loader_custom_create(ASSETS_BIN_ADDR, ASSETS_BIN_SIZE);
#endif
assets_manager_set_loader(assets_manager(), loader);
return RET_OK;
}
在嵌入式项目中,加入下面的源文件即可:
src 目录中其它文件只是用于演示目的,可根据需要参考。 tools/assets_pack 目录下的文件为资源打包工具,只是在 PC 上使用。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。