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 ...
随机推荐
- js 捕捉滚轮的滚动
滚动方向区分为正负: <!DOCTYPE html> <html> <head lang="en"> <meta charset=&quo ...
- [ios]IOS的AppDelegate方法中的事件触发调用 以及 关闭 ios应用程序
IOS的AppDelegate方法中的事件触发调用 参考:http://blog.sina.com.cn/s/blog_a573f7990101bphp.html //当应用程序将要进入非活动状态执行 ...
- Codeforces 861D - Polycarp's phone book
861D - Polycarp's phone book 思路:用map做的话,只能出现一次循环,否则会超时. 代码: #include<bits/stdc++.h> using name ...
- angular2版本迭代之特性追踪
一. 2.0.0 升级到 2.4 升级前: 1.确保没有使用extends关键字实现OnInit的继承,以及没有用任何的生命周期中,而是全部改用implements. 2.停止使用deep impor ...
- SQLSERVER 对于非dbo的表增加注释
平时我们创建表的时候总是dbo.imsi_collect_state,但是有时候为了方便管理我们可能会创建架构wifi,那么表名就是wifi.imsi_collect_state 原来增加注释的方式是 ...
- 1.python+selenium利用cookie,跳过验证码直接登录
方法1 在登录时,叫代码等待一段时间,然后手动输入验证码 # coding:utf-8 from selenium import webdriver import time url = 'http:/ ...
- 理解Spring4.0新特性@RestController注解
参考原文 @RestController注解是它继承自@Controller注解.4.0之前的版本,spring MVC的组件都使用@Controller来标识当前类是一个控制器servlet. 使用 ...
- 基于netty框架的socket长连接负载均衡解决方案
socket通讯的单机瓶颈 物联网的项目socket使用方式有两种: 短连接的socket请求 维持socket长连接的请求 对于socket短链接来说就好比是http请求,请求服务器,服务器返回数据 ...
- 3-23Agile Web Development,3-24(chapter: 6)
第2章 Instant Gratification 复习 和 练习第一章,新建rails web页面. 重点: 知道了类,方法,实例变量 在rails是怎么用的. rails generate con ...
- BUCTOJ_ACM2017C 回文串的热爱
#include "iostream" #include "algorithm" #include "cstdio" #include &q ...