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 ...
随机推荐
- Jmeter高阶学习,运用NotePad++编写工程,随意复制多个工程到同一个工程
Jmeter创建了工程之后,保存文件后就是一个jmx后缀的文件,你有没有试过单独用文本编辑器打开文件,编辑文件? Step1: 最简单的Jmeter工程,只有一个测试计划 <?xml versi ...
- 解决“centos 下bash: g++: 未找到命令...”
简单测试一个C++的“Hello World”,发现报错:“bash: g++: 未找到命令...”,因为没有安装编译器G++:然后就百度,出现一大堆的解决办法,什么“sudo apt-get ins ...
- Map<K, V> 中k,v如果为null就转换
Set<String> set = map.keySet(); if(set != null && !set.isEmpty()) { for(String key : s ...
- spring boot: freemarket模板引擎
spring boot: freemarket模板引擎 freemarket模板引擎,可以和thymeleaf模板引擎共存 pom.xml引入 <!-- Freemarket --> &l ...
- php时区设置 warning: strtotime(): It is not safe to rely on the system's timezone settings
warning: strtotime(): It is not safe to rely on the system's timezone settings warning: strtotime(): ...
- 雷林鹏分享:C# 预处理器指令
C# 预处理器指令 预处理器指令指导编译器在实际编译开始之前对信息进行预处理. 所有的预处理器指令都是以 # 开始.且在一行上,只有空白字符可以出现在预处理器指令之前.预处理器指令不是语句,所以它们不 ...
- 测序中Q20 Q30 Q40
你能给别人讲清楚这个概念吗? 二代测序中,每测一个碱基会给出一个相应的质量值,这个质量值是衡量测序准确度的.碱基的质量值13,错误率为5%,20的错误率为1%,30的错误率为0.1%.行业中Q20与Q ...
- English trip -- VC(情景课)8 C
MP review: 音标(Phonetic symbol) [ɪ] lit adj. 照亮的,点着的(light的过去式及过去分词)n. (Lit)人名:(瑞典)利特:(老)李 [ʊ] g ...
- Confluence 6 管理多目录
这个页面描述了如果在 Confluence 中定义了多个目录服务器将会发生什么样的情况.例如你可能会有一个内部目录服务器同时你还可能有连接一个 LDAP 外部服务器或者使用多种类型的其他用户目录.当你 ...
- linux 不解压日志压缩包直接搜索里面的内容