ESP32 NVS同windows文件系统的类比,附上一段NVS操作的代码解析

下面例程是在NVS区域记录ESP32重启次数。

源码是改写Hello_world官方例程:

#include <stdio.h>#include “sdkconfig.h”#include “freertos/FreeRTOS.h”#include “freertos/task.h”#include “esp_system.h”#include “esp_spi_flash.h”#include “nvs_flash.h” //michael add for NVS test#include “esp_log.h”//michael add for NVS test
void app_main(void){
vTaskDelay(1000/portTICK_PERIOD_MS);//阻止flash esp32后下面程序被立即执行 char * michael_nvs_namespace = “michael2”;//namespace类似windows的文件夹 nvs_flash_init(); nvs_handle_t michael_handle; nvs_open(michael_nvs_namespace,NVS_READWRITE,&michael_handle);//取得namespace句柄
uint32_t counter_val = 0;//value类似windows的文件内容 char * counter_key = “counter”;//key类似windows的文件名 nvs_get_u32(michael_handle,counter_key,&counter_val); ESP_LOGI(“nvs”,“KEY:VALUE %s:%d”,counter_key,counter_val);
counter_val = counter_val + 1; nvs_set_u32(michael_handle,counter_key,counter_val);
nvs_close(michael_handle); nvs_flash_deinit();
printf(“Hello world!\n”); /* Print chip information */ esp_chip_info_t chip_info; esp_chip_info(&chip_info); printf("This is %s chip with %d CPU core(s), WiFi%s%s, ", CONFIG_IDF_TARGET, chip_info.cores, (chip_info.features & CHIP_FEATURE_BT) ? “/BT” : “”, (chip_info.features & CHIP_FEATURE_BLE) ? “/BLE” : “”);
printf(“silicon revision %d, “, chip_info.revision);
printf(”%dMB %s flash\n”, spi_flash_get_chip_size() / (1024 * 1024), (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? “embedded” : “external”);
printf(“Minimum free heap size: %d bytes\n”, esp_get_minimum_free_heap_size());
for (int i = 10; i >= 0; i–) { printf(“Restarting in %d seconds…\n”, i); vTaskDelay(1000 / portTICK_PERIOD_MS); } printf(“Restarting now.\n”); fflush(stdout); esp_restart();}

ESP32 NVS同windows文件系统的类比,附上一段NVS操作的代码解析相关推荐

  1. Windows 下的批处理脚本基础——批处理运算操作(代码可拿)

      自从优盘中毒,就开始发现学习批处理脚本的重要性.一起加油冲冲冲!!! https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩 ...

  2. Windows文件系统过滤驱动开发教程(0,1,2)

    0. 作者,楚狂人自述 我长期网上为各位项目经理充当"技术实现者"的角色.我感觉Windows文件系统驱动的开发能找到的资料比较少.为了让技术经验不至于遗忘和引起大家交流的兴趣我以 ...

  3. Windows文件系统过滤驱动开发教程(4)

    Windows文件系统过滤驱动开发教程 4.设备栈,过滤,文件系统的感知 前边都在介绍文件系统驱动的结构,却还没讲到我们的过滤驱动如何能捕获所有发给文件系统驱动的irp,让我们自己来处理?前面已经解释 ...

  4. Linux 文件系统类型 文件系统结构 与Windows文件系统的比较

    Linux 文件系统类型 磁盘文件系统. 包括硬盘.CD-ROM.DVD.USB存储器.磁盘阵列等.常见文件系统格式有:autofs.coda.Ext(Extended File sytem,扩展文件 ...

  5. Windows 文件系统过滤驱动开发教程 (第二版)

    Windows 文件系统过滤驱动开发教程 (第二版)       楚狂人-2007-上海 (MSN:walled_river@hotmail.com)          -1.  改版序....... ...

  6. Windows文件系统中文件的储存原理、文件粉碎机的原理、数据恢复的原理

    首先要明确说明三个问题: Windows文件系统中文件的储存原理.文件粉碎机的原理.数据恢复的原理. Windows文件系统中文件的储存原理:Windows文件系统包括FAT12.FAT16.FAT3 ...

  7. Windows文件系统以及文件粉碎原理

    1.1硬盘揭秘: 物理存储方式: 目前的存储方式有磁存储,电存储,光存储.U盘就是电存储,VCD,DVD光盘用的是光存储,我们计算机用的硬盘就是用的磁存储.各种存储方式在物理存储介质不同外,在逻辑层面 ...

  8. macOS端React的项目WebPack热更新(HMR)失效问题分析及解决,原因竟是Windows文件系统不区分大小写导致

    项目场景: 最近做的项目是一个使用UmiJS搭建的React的前端老项目,项目是上一个开发团队遗留下来的老项目,我们接着在原来的基础上开发.团队成员中有的是Windows电脑,有的是Mac电脑,所以存 ...

  9. linux文件系统的总体架构,Linux NFS的整体架构与核心代码解析

    前面文章我们从应用层面对NFS进行了介绍,接下来的文章我们将进入实现层面.本文首先从整体上对Linux的NFS软件架构进行介绍,然后介绍代码与实际业务逻辑介绍一下NFS的处理流程. NFS文件系统的架 ...

最新文章

  1. [CTO札记]架构的改造是个持续、全面、螺旋的过程
  2. c语言课程思政教案设计,设计类专业课程思政教学案例及教学设计
  3. linux中配置jmeter环境变量,linux java 和jmeter 环境变量配置文件笔记(原)
  4. oracle24801错误,[数据库]oracle错误(ORA
  5. altiumdesigner的基本你操作
  6. 基于C语言图书馆管理系统编程设计
  7. python与施耐德plc通讯_施耐德PLC两种编程通讯控制实例分享
  8. uniapp 微信内置浏览器h5打开app
  9. “限时秒杀”活动分析报告
  10. win10 常用DOS命令
  11. 用 Python 给微信头像加个圣诞老人(平安果)小图标
  12. IT民工系列 —— 前言
  13. linux这么重命名文件,如何在Linux中重命名文件
  14. DEDECMS织梦后台更新网站栏目无反应一键更新无响应的解决方法
  15. VC编译DLL时,如何不依赖VC运行库
  16. 大学生python期末解答题_大学mooc2020年用Python玩转数据期末考试大全答案
  17. 【板绘入门】拥有数位板之后第一步该学什么?线条!
  18. 在macOS上运行PSCN-debug
  19. 【WPS配置mathtype】
  20. python算法交易工程师_清华编程高手尹成带你基于算法实践python量化交易

热门文章

  1. ps蒙版工具的概念及使用
  2. c语言实现定积分运算
  3. 关于电脑注册表regedit自定义管理右键菜单选项实例(删除增加)
  4. [Ubuntu] Ubuntu16.04+win10+联想Y7000+显卡+WIFI 装机成功
  5. Android进阶之路 - 仿京东地址选择器使用指南
  6. uniapp 视频video 播放 白屏 android
  7. 智慧零售2.0时代,容器云已成电商转型利器
  8. 傻白探索Chiplet,Chiplet技术简介(一)
  9. java后端开发面经(一)
  10. 成就你一生的100个哲理71-80