文件系统#

基本信息#

  • 起草日期: 2019-11-28

  • 设计人员: wendal

为什么需要文件系统#

  • mcu内置一片flash区域或外部flash

  • 使用该区域存放lua脚本及其他文件

  • 将来可能还需要使用fatfs挂载sd卡

设计思路和边界#

  • 提供文件操作的lua api(增删改查), 用法与lua原生的io模块相同

  • 提供lua虚拟机读取lua脚本的C API

  • 额外提供获取文件系统信息的api, 包括C和lua

C API#

Luat_FILE luat_fs_fopen(char const* _FileName, char const* _Mode);
uint8_t luat_fs_getc(Luat_FILE stream);
uint8_t luat_fs_fseek(Luat_FILE stream, long offset, int origin);
uint32_t luat_fs_ftell(Luat_FILE stream);
uint8_t luat_fs_fclose(Luat_FILE stream);

Lua API#

基础API, 与原生io模块相同

遍历文件夹#

local names = io.lsdir("/ldata/")

相关知识点#

  • Luat核心机制