啊啊啊流水了啊操逼污污,与妇女日逼视频,亚洲国产日韩欧美一区二区,k8经典网在线观看电影

24小時(shí)聯(lián)系電話:18217114652、13661815404

中文

您當(dāng)前的位置:
首頁>
電子資訊>
技術(shù)專題>
如何在STM32系統(tǒng)中保...

技術(shù)專題

如何在STM32系統(tǒng)中保護(hù)數(shù)據(jù)免受斷電影響


在嵌入式設(shè)備的開發(fā)中,斷電時(shí)通常需要保存一些非易失性數(shù)據(jù)。如果添加了系統(tǒng)配置,用戶定義的信息等,并且添加了額外的ROM IC(例如基于I2C24C02等),則額外的PCB空間將增加,硬件成本將增加,并且產(chǎn)品將減少。如果僅從實(shí)用角度出發(fā),在諸如STM32系統(tǒng)的應(yīng)用中,作者建議可以嘗試以下兩種方法并作為參考。

基于備份寄存器

原理:對(duì)于大容量MCU系列,它具有42個(gè)16位備份寄存器,而中小型微處理器僅具有10個(gè)16位備份寄存器。以stm32f103c8t6為例,這42個(gè)備份寄存器的地址偏移量為:0x04?0x28、0x40?0xbc,可以存儲(chǔ)84個(gè)字節(jié)的數(shù)據(jù)。備用寄存器取決于備用電源。當(dāng)外部VDD掉電時(shí),只要系統(tǒng)的Vbat可以正常存在,Bakeup domaain寄存器的內(nèi)容就可以正常保存。

軟件編程的要點(diǎn)如下:以一個(gè)項(xiàng)目中常用的案例為例

函數(shù)初始化:

讀取備份寄存器:void BKP_ WriteBackupRegisteruint16_ t BKP_ DR,uint16_ t Data

讀取備份寄存器:uint16_ t BKP_ ReadBackupRegisteruint16_ t BKP_ DR

此方法簡(jiǎn)單明了,但由于缺少可用空間,因此僅適用于保存少量數(shù)據(jù),例如用戶在可穿戴設(shè)備中的通用配置數(shù)據(jù)。

基于內(nèi)部閃存

原理:閃存,也稱為閃存,也是可以重寫的存儲(chǔ)器。它分為nor flashNAND flash。閃存通常不用于代碼存儲(chǔ)場(chǎng)合,例如嵌入式控制器中的程序存儲(chǔ)空間。而NAND閃存通常用于大數(shù)據(jù)存儲(chǔ)場(chǎng)合,例如U盤和固態(tài)硬盤,它們通常是NAND閃存類型。

STM32芯片中,閃存的讀寫單位均基于頁面。以stm32f103c8t6為例,每頁大小為2K字節(jié);

軟件編程要點(diǎn)

釋放寫保護(hù)釋放:此方法基于以下前提:允許當(dāng)前的讀寫Flash,并且允許當(dāng)前的Flash進(jìn)行寫操作。因此,目前暫時(shí)不討論某些API,例如optionbytes操作和flash讀寫保護(hù)操作。

Flashwrite:?jiǎn)蝹€(gè)uint32_ T數(shù)據(jù)寫入的簡(jiǎn)單流程圖如下:

Flashread:對(duì)于單個(gè)int數(shù)據(jù)讀取,它相對(duì)簡(jiǎn)單,可以通過以下語句完成:rddata =*()__ IOuint32_ t *dataAddr);

由于SW中涉及許多API,并且編碼人員還需要理解許多其他背景知識(shí),因此使用此方法相對(duì)復(fù)雜。但是,由于數(shù)據(jù)保存在頁面中,因此頁面大小最大為2048字節(jié),因此該方法可用于保存掉電時(shí)不容易丟失的大數(shù)據(jù)。考慮到閃存讀寫保護(hù)的邏輯機(jī)制,最好在不考慮數(shù)據(jù)安全性的情況下使用此方法。

對(duì)于這種斷電保護(hù)數(shù)據(jù)方法,這里只是丟磚引玉,歡迎您提出更好的方案。

 

請(qǐng)輸入搜索關(guān)鍵字

確定
盐亭县| 布拖县| 呼和浩特市| 武山县| 离岛区| 乃东县| 靖安县| 敦化市| 长宁区| 丰镇市| 岳池县| 大厂| 鸡西市| 隆昌县| 那坡县| 天全县| 赫章县| 马公市| 灌南县| 赤城县| 静乐县| 华坪县| 息烽县| 永丰县| 左云县| 遵义县| 嵊泗县| 溧水县| 岗巴县| 德惠市| 鹤山市| 陕西省| 凌源市| 简阳市| 乌兰察布市| 庆阳市| 高阳县| 威宁| 溧水县| 福安市| 河池市|