MN316 OpenCPU丨Flash使用介绍

2023-12-05

在MN316 标准版SDK中,定义了操作模组内置flash接口,用户可操作空间为64KB,分为16个block,每个block大小为4KB。用户如有操作flash的需求,可调用相关接口。

  • FOTA使用流程解析

以下流程图为使用 MN316 OpenCPU SDK flash 功能时的常见流程。

关于Flash功能的各种接口,可在SDK中include\cmiot\cm_flash.h查看;

关于Flash Demo示例,可在SDK中examples\flash\cm_demo_flash.c查看。

图1 flash测试流程图

  • Flash 接口介绍与demo解析

1、Flash信息结构体

flash包含块的数量,和单块空间大小。

图2 flash_info结构体变量

2、获取flash信息接口:

此接口可以获取内置flash相关信息。信息可以参考cm_flash_info_t结构体内容,flash包含的块数为16块,每个块的大小为4KB。

图3 获取flash_info的接口

3、Flash擦除接口:

此接口可以擦除flash内容,按块擦除,每个块的大小为4KB,执行成功返回0。

图4 flash擦除接口

3、Flash写数据接口:

此接口用于往flash里写数据,可直接调用,不需提前擦除flash。

参数addr:数据写入的地址;

参数buf:待写入数据的首地址;

参数Size:待写入数据的长度。

执行成功后返回实际写入长度。

图5 flash写数据接口

4、Flash读数据接口:

此接口用于从flash里读数据。

参数addr:数据读取的地址:

参数buf:数据读取的缓存地址,需要分配内存。

参数Size:读取数据的长度。

图6 flash读数据接口

三、Flash demo 演示

定义写入字符串,分配读取内存,打印开始标志位,写入待测字符串,后读取刚写入字符串。

图7demo演示对flash写和读的功能

打印读取字符串,释放内存,擦除flash。

图8释放flash读数据内存,擦除已写数据

SDK中使用命令行输入build dlvd_h0 demo,logview工具合并生成demo固件后烧写到被测模组中,上电后DEMO程序开始运行,待AT串口输出please input cmds:输入测试flash指令:CM:FLASH调用cm_test_flash函数。测试结果如下所示:

图9运行测试flash demo例程,模组串口打印

需要使用模组内置flash功能的用户可以参考以上代码流程,以上便是flash相关demo的代码解析及应用介绍。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MN316 OpenCPU丨Flash使用介绍 的相关文章

  • OpenWrt开放端口

    背景 安装了OpenWrt 想要从外部访问内部的某些端口 发现并不能够访问 如Open clash的代理端口 及时在clash中打开允许访问 但是仍然不行 其他方法 网络上看到的方法都是在命令行中操作 或者将命令添加到开机命令中 方法 端口
  • 鼎捷输配电电子组装行业数字化转型方案出炉,3个方向解决7大痛点!

    近年来 随着经济的高速发展 我国全社会用电量快速增长 用电总量位居全世界第一 在 双碳政策 新基建 等多个产业政策的支持下 新型电力系统和特高压建设的推进下 释放巨大的输配电设备升级换代市场需求 促使输配电电子组装行业产值逐年增加 数据显示
  • 华为认证 | HCIP和HCIE差别很大吗?

    根据ICT从业者的学习和进阶需求 华为认证分为 工程师级别 高级工程师级别和专家级别 三个认证等级 分别就是 HCIA HCIP以及HCIE 这三个级别中 HCIA作为一个比较入门级别的考试 选择的人比较少 大多数小伙伴可能会 更关注HCI

随机推荐

  • 如何保持操纵机构丝杆的精度?

    滚珠丝杆是操纵机构中的重要组成部分 可以传递较高的扭矩 并且具有低摩擦 高效率和快速响应的特性 这使得操纵机构能够实现高速 高精度的运动控制 这对于整个系统的性能和精度具有决定性的影响 保持操纵机构丝杆的精度是确保整个系统正常运行的关键 那
  • RflySim | 姿态控制器设计实验一

    姿态控制器设计实验1 一 姿态控制设计简介 本文是建立在多旋翼的姿态即控制器中的反馈信号能够被较好地估计的前提下 控制器中的反馈信号是估计值 不过 为了更加简便根据分离原理 我们用真值代替反馈信号 本文的目的是让多旋翼的姿态能够跟随我们给定
  • Sequential Modeling Enables Scalable Learning for Large Vision Models

    目录 一 论文速读 1 1 摘要 1 2 论文概要总结 二 论文精度 2 1 论文试图解决什么问题 2 2 论文中提到的解决方案之关键是什么 2 3 论文提出的架构和损失函数是什么 2 4 用于定量评估的数据集是什么 代码有没有开源 2 5
  • AI大模型专题:北京市人工智能行业大模型创新应用白皮书

    今天分享的是人工智能系列深度研究报告 AI大模型专题 北京市人工智能行业大模型创新应用白皮书 报告出品方 北京市科学技术委员会 中关村科技园区管理委员会 报告共计 72页 海量 完整电子版 报告下载方式 公众号 人工智能学派 综述 作为新一
  • 学生犯错误老师应该怎么教育

    作为一名老师 当学生犯错误时 我们需要采取一些措施来帮助他们改正错误并学习如何更好地处理问题 以下是我作为一名老师会采取的几个步骤 进行私下谈话 了解他们为什么犯错误 我会听取他们的解释 并尝试理解他们的动机 这样做可以让我更好地了解学生的
  • 允许root远程连接数据库

    开放root远程连接数据库的权限 Linux系统 环境 centos7 关闭防火墙 没关要开放数据库的端口 一 进入数据库 查看权限表信息 MariaDB none gt use mysql Reading table informatio
  • 为什么最近听说 Go 岗位很少很难?

    大家好 我是煎鱼 其实这个话题已经躺在我的 TODO 里很久了 近来很多社区的小伙伴都私下来交流 也有在朋友圈看到朋友吐槽 Go 上海的大会没什么人 还不如 Rust 大会 比较尴尬 今天主要是看看为什么 Go 岗位看起来近来很难的样子 也
  • 计算机组成与设计:硬件/软件接口,第三章详细梳理,附思维导图

    文章目录 三 计算机的运算 章节导图 一 整数的表示 无符号整数 原码 反码 原码是带符号整数的表示方法
  • Liunx常用基础命令

    目录 liunx常用命令基础 1 cd命令 2 ls命令 3 pwd命令 4 touch命令 5 head命令 6 cat命令 7 more命令
  • 网络安全日报 2023年12月04日

    1 研究人员披露Lazarus组织已窃取价值30亿美元加密货币 https go recordedfuture com hubfs reports cta 2023 1130 pdf 至少自2017年以来 来自朝鲜的Lazarus组织越来越
  • Linux(13):例行性工作排程

    例行性工程 听谓的排程是将工作安排执行的流程之意 Linux 排程就是透过 crontab 与 at 这两个东西 两种工作排程的方式 一种是例行性的 就是每隔一定的周期要来办的事项 一种是突发性的 就是这次做完以后就没有的那一种 at at
  • 软件测试/人工智能|Python 变量解析:从基础概念到内存地址探究

    变量 什么是变量 变量是在程序中用于存储数据的名称 它们可以存储各种类型的数据 比如数字 文本 列表 字典等等 变量类型 在介绍变量时 可以提及 Python 中常见的变量类型 例如整数 浮点数 字符串 布尔值 列表 元组 字典等 如下所示
  • 分享一个字节面试题:如何实现准时的setTimeout

    最近有同学在面试的时候被问到了这个问题 所以我们利用这篇文章对这个问题进行下解答 背景 setTimeout 是 不准 的 因为 setTimeout 是一个宏任务 它的指定时间指的是 进入主线程的时间 setTimeout callbac
  • span标签点击去掉光标

    很简单 一行样式搞定 caret color transparent
  • 对象转成json后转成byte[]后在转成string会提示序列化失败,第一个字符是问号

    问题复现 一个对象需要转成json 后转成byte 后经过网络传输 后再次反序列化为对象 但是最后反序列的时候会报错 打印json发现开头是一个问号 省流 使用这个进行反序列化
  • 【JavaScript】2.1 高级语法特性

    在JavaScript的基础部分 我们已经学习了变量 数据类型 操作符 流程控制 函数 事件和DOM操作等基础知识 接下来 我们将学习一些JavaScript的高级语法特性 包括闭包 原型和原型链 作用域和作用域链 异步编程和Promise
  • 网站防盗链是什么

    随着互联网的快速发展 网站的安全问题越来越受到关注 其中 防盗链是许多网站面临的一个重要问题 本文将介绍网站防盗链的基本概念 原因以及如何采取措施进行保护 一 什么是网站防盗链 网站防盗链是指未经授权的网站通过技术手段获取并使用其他网站的资
  • 微信扫码登录修改二维码的样式

    默认是这个样子二维码都没有展示全 微信的了的 js 对象是这个样子 既然大家看到我这篇文章 想必里面的属性已经知道了 这里不做赘述 let href data text css base64 LmltcG93ZXJCb3ggLnFyY29k
  • python+requests接口自动化测试框架实例详解教程

    前段时间由于公司测试方向的转型 由原来的web页面功能测试转变成接口测试 之前大多都是手工进行 利用postman和jmeter进行的接口测试 后来 组内有人讲原先web自动化的测试框架移驾成接口的自动化框架 使用的是java语言 但对于一
  • MN316 OpenCPU丨Flash使用介绍

    在MN316 标准版SDK中 定义了操作模组内置flash接口 用户可操作空间为64KB 分为16个block 每个block大小为4KB 用户如有操作flash的需求 可调用相关接口 FOTA使用流程解析 以下流程图为使用 MN316 O