高效开发,从暗藏玄机的文件系统开始

news2024/11/10 12:57:11

4G-Cat.1模组的文件系统关乎数据传输速度、存储效率,以及数据安全性等等诸多因素,在应用开发中极为重要。

本期,我们来学习合宙Air201的实用示例——文件系统的使用

 Air201文件系统的使用 

图片

合宙Air201资产定位模组——是一个集成超低功耗4G通信、语音通话、超低功耗定位、计步、震动、Type-C、充电、放音、录音等功能的超小PCBA。

内部集成高效、简单、可靠的LuatOS语言,旨在帮助客户降低开发难度,降低研发成本,以及打造超小超低功耗的精品产品。

本教程教你使用Air201文件系统,可根据实际情况灵活运用。我们先来简单了解文件系统相关的基础知识:

文件系统是为了解决什么问题产生的?

4G-Cat.1通信模组的文件系统是为了支持数据存储与管理、支持远程管理和配置,以及保障数据安全性而产生的。

常见的文件系统有哪些?

在嵌入式系统和物联网设备中,常见的文件系统类型包括FAT、YAFFS、JFFS2,以及专为嵌入式系统设计的文件系统如SquashFS和LittleFS等。

文末阅读原文,了解不同文件系统类型在应用中的优缺点。

合宙Air201选择的文件系统有何特点?

合宙选择LittleFS作为主文件系统,并通过VFS扩展支持其他文件系统。

LittleFS文件系统是由ARM公司(特别是其mbedOS团队)开发的一款专为微控制器(MCU)和物联网(IoT)设备设计的轻量级、健壮的文件系统。

它针对资源受限的环境进行了优化,具有轻量高效、闪存友好、易用可移植、支持高度定制等特色优势。

合宙Air201的文件系统分区存储方式,使用Block存储策略:

将文件分割成多个数据块(Blocks),每个数据块可以独立存储和处理,这样允许多个数据块同时读写,从而提高数据传输速度和存储效率。

默认分配的文件系统(lfs)大小为512KB,在代码中也可通过 fs.fsstat("/") 实时获取文件系统的空间大小。

图片

接下来,开始讲解Air201文件系统的使用示例:

1. 搭建环境

新同学建议先看前期的相关教程,更有助于理解和操作。

此时可以在LuaTools项目管理中新建一个项目,重新选择底层固件和脚本;或者在原有项目的基础上,不更换固件,将原来的脚本删除,添加为demo/fs的脚本。

图片

1.1 硬件准备:

图片

  • 合宙Air201 PCBA

  • 带有数据通信功能的数据线

  • Win10以上PC

1.2 软件准备:

  • LuaTools调试工具:
    doc.openluat.com/wiki/52?wiki_page_id=5071

  • 最新固件:
    gitee.com/openLuat/LuatOS-Air201/tree/master/core

  • 最新脚本:
    gitee.com/openLuat/LuatOS-Air201/tree/master/demo/fs


2. 编写代码

2.1 代码基本配置

我们在编写一个新脚本的时候,首先应该做的操作就是把框架搭好,有一个合理的框架才能编写出完美的代码。

以下代码对脚本做了命名、添加使用库、创建任务线程等操作:

图片

2.2 添加看门狗

注意:我们在进行文件系统的操作时,可能会出现空间不足死机的情况。

我们可以提前添加看门狗,来避免程序卡死:

图片

2.3 读写操作

以下代码对文件进行了打开读取内容和写入内容的操作,建议仔细阅读,可帮助我们更好地了解和掌握文件系统的读写操作。

图片

运行这段代码,得到的结果如下图打印:

2.4 文件seek操作

下面为大家演示seek的操作:

图片

如果没有加入seek的操作,这段代码运行结果应该是"ABCDEFG12345hello",但是因为seek将文件指针移动,导致结果输出不同。

图片

如何将TCP得到的数据存到文件系统呢?

今天的分享就到这里了
更多实用示例带你开启应用之门
下一期见~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2148467.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AntFlow系列教程之流程拒绝

这是开源项目AntFlow的一个系统入门使用教程.AntFlow是一款开源免费的企业级低代码工作流引擎.仿照钉钉设计,极大降低流程设计、开发和维护成本。详细介绍请查看历史文章:AntFlow开源仿钉钉低代码工作流平台集成RuoYi版本来啦 流程拒绝和流程同意提交的参数是一样的…

Ubuntu20.04 搜索不到任何蓝牙设备

电脑信息 联想扬天YangTianT4900k 问题描述 打开蓝牙之后,一直转圈,搜索不到任何蓝牙设备 排查 dmesg | grep -i blue 有如下错误: Bluetooth: hci0: RTL: unknown IC info, lmp subver 8852, hci rev 000b, hci ver 000b lsusb 芯片型号如…

MySQL数据库的使用

MySQL数据库的启停 先用管理员身份进入系统终端,然后再在终端中输入命令 启动 net start mysql84(你所安装的MySQL版本名称) 停止 net stop mysql84 不知道所安装的MySQL是什么版本?👇 首先打开cmd命令窗口&…

sqli-labs靶场搭建

下载了一个phpstudy进行搭靶场搭建 然后打开phpstudy安装好php,mysql等环境 正式sqli-labs靶场搭建 第一步:下载源码:https://codeload.github.com/Audi-1/sqli-labs/zip/master 解压后放进网站根目录,进到 sqli-labs的文件夹下&#xff0…

分享6个.NET开源的AI和LLM相关项目框架

前言 现如今AI应用的发展可谓是如火如荼的,它们在各个领域都展现出了巨大的潜力和影响力。今天大姚给大家分享6个.NET开源的AI和LLM相关的项目框架,希望能为大家提供一些参考。如果你有更好的推荐,欢迎RP投稿或文末留言。 https://github.c…

虚拟机之与物理机进行文本的复制粘贴

打开终端(快捷键CtrlAltt)。🖥️ 安装Open VM Tools,输入以下命令: sudo apt-get install open-vm-tools-desktop -y安装这个工具包可以增强虚拟机的功能,包括支持主机与虚拟机之间的复制粘贴,…

台球瞄准的投掷效应或者耦合效应

https://www.zhihu.com/question/27659022 怪不得理论上算的角度, 实际上打总是便宜, 原来这里面还有两个球之间的摩擦.也就是: 老师,这是您八年前的提问。我个人理解是:目标球会跟着主球往同一个方向走。打个比喻就是“目标球”会坐上“主球”的“火车”…

info 命令:查看命令手册

一、命令简介 在 Linux 系统中,可以使用 man​ 查看普通的帮助手册。还可以使用 info​ 命令阅读 Info 格式的文档。 ​info​ 文档的特点:大量使用超链接,通过方向键将光标移动到链接的文字,按下回车键,就可以切换到…

【齐家网-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

利用教育和参与的力量来推动你的应用程序的成功

在竞争激烈的应用推广领域,脱颖而出需要的不仅仅是华丽的广告和充满活力的视觉效果。真正吸引和留住用户的秘诀在于两个经常被忽视但非常强大的策略:教育和参与。如果做得对,这些元素可以将你的应用程序从单纯的下载转变为用户生活中必备的工…

安泰电压放大器设计方法是什么样的

电压放大器是电子领域中常用的设备,用于将低电压信号放大成高电压信号。电压放大器在信号处理、通信系统、仪器测量、控制系统、医疗设备和研究和实验室等领域都有着广泛的应用。 电压放大器的设计方法主要包括选择合适的放大器拓扑结构、选择适当的放大器参数以及进…

基于 UniApp 平台的学生闲置物品售卖小程序设计与实现

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

(已解决)vscode如何选择python解释器

文章目录 前言解决方案 前言 有的时候可能有不同版本的编译器,以适用不同年份的项目。所以,怎么在vscode中换python解释器呢? 解决方案 对着要运行的python文件进行右键,比如我是要运行main文件,点击那个命令选项版…

基于区块链的相亲交易系统源码解析

随着区块链技术的成熟与发展,其去中心化、不可篡改的特性逐渐被应用于各行各业。特别是在婚恋市场中,区块链技术的应用为相亲平台带来了新的可能性 。本文将探讨如何利用区块链技术构建一个透明、高效的相亲交易系统,并提供部分源码示例。 区…

OpenCV运动分析和目标跟踪(4)创建汉宁窗函数createHanningWindow()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 此函数计算二维的汉宁窗系数。 createHanningWindow是OpenCV中的一个函数,用于创建汉宁窗(Hann window)。汉宁…

Prompt最佳实践|指定输出的长度

在OpenAI的官方文档中已经提供了[Prompt Enginerring]的最佳实践,目的就是帮助用户更好的使用ChatGPT 编写优秀的提示词我一共总结了9个分类,本文讲解第6个分类:指定输出长度 提供更多的细节要求模型扮演角色使用分隔符指定任务步骤提供样例…

翻页时钟 2.0-自动置顶显示,点击小时切换显示标题栏不显示标题栏-供大家学习研究参考

更新内容 自动置顶显示点击小时切换显示标题栏,(显示标题栏后可移动时钟位置,鼠标拖动边框调整时钟大小)不显示标题栏时,透明部分光标可穿透修正一个显示bu 下载地址: https://download.csdn.net/download…

24年蓝桥杯及攻防世界赛题-MISC-2

11 Railfence fliglifcpooaae_hgggrnee_o{cr} 随波逐流编码工具 分为5栏时,解密结果为:flag{railfence_cipher_gogogo} 12 Caesar rxms{kag_tmhq_xqmdzqp_omqemd_qzodkbfuaz} mode1 #12: flag{you_have_learned_caesar_encryption} 随波逐流编码工具 13 base64 base64解…

powerbi如何修改卡片单位?

第一步:找到视觉对象--标注值 第二步:找到显示单位修改即可!

谷歌论文提前揭示o1模型原理:AI大模型竞争或转向硬件

Open AI最强模型o1的护城河已经没有了?仅在OpenAI发布最新推理模型o1几日之后,海外社交平台 Reddit 上有网友发帖称谷歌Deepmind在 8 月发表的一篇论文内容与o1模型原理几乎一致,OpenAI的护城河不复存在。 谷歌DeepMind团队于今年8月6日发布…