STM32 Flash 永久用户数据空间
/*********************************************************************************
* STM32 Flash 永久用户数据空间
* 说明:
* 从网络获取的用户配置数据需要存储,如果外加EEPROM可行,但涉及到PCB改板等问题,
* 所以在STM32本身的Flash空间开辟一个Section用于数据存储更划算。
*
* 2017-12-29 深圳 南山平山村 曾剑锋
********************************************************************************/ 一、参考文档:
. STM32读写flash保存用户数据
http://blog.csdn.net/ojianzhitianya1/article/details/45393217
. 关于__attribute__中section部分的一些了解
http://blog.csdn.net/sadshen/article/details/9419267
. STM32_Flash做为存储器储存数据(基本概念)
https://www.cnblogs.com/yihuihong/p/4970525.html
4. STM32F4 saving data to internal flash (at runtime)
https://www.eevblog.com/forum/microcontrollers/stm32f4-saving-data-to-internal-flash-(at-runtime)/ 二、处理方法:
. 如下链接中是B-L475E-IOT01A开发板对用户数据的处理代码跟踪:
https://github.com/ZengjfOS/Modbus_TCP/blob/master/docs/0018_SW4STM32_B-L475E-IOT01A_WiFi_Username_Password_Firmware_Info.md
. 原理大致如下:
. 在ld文件中开辟Flash Section空间;
. 将数据结构struct实体定位到开辟的Flash Section;
. 第一次会检查Section中的数据,发现数据不存在,所以会获取网络数据,或者用户数据,更新到Flash的Section中;
. 后续启动,发现数据已经存在了,可以直接使用,不过程序中也可重新覆盖来修改这部分数据;
. 目前没有去跟踪具体的Flash修改操作,可参考:
https://github.com/ZengjfOS/iot-edge-sdk-samples/blob/master/STM32/B-L475E-IOT01/Projects/B-L475E-IOT01/Applications/Cloud/Baidu/Src/flash_l4.c
STM32 Flash 永久用户数据空间的更多相关文章
- stm32——Flash读写
stm32——Flash读写 一.Flash简介 通过对stm32内部的flash的读写可以实现对stm32的编程操作. stm32的内置可编程Flash在许多场合具有十分重要的意义.如其支持ICP( ...
- 72.调用req.flash('error', '用户已存在!'); 时候 报错 "req.flash is not a function"
在app.js 中调用app.use 的顺序有关 app.use(session({ secret: settings.cookieSecret, key: settings.db,//cookie ...
- 关于STM32 Flash的一些问题
注:本人感觉是STM32 Flash本身的问题. 最近做STM32的远程升级,保存到Flash里面,用于记录更新状态的信息总是无故的清理掉 最终测试发现 STM32的 Flash 擦除操作 并不一定会 ...
- stm32 Flash读写独立函数[库函数]
一. stm32的FLASH分为 1.主存储块:用于保存具体的程序代码和用户数据,主存储块是以页为单位划分的, 一页大小为1KB.范围为从地址0x08000000开始的128KB内. 2.信息块 ...
- stm32 Flash读写[库函数]
stm32 的内置可编程Flash在许多场合具有十分重要的意义.如其支持ICP特性使得开发人员对stm32可以警醒调试开发,可以通过JTAG和SWD接口对stm32进行程序烧写:支持IAP特性使得开发 ...
- stm32 flash 存储
转载自: http://bbs.elecfans.com/jishu_388272_1_1.html 说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用 ...
- STM32 flash 内存分布介绍
摘要: 本文以STM32F103RBT6为例介绍了片上Flash(Embedded Flash)若干问题,包括Flash大小(内存映射).块大小.页面大小.寄存器.这些知识,有利于写Flash驱动. ...
- 野火STM32 Flash&sd卡模拟U盘
在USB库文件mass_mal.c中添加对flash和sd读写的函数,USB库调用这些函数从而实现模拟U盘的功能 //mass_mal.c /* Includes ------------------ ...
- Python——Flash框架——用户认证
一.认证扩展 1.Flask-Login:管理已登录用户的用户会话 2.Werkzeug:计算几码散列值并进行核对 3.itsdangerous:生成并核对加密安全令牌 二.Werkzeug gene ...
随机推荐
- c++ 容器元素填充(fill)
#include <iostream> // cout #include <algorithm> // fill #include <vector> // vect ...
- eclipse jsp:useBean搞死人了。
eclipse jsp:useBean搞死人了 首页,用eclipse需要经常重启tomcat服务器,这是因为你编辑了页面正浏览这个页面,而这个页面还处在之前的错误编译中... 其次,第一次用到use ...
- LeetCode--176--第二高的薪水
问题描述: 编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) . +----+--------+ | Id | Salary | +----+--------+ | 1 ...
- thinkphp中页面中时间的默认显示
1,第一我们都知道thinkphp 控制器和页面是通过$this->assgin();或着$this->在页面中要得到的值的随便变量 ,来传值的 比如(此方法是在有时间控件才能使用的) ...
- BUCTOJ_ACM2017C 回文串的热爱
#include "iostream" #include "algorithm" #include "cstdio" #include &q ...
- 两个listbox 复制
foreach (object obj in lbxInsure .Items) { billInfo.lbxAppCus .Items.Add ...
- CSS——标准盒子模型
在写网页的时候一般都先用Div把网页的框架搭好(用不同的背景颜色来区分不同的Div块),然后填充每一个Div,最后把每个Div的背景颜色去掉 <html> <head> < ...
- Asp.Net 高性能ORM框架——SqlSugar
公司团队项目.产品已经完全抛弃EF,SqlSugar定位不是ORM,而是为了方便的让你去写Sql. SqlSugar 媲美原生ADO.NET的性能,语法简洁,并且支持 Json .Dynamic. L ...
- iOS UI-文本视图(UITextView)
#import "ViewController.h" @interface ViewController ()<UITextViewDelegate> @propert ...
- 从零开始学习Vue(一)
因为最近有个项目的需求是,微信公众号+IOS/Android APP, 界面都很类似. 以往的做法是APP是调用JSON接口,后台只负责提供接口. 而H5,我以前都是用Jquery,用来写手机网站总是 ...