如果你还不了解什么是STM32对其Flash的保护,那么就由小橙同学来给你讲解一下什么是STM32的Flash保护!
什么是Flash?
STM32的FLASH组织结构,可能因不同系列、型号略有不同。比如大家熟悉的STM32F1中小容量一页大小只有1K,而F1大容量一页有2K。
还比如有些系列以扇区为最小单元,有的扇区最小16K,有的128K不等。
通常Flash包含几大块,这里以F40x为例:
主存储器:用来存放用户代码或数据。
系统存储器:用来存放出厂程序,一般是启动程序代码。
OTP 区域:一小段一次性可编程区域,供用户存放特定的数据。
选项字节:存放与芯片资源或属性相关的配置信息。
什么是STM32对内部Flash的保护?
所有的STM32芯片都会提供对Flash的保护,防止对Flash的非法访问,分为:写保护和读保护。
1、读保护就是大家通常说的“加密”,作用于整个Flash存储区域。如果一旦设置了Flash的读保护,那么单片机内置的Flash存储区就只能通过程序的正常执行才能读出,而不能通过下述方式读出:
(1) 使用调试器(JTAG或SWD);
(2)从内存RAM中启动并执行的程序;
2、写保护是以四页(1KB/页) Flash存储区为单位提供写保护,如果对Flash设置了写保护,那么就无法对Flash进行编程和擦除,而且同时产生操作错误标志。 当出现下图标志的时候,就要检查Flash是否被保护起来了。
读保护与写保护的相关效果
当设置读保护与写保护时,其效果如下图所示:
读保护写保护 对Flash的操作功能
有效有效CPU只能读,禁止调试和非法访问。
有效无效CPU可以读写,禁止调试和非法访问,页0~3为写保护。
无效有效CPU可读,允许调试和非法访问。
无效无效CPU可以读写,允许调试和非法访问。
1、flash保护的相关函数
2、STM32如何设置读保护?
我们只需要在程序开头加入“设置读保护”的代码就可以,这样就可以在每次运行代码的时候都检查一下,如果没有开的话就打开,如果开了就跳过。下面是读保护的代码:
当我们在程序的开头执行了上面的代码之后,使用j-link就不能在读出程序了,这样就实现了读保护。
3、如何通过代码接触Flash保护解除读保护可以下面代码来进行解除,我们为了方便解锁,可以设置一个按键。
关键字:STM32 Flash 保护
引用地址:
详解什么是STM32对其Flash的保护
推荐阅读最新更新时间:2024-11-17 11:25
STM32时钟树与启动过程时钟设置分析
如果你要深入学习STM32,那么你就应该深入研究STM32从启动开始到结束的各个过程,清楚认识整个过程,才会避免在今后的开发中遇到各种玄学问题(虽然博主也经常遇到各种玄学问题),很多情况下玄学问题都是因为自身对问题没有足够深入的认识。 启动过程???许多刚入门STM32的小白可能会一脸懵逼,我可以正常的写流水灯程序呀,我从来就没设置过启动过程。那么说明你对STM32的固件库还没有足够清晰的认识,我们虽然没有足够的能力去写启动程序,但是我们应该学会去阅读、认识这个过程。此处借助原子的Template工程没有资料的从此处下载:启动程序是./CORE/startup_stm32f40_41xxx.s 这是一段汇编代码,主要是一
[单片机]
STM32单片机实现外部中断的步骤及方法
先从最简单的问题开始,用STM32外部中断的方法实现PB.0按键控制PA.0LED灯: 先总的说下实现中断的步骤: 1,配置NVIC寄存器(函数),设置中断为第几组,占先优先级和次优先级; 函数方法: void NVIC_Configuration() { NVIC_InitTypeDef NVIC_InitStruct; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStruct.NVIC_IRQChannel=EXTI0_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreempTIonPriority=0; NVIC_Init
[单片机]
STM32-自学笔记(4.丰富多样的外部设备中)
PWM输入模式: 定时器的捕获单元,还可以同时使用两个捕获通道测量一个外部PWM信号的周期和占空比。 在PWM的输入模式下,输入信号与两个捕获通道连接。假设使用捕获通道1,2。在PWM一个周期开始之后,捕获通道2在其上升沿将主计数器清除并开始向上计数,而随后捕获通道1捕获到PWM的下降沿,此时就得到高电平周期。而捕获通道2再次捕获到下一个周期的PWM的上升沿,就可以得到PWM的周期。并将计数器清楚,准备下一次测量。 编码器接口: 每个定时器的捕获单元都可以和外部的编码器连接。编码器接口的一个典型的应用是电机的角速度和转角位置的检测。 捕获单元在编码器接口工作模式下,由捕获引脚提供定时计数器的驱动时钟,显然该计数器可以识
[单片机]
简述STM32单片机开发中的RTOS
很多STM32单片机初学者都是从裸机开始的,裸机确实也能开发出好的产品。但是,作为一个嵌入式软件工程师,况且用的并不是51那种低端单片机,如果只会用裸机开发产品,那肯定是不够的。 要从裸机的思维转变到RTOS(Real Time Operating System)的思维,其实需要一个过程,而且开始的一段时间会很痛苦。但过一段时间理解了一些内容,能写一些Demo之后,你会发现其实RTOS也不难。 现在FreeRTOS在CubeMX工具中可以直接配置并使用,相当方便。 为什么需要RTOS 为什么我们需要RTOS?就像最开始学C编程时,老师告诉我们,指针很重要,那时你肯定有一个大的疑问,指针到底有什么好? 心里一直犯嘀咕着:不用
[单片机]
STM32 串口使用
stm32串口功能比较强大,但仅仅使用串口来说,是很简单的 我们要做的事 1.使能串口时钟 2.复位串口 3.设置串口波特率 4.设置数据长度,停止位 5.收发使能 6.串口使能 1 int main() 2 { 3 u8 buf; 4 sysclk_init(9); 5 6 RCC- APB2ENR|=1 14; //串口使能 7 8 RCC- APB2RSTR|=1 14; 9 RCC- APB2RSTR&=~(1 14);//复位串口,不复位会出错 10 USART1- BRR=0x1D4C;//设置波特率 11 USART1- CR1|=0x
[单片机]
STM32之BKP原理
1. BKP可以用来保存数据 BKP中包括了42个16位的寄存器,共可保存84字节的内容,它们由VBAT的供电来维挂。 2. BKP内保存的数据可以被毁灭(如果有人希望恶意得到这些数据的话,令其丢失比保护数据更重要)。STM32提供了一种称之为TAMPER的机制来完成。中文译为“侵入检测”,这需要占用一个外部引脚(PC13)。 3. 如果不用侵入检测功能,那么这个外部引脚可以用作RTC校准功能,这个稍后再研究。 4. 当有系统复位/电源复位/待机模式下被唤醒这三种情况时,BKP中的值不会丢失或被复位。 先回来研究一下STM32的复位机制。以下是数据手册的相关部分。 6.1 复位 ST
[单片机]
STM32 DMA
DMA,全称为:Direct Memory Access,即直接存储器访问,DMA 传输将数据从一个地址空间复制到另外一个地址空间。当 CPU 初始化这个传输动作,传输动作本身是由DMA 控制器 来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。 DMA 传输对于高效能嵌入式系统算法和网络是很重要的。DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大为提高。DMA 是个非常好的功能,它不但能减轻 CPU 负担
[单片机]
安森美过压保护IC NUS6189节省40%占板面积
安森美半导体(ON Semiconductor)推出NUS6189新器件,将过压保护(OVP)电路的性能和功能、30V P沟道功率MOSFET、低饱和电压(VCE(sat))晶体管和低导通阻抗(Rds(on))功率MOSFET集成到节省空间的一个3.0mm×4.0mm×0.9mm封装之中。NUS6189设计用于保护敏感电子电路免受过压瞬态和电源故障影响。这器件经过优化,应用于使用外部交流-直流(AC-DC)适配器或车载充电器,如手机、便携式媒体播放器(PMP)和移动互联网设备(MID)。 NUS6189将保护便携设备通常需要的四种不同器件功能集成至单颗集成电路(IC)中,减少所需印制电路板(PCB)空间多达40
[手机便携]