MM32 备份域学习(兼容STM32)

内容提要

  • 备份域工作原理
  • 备份域特性
  • 备份域的保护:侵入检测
  • 备份域侵入检测

备份域电源与主要内容



备份域特性

  • 20字节数据后备寄存器(中容量和小容量产品),或 84 字节数据后备寄存器(大容量产品),当Vdd电源被切断,仍由Vbak维持电源。
  • 用来管理防侵入检测并具有中功能的状态/控制寄存器。
  • 用来存储RTC校验值的校验寄存器。
  • 在PC13管脚(当该管脚不用于侵入检测时)上输出 RTC 校准时钟, RTC 闹钟脉冲或者秒脉冲

侵入检测理解

备份域可以存储用户的重要数据,为防止恶意读写,开启侵入检测可以在方式恶意读写备份域时产生复位信号,迫使备份域的数据被清除,保护用户的重要信息。


备份域侵入检测测试

void TamperEventTest()
{
//设置时钟PWR和BKP
RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
PWR_BackupAccessCmd(ENABLE); //使能访问备份域和RTC //侵入引脚时钟设置
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //初始化备份域
RCC_BackupResetCmd(ENABLE);
RCC_BackupResetCmd(DISABLE); //设置备份域时钟
RCC_LSEConfig(RCC_LSE_ON); //Configures the External Low Speed oscillator (LSE).
RCC_RTCCLKCmd(ENABLE); //Enables or disables the RTC clock.
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //Configures the RTC clock (RTCCLK). while(!(RCC->BDCR & 0x1<<1)); //External low-speed clock ready flag. BKP_ClearFlag(); //Set CTE bit to clear Tamper Pin Event flag //配置信号控制(PA1)侵入检测的信号(PC13)
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure); //write backup registers
BKP_WriteBackupRegister(BKP_DR1, 0xA5A5);
BKP_WriteBackupRegister(BKP_DR2, 0x8888);
BKP_WriteBackupRegister(BKP_DR3, 0x6666);
BKP_WriteBackupRegister(BKP_DR4, 0x9999);
BKP_WriteBackupRegister(BKP_DR5, 0x9999);
BKP_WriteBackupRegister(BKP_DR6, 0x9999);
BKP_WriteBackupRegister(BKP_DR7, 0x9999);
BKP_WriteBackupRegister(BKP_DR8, 0x9999);
BKP_WriteBackupRegister(BKP_DR9, 0x9999);
BKP_WriteBackupRegister(BKP_DR10, 0x9999); BKP->CR=0x01;
GPIOA->ODR=1;//set PA[0]=1 >> set PC[13]
while(1)
{
if((BKP->CSR &0x100)==0x100)//tef tamper event flag
{
//A write to the BKP->DRx register is performed while tef is set the value will not be stored
BKP->DR1=0x6666;
BKP->DR2=0x6666;
delay(100);
BKP->CSR=0x1;//clear tamper event flag;侵入检测,将使备份域复位
break;
}
}


实验注意事项

  • 设置了两个GPIO引脚,PA1和PC13,PA1用于控制等待配置完成,然后请自行添加PC13的信号(等到PA1高电平来)即侵入信号。
  • 实验结果应该是备份域被复位,读出数据为0x0。

总结

  1. 复位:RCC中的BDCR设置实现软件复位,另外,侵入检测也可以产生一个复位。
  2. 写操作:电源控制寄存器(PWR_CR)的DBP位控制备份域寄存器与RTC的访问

参考资料

[1]. MM32 miniboard资料

MM32 备份域学习(兼容STM32)的更多相关文章

  1. MM32看门狗学习(兼容STM32)

    MM32看门狗学习(兼容STM32) IWDG独立看门狗 思维导图 IWDG框图与理解 1.独立看门狗分为两个部分,配置寄存器在1.8V供电区,计数器的核心部分在VDD供电区(即使停机/待机模式计数器 ...

  2. MM32 RTC学习(兼容STM32)

    RTC学习 RTC简述 实时时钟是一个独立的定时器. RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能. 修改计数器的值可以重新设置系统当前的时间和日期. RTC模块和时钟配 ...

  3. MM32初识(兼容STM32)

    MM32初识(兼容STM32) 资源与开发环境 keil 5.0 MM32 miniboard 提要 stm32入门(MM32兼容) 点亮LED思路简介 GPIO配置 stm32寄存器理解与操作步骤 ...

  4. MM32Flash读写操作(兼容STM32)

    MM32Flash读写操作(兼容STM32) Flash基础描述 思维导图 编程实现读写操作 主函数结构 #include "delay.h" #include "sys ...

  5. js跨域传值,兼容ie8以上

    js跨域传值,兼容ie8以上 事先说明,此方法并不支持ie8,如果想要支持ie8的话,需要用这种思路(来自微软): if (window.addEventListener) { window.addE ...

  6. LwIP学习笔记——STM32 ENC28J60移植与入门

    0.前言     去年(2013年)的整理了LwIP相关代码,并在STM32上"裸奔"成功.一直没有时间深入整理,在这里借博文整理总结.LwIP的移植过程细节很多,博文也不可能一一 ...

  7. Windows Server 2016-图形化备份域控制器

    上边几章节我们补充了有关Windows Server 2016系统层面的相关内容,本章切回Active Directory正题,继续围绕AD域相关内容进行不断梳理补充.Windows Server B ...

  8. 跨域学习笔记2--WebApi 跨域问题解决方案:CORS

    自己并不懂,在此先记录下来,留待以后学习... 正文 前言:上篇总结了下WebApi的接口测试工具的使用,这篇接着来看看WebAPI的另一个常见问题:跨域问题.本篇主要从实例的角度分享下CORS解决跨 ...

  9. Windows Server 2016-Wbadmin命令行备份域控制器

    在上一章我们讲到Windows Server 2016-图形化备份域控制器的方法,本章我们聊聊如何通过命令行Wbadmin对域控制器进行备份.在Windows Server Active Direct ...

随机推荐

  1. 文件操作1-php

    is_file (PHP 3, PHP 4, PHP 5) is_file -- 判断给定文件名是否为一个正常的文件 说明 bool is_file ( string filename ) 如果文件存 ...

  2. git log友好显示

    查看commit 提交日志 $ git log $git log --pretty=oneline $git reflog 显示所有提交记录,包括已经回退的提交,如图:提交了abc 和 bb 然后回退 ...

  3. Javascript模块化编程 require.js使用详解

    一.为什么用require.js,产生的背景 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了.后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载. & ...

  4. python运维开发之第三天

    一.第二天课程的复习总结 1.列表可以增删改查,元组是不可修改的列表,字符串是不可以修改的. 2.列表,元组是有序的,字典是无序的,字典的key唯一 3.列表字典可以嵌套列表,可以嵌套字典,可以嵌套多 ...

  5. Gnuradio 实验二

    今天根据教程做了实验二 要到了两个新的模块 一个是 FFT SINK, 其作用是按频谱输出信号. 另外一个就是 GUI Notebook ,起作用就是可以将SCOPE SINK 和 FFT SINK ...

  6. python——BS解析器

  7. iOS 获取手机 唯一标识-b

    存贮在keychainQuery 可以统计用户使用情况 -(void)gatherMessage{ //采集用户设备信息 NSUserDefaults *userDefaults=[NSUserDef ...

  8. 理解 Javascript 的闭包

    什么是闭包 闭包是什么?闭包是Closure,这是静态语言所不具有的一个新特性.但是闭包也不是什么复杂到不可理解的东西,简而言之,闭包就是: 闭包就是函数的局部变量集合,只是这些局部变量在函数返回后会 ...

  9. express+jade+bootstrap+mongdb simple CRUD test

    1:当前环境 y@y:~$ node --version && express -V && mongo --version v0.12.2 MongoDB shell ...

  10. ISO7816协议的几个关键时间特性

    PPS: PPS是在PCK起始延后12个etu后完成,这个在2004版中是16etu 进行错误提示时,错误提示的延时时间是1etu到2etu 当D=64时,终端必须确保当前发出的第一个字符和最后一个接 ...