ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ESP32-S31 上做可在线安装的 WASM 应用平台:0.4.9 Beta 发布

ESP32-S31 上做可在线安装的 WASM 应用平台:0.4.9 Beta 发布 摘要ESP Mini App Platform 0.4.9 Beta 已经把系统界面、WebAssembly 运行环境、应用包、权限与私有数据、在线目录和系统更新连成一条使用路径。本文介绍这次发布交付了什么、系统与应用如何分层、首次安装与 OTA 的区别以及目前仅直接支持 ESP-MosaicoESP32-S31 的硬件边界。本文是版本发布说明不是烧录命令教程。从“固件里加页面”到“系统里装应用”做 ESP32 项目时最直接的办法是把所有功能写进一份固件首页、游戏、天气和设置构建完成后一起烧录。功能少时很高效功能变多之后任何一个小应用的更新都可能牵动整份系统固件。应用的数据、权限和版本也容易混在一起。我做 ESP Mini App Platform就是想把这两个变化速度不同的部分拆开底层固件提供屏幕、触摸、网络、存储和受限系统接口上层功能作为独立的 WebAssembly 应用按需安装和更新。前面的系列文章分别讨论了运行时、SDK、应用包和发布链路。到了 0.4.9 Beta它们第一次组成可以交给其他人使用的版本。这里的“应用平台”不是在固件中画六个可点击页面而是让每个应用有自己的身份、版本、权限和生命周期。系统仍然需要烧录系统更新仍然存在变化是后续增加一个小功能不必默认重新编译和烧录整份系统。0.4.9 Beta 交付了什么从设备端看当前版本有首页、应用库、在线应用目录与设置页。界面可切换中文和 English联网后在线目录会展示应用名称、版本、权限和可执行动作。根据本地状态用户可以安装、更新、重新安装或卸载应用。系统本身另有 OTA 更新入口。从应用开发端看平台提供 C、C、Rust 和 WAT 的开发路径。开发者编译出符合平台约束的 WASM声明应用名称、版本、权限和硬件要求生成签名.app安装包再把包和目录元数据发布出去。设备端读取目录并安装应用而不是把目录中的文件当作任意可执行二进制直接运行。这条链路可以概括为应用源码C / C / Rust / WAT ↓ 平台 SDK 与 WASM ↓ Manifest 签名 .app 安装包 ↓ HTTPS 静态目录 / 应用包托管 ↓ 设备下载、校验、安装 ↓ 应用库管理与运行时系统 API应用包和系统固件是两种不同的发布物。系统固件负责平台本身.app是装在平台上的小应用。把这两者分清是使用 0.4.9 时最重要的一步。在线目录为什么只需要静态托管0.4.9 固件已经内置正式的在线应用目录地址。设备连接 Wi-Fi 后进入“在线应用”并点击“刷新”就会通过 HTTPS 读取目录。目录描述应用的名称、版本、权限和对应安装包用户选择应用时设备再获取.app文件。目前目录和安装包由腾讯云 COS 托管。这个场景不需要先搭建一个常驻的应用商店服务器对于设备而言版本化的目录文件加上对应的静态包就能形成可发现、可下载的发布入口。当然静态托管不等于没有发布纪律。先准备应用包、核对元数据再更新目录才能避免设备读到指向尚未上传文件的条目。在线目录解决的是发现与分发平台的应用管理解决的是身份、权限与生命周期。一个目录列表本身不能替代安装包校验和设备端管理。六个应用分别说明什么当前实机首页安装了六个应用Hello WASM、Touch Paint、Snake、Pocket Garden、BounceC和 BounceRust。这个截图展示的是应用已安装后的状态首次完整烧录后通常只有内置的 Hello WASM其余应用需要从在线目录安装。Hello WASM 让应用最小结构可见Touch Paint 展示触控交互Snake 使用动画与本地记录两个 Bounce 示例表明 C、Rust 应用也能通过同一条运行路径进入设备。Pocket Garden 则承担“复杂一些的应用是否仍能成立”的角色它把时间、天气、植物、动物、浇水、喂食、音乐和触摸交互放在同一个应用里。Pocket Garden 的详情页显示名称、应用 ID、版本、权限以及打开、卸载入口。它声明显示、触控、环境、输入和音频等能力屏幕和触摸是必需外设扬声器、人体感应和按键等是可选外设。缺少可选外设时应用可以继续运行只关闭相应交互。第一次安装和后续更新不是一回事面向 Windows 1011 x64 的 0.4.9 发布包包含完整镜像、一键安装入口、文件校验、新手说明和硬件支持说明。首次安装的基本顺序是确认开发板为 ESP-Mosaico主控为 ESP32-S31使用 USB 数据线连接电脑。让开发板进入 ROM 下载模式完整解压修正版Windows 烧录包运行一键安装.bat。工具校验镜像、识别串口并在用户确认后写入完整镜像。如外置 NAND 尚未就绪且其中没有需要保留的数据再按提示主动初始化。设备启动后连接 2.4 GHz Wi-Fi进入“在线应用”刷新并安装需要的应用。完整镜像包含引导程序、分区表、初始 OTA 数据与平台固件。与之不同版本化的 OTA.bin是给已经安装平台的设备更新系统使用的不能当成首次安装的唯一文件。修正版安装工具不会调用 ESP32-S31 ROM 不支持的整片erase_flash。它写入完整镜像覆盖的内部 Flash 扇区其中包括 NVS镜像范围外的内部区域并非全部擦空。外置 NAND 不会随烧录自动格式化只有用户明确确认初始化时才会清除其中的应用和数据。这些边界需要在分发时说清而不是笼统地写“无损升级”或“清空全部 Flash”。硬件边界ESP32-S3 不能直接刷这个包本次发布镜像的直接支持对象是 ESP-MosaicoESP32-S3116 MB 内部 Flash、当前板卡的屏幕与触摸配置、PSRAM 和板载 SPI NAND 都已纳入固件与分区设计。即便另一块板也使用 ESP32-S31只要显示控制器、触摸、存储、引脚或分区不同仍需要 BSP 与驱动适配并重新构建。ESP32-S3 与 ESP32-S31 更不是同一固件目标。给 S3 接上相同外设不能直接运行这份 S31 二进制。可以讨论从源码移植更换 ESP-IDF target、适配 BSP 与驱动、调整构建配置和分区再重建宿主固件WASM 应用层有复用空间但这不等于“加外设即可使用”。0.4.9 仍是 Beta适合开发学习、创客装置和产品原型。在线功能需要 Wi-Fi 与可访问的 HTTPS 服务应用只能调用平台已开放的能力也不适合把它当成通用手机系统或大型图形运行环境。发布之后的方向这次版本发布让一条路径闭合系统留在设备里应用可以从目录里被发现、安装和替换。接下来我会继续整理公开开发文档、改善应用图标与分类、简化第三方应用发布流程并推进面向正式设备的安全启动和固件保护。对我来说这个版本的意义不在于首页摆了多少个按钮而在于设备上能运行的不再只有我事先写死在固件里的功能。下一篇更适合拆一个具体问题第三方应用怎样从源码走到设备的在线目录。ESP32-S31、ESP32、WebAssembly、WASM、嵌入式系统、ESP-IDF、应用平台、OTA、腾讯云 COS
返回列表