国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

如何使用代碼清除STM32單片機(jī)上的PCROP

發(fā)布者:甜美瞬間最新更新時(shí)間:2024-08-20 來源: elecfans關(guān)鍵字:STM32  單片機(jī)  PCROP 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

前言

STM32PCROP專有代碼讀出保護(hù),將某個(gè)區(qū)域設(shè)置為僅允許執(zhí)行,可防止代碼被非法讀出與修改。ST網(wǎng)站提供了免費(fèi)的PCROP參考代碼,但是例程中僅僅提供了用代碼設(shè)置PCROP。為方便利用PCROP進(jìn)行知識產(chǎn)權(quán)保護(hù)的開發(fā)和部署,這篇文章提供了方法,可在RDP級別設(shè)置為1或者0時(shí),使用代碼清除PCROP。


ST網(wǎng)站上的PCROP參考代碼

學(xué)習(xí)使用PCROP,可從ST網(wǎng)站下載文檔以及參考代碼。文檔里有一步一步的詳細(xì)說明。參考代碼則實(shí)現(xiàn)了,如何設(shè)置編譯開發(fā)環(huán)境去掉文字庫(Literal pool),以避免受保護(hù)區(qū)域需要被讀訪問;參考代碼也實(shí)現(xiàn)了如何利用代碼使能PCROP保護(hù)以及如何導(dǎo)出接口符號供二次開發(fā)使用。


你可以編譯運(yùn)行PCROP參考代碼。一旦下載到開發(fā)板并運(yùn)行后,扇區(qū)2會自動被設(shè)置成PCROP保護(hù)。你將無法再次下載代碼到該扇區(qū),也無法讀出該扇區(qū)的內(nèi)容。若想通過STLink工具解除PCROP保護(hù),則會導(dǎo)致整個(gè)Flash被擦除。


使用代碼清除PCROP

在熟悉ST網(wǎng)站上的PCROP參考代碼基礎(chǔ)之上,我們將討論如何使用代碼清除PCROP。

1. 原理

根據(jù)STM32用戶手冊,要想清除PCROP保護(hù),讀保護(hù)RDP級別必須從1設(shè)置成0。也就是說,即使當(dāng)前RDP級別為0,我們也要使用代碼將其設(shè)置成1。然后,同時(shí)關(guān)掉PCROP和將RDP設(shè)置成0。這也說明,盡管是清除PCROP保護(hù),我們的代碼必須加入RDP的設(shè)置函數(shù), 而不能僅僅修改參考代碼中的PCROP_Enable的狀態(tài)字段使其變成PCROP_Disable。

如何使用代碼清除STM32單片機(jī)上的PCROP

2. 材料準(zhǔn)備

開發(fā)板:STM32F429I_Discovery

開發(fā)工具:STM32Cube_FW_F4_V1.15.0

STM32CubeExpansion_AN4701_F4_V1.0.0(從ST網(wǎng)站下載的參考代碼)

STM32STLink

IAR/Keil

注:也可以選擇其他支持PCROP的STM32系列,并選擇相應(yīng)的STM32開發(fā)板與STM32固件庫。

3. 代碼

 ●設(shè)置RDP到級別1

該函數(shù)在RDP級別為0時(shí),若需要清除PCROP, 必須被使用。

如何使用代碼清除STM32單片機(jī)上的PCROP

 ●設(shè)置RDP到級別0

在清除PCROP保護(hù)的代碼里不會直接調(diào)用這個(gè)函數(shù)。參考手冊提到,PCROP的清除必須與RDP從1到0同時(shí)發(fā)生,而下列RDP_Disable函數(shù)則是完整獨(dú)立的,無法與PCROP的Option bytes同時(shí)操作。不過,這個(gè)代碼的中間部分,也就是實(shí)際功能部分,將在清除PCROP時(shí)被重用。

如何使用代碼清除STM32單片機(jī)上的PCROP

如何使用代碼清除STM32單片機(jī)上的PCROP

●清除PCROP

下述代碼清除PCROP,它基于參考代碼中的PCROP_Enable函數(shù)改寫而成。首先,它通過RDP_Enable將RDP設(shè)置成1。注意實(shí)驗(yàn)中不要將RDP設(shè)置成為2,否則所有的Option bytes將不再被允許修改。然后將RDP和PCROP都設(shè)置完畢,調(diào)用一次HAL_FLASH_OB_Launch達(dá)到同時(shí)將RDP設(shè)置成1并清除PCROP保護(hù)。

如何使用代碼清除STM32單片機(jī)上的PCROP

如何使用代碼清除STM32單片機(jī)上的PCROP

4.運(yùn)行

在主函數(shù)中,調(diào)用PCROP_Disable可解除PCROP保護(hù)。RDP_Enable后需要關(guān)閉電源,重新啟動,然后系統(tǒng)正常運(yùn)行解除PCROP保護(hù)。解除保護(hù)后,可通過STLink確認(rèn)PCROP Option bytes已恢復(fù),同時(shí)也可以看到整個(gè)Flash內(nèi)容已被擦除。


結(jié)論

本文討論了完全使用代碼控制PCROP的設(shè)置與清除。它可以使用在PCROP代碼保護(hù)的開發(fā)與部署階段。


關(guān)鍵字:STM32  單片機(jī)  PCROP 引用地址:如何使用代碼清除STM32單片機(jī)上的PCROP

上一篇:STM32中C語言的基礎(chǔ)知識
下一篇:如何創(chuàng)建一個(gè)STM32工程模板

推薦閱讀最新更新時(shí)間:2025-06-07 23:41

STM32單片機(jī)實(shí)現(xiàn)Bootloader跳轉(zhuǎn)的關(guān)鍵步驟
本期話題: 現(xiàn)在越來越多的嵌入式設(shè)備支持遠(yuǎn)程自動升級,不需要再借助下載器。這樣對于設(shè)備的維護(hù)非常方便。 當(dāng)然若使設(shè)備支持遠(yuǎn)程升級,需要編寫支持升級的程序代碼,可以稱之為 BootLoader。 也就是說,將設(shè)備的程序代碼分為兩部分:BootLoader 和 APP。 BootLoader 負(fù)責(zé)升級 APP 以及引導(dǎo)APP運(yùn)行。APP 負(fù)責(zé)實(shí)現(xiàn)設(shè)備的業(yè)務(wù)處理功能,也就是設(shè)備的核心功能代碼。 對于Cortex-M 系列的單片機(jī)來說,若要實(shí)現(xiàn) BootLoader 安全跳轉(zhuǎn)到 APP,需要進(jìn)行一些配置。 本文就以 STM32 單片機(jī)為例,來聊一聊實(shí)現(xiàn) BootLoader 跳轉(zhuǎn)的關(guān)鍵配置步驟。 聊一聊: 在程序開發(fā)設(shè)計(jì)階段,要根據(jù)具
[單片機(jī)]
<font color='red'>STM32</font><font color='red'>單片機(jī)</font>實(shí)現(xiàn)Bootloader跳轉(zhuǎn)的關(guān)鍵步驟
STM32單片機(jī)中OBG調(diào)試接口的介紹
OBG在單片機(jī)中的解釋STM32單片機(jī)的內(nèi)核(Cortex-M3)含有硬件調(diào)試模塊,支持多種復(fù)雜的調(diào)試操作,硬件調(diào)試模塊允許內(nèi)核在取地址或者訪問數(shù)據(jù)時(shí)停止-這就是我們在單片機(jī)開發(fā)和過程中可以在線仿真的保障。內(nèi)核在停止時(shí),其內(nèi)部的狀態(tài)與外部狀態(tài)都是可以進(jìn)行查詢的,- 在單片機(jī)仿真調(diào)試中受到中斷,通常為人為設(shè)置的斷點(diǎn),此時(shí)單片機(jī)中所有的變量,以及程序指針,CP,等地址指針都可以查詢到狀態(tài)。在調(diào)試過程中,設(shè)置了斷點(diǎn),當(dāng)程序停止運(yùn)行時(shí),我們可以接著進(jìn)行單步執(zhí)行,跳出函數(shù),進(jìn)入函數(shù)等操作。還可以進(jìn)行復(fù)位,使寄存器都回歸到初始復(fù)位狀態(tài)。 OBG調(diào)試接口 串行接口 JTAG調(diào)試接口 OBG調(diào)試框圖 SWJ(serial wire and
[單片機(jī)]
<font color='red'>STM32</font><font color='red'>單片機(jī)</font>中OBG調(diào)試接口的介紹
STM32單片機(jī)學(xué)習(xí)筆記(2):DHT11溫濕度傳感器
項(xiàng)目簡介 利用CubMX生成基于32單片機(jī)的HAl庫工程,然后編寫程序在proteus上仿真驗(yàn)證。本項(xiàng)目最適合沒有開發(fā)板的同學(xué)學(xué)習(xí),零成本利用仿真軟件率先入門STM32單片機(jī)。這是第二部分針對單總線通信的一個(gè)典型例子——DHT11溫濕度傳感器,主要用于對STM32中GPIO模塊和單總線通信的理解。 硬件模塊 STM32F103R4 DHT11 LCD1602 74HC373 軟件工具 CubMX Proteus KEIL 電路連接圖 STM32F103R4 DHT11 LCD1602 工作流程 首先還是先利用CubMX創(chuàng)建一個(gè)KEIL工程設(shè)置PA0位DHT11的數(shù)據(jù)口,這里之所以選用PA0,主要是有些版本的Prot
[單片機(jī)]
<font color='red'>STM32</font><font color='red'>單片機(jī)</font>學(xué)習(xí)筆記(2):DHT11溫濕度傳感器
STM32單片機(jī)閃存存儲器里存儲的是哪些內(nèi)容
先看rom也就是flash(0x0800 0000-0x0807 ffff)51 2k ,這個(gè)空間就是用戶存放程序的地方,用戶以后自己寫boot loader的時(shí)候,也是存放在這個(gè)空間里的,system memory這個(gè)空間是 2k 大小,是st公司在生產(chǎn)完片子的時(shí)候,就固化好的isp代碼,用戶之所以能用上位機(jī)軟件燒程序就是靠這部分的代碼,用戶更改不了這個(gè)區(qū)域,想了解這個(gè)區(qū)域就看AN2606文檔,option bytes這個(gè)區(qū)域是16個(gè)字節(jié),是控制flash區(qū)域的寄存器,想了解這些寄存器看STM32F10xxx閃存編程參考手冊,SRAM這個(gè)區(qū)域的其實(shí)地址始終是0x2000 0000,終止地址就得根據(jù)你的SRAM的大小來進(jìn)行計(jì)算
[單片機(jī)]
STM32單片機(jī)串口通訊代碼
在STM32開發(fā)中,串口是我們最常用的接口。通過串口,我們很方便地把數(shù)據(jù)輸出到電腦,方便我們進(jìn)行程序調(diào)試。下面我們來看看STM32的串口通訊代碼。 要實(shí)現(xiàn)串口通訊,我們要進(jìn)行下面幾個(gè)步驟: 首先:要打開GPIO口的時(shí)鐘和串口模塊時(shí)鐘。在圓點(diǎn)博士小四軸中,我們用的是GPIOA和COM1模塊。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); 其次:要指定GPIO口,即確定哪些IO是用于串口通訊的。記得使用GPIO_Mode_AF_PP模式 GPIO_I
[單片機(jī)]
ST宣布預(yù)置DSI控制器的先進(jìn)STM32微控制器已投入量產(chǎn)
意法半導(dǎo)體(STMicroelectronics,簡稱ST;紐約證券交易所代碼:STM)發(fā)布功能豐富的開發(fā)生態(tài)系統(tǒng)(包括電路板和軟件支持),而全球首款集成MIPI-DSI 控制器的高性能微控制器STM32F469 / 479已開始量產(chǎn)。 STM32F469/479擁有業(yè)內(nèi)最高的ARM Cortex -M4處理器性能,在180MHz主頻下進(jìn)行CoreMark測試更取得了608分的優(yōu)異成績,內(nèi)置最高2MB的雙區(qū)(dual-bank)閃存和384KB的隨機(jī)存取存儲器(RAM),可支持最先進(jìn)的物聯(lián)網(wǎng)(IoT)和穿戴式應(yīng)用。作為世界首款集成先進(jìn)MIPI-DSI控制器的微控制器,結(jié)合意法半導(dǎo)體獨(dú)有的Chrom-ART Acceler
[單片機(jī)]
ST宣布預(yù)置DSI控制器的先進(jìn)<font color='red'>STM32</font><font color='red'>微控制器</font>已投入量產(chǎn)
基于STM32單片機(jī)的數(shù)據(jù)記錄裝置設(shè)計(jì)
引言 本文針對電動汽車研究的實(shí)際需求,設(shè)計(jì)一款數(shù)據(jù)記錄裝置,該數(shù)據(jù)記錄裝置是搭建在電池能量管理系統(tǒng)基礎(chǔ)上的,通過與能量管理系統(tǒng)通信,記錄電動汽車實(shí)際運(yùn)行時(shí)電池的外部狀態(tài)(如:電池電壓、電流、溫度等),一方面為了研究電池的工作特性,另一方面為了對能量管理系統(tǒng)的工作情況做驗(yàn)證,為電動汽車動力電池的理論研究提供數(shù)據(jù)支持。 1 系統(tǒng)總體設(shè)計(jì) 本數(shù)據(jù)記錄裝置的設(shè)計(jì)包括硬件設(shè)計(jì)與軟件設(shè)計(jì)兩方面,軟件設(shè)計(jì)主要包括數(shù)據(jù)接收的編程以及數(shù)據(jù)存儲的編程,而硬件設(shè)計(jì)主要有幾個(gè)方面:主控芯片的選擇、復(fù)位功能的實(shí)現(xiàn)、電源模塊、實(shí)時(shí)時(shí)鐘、通信模塊以及SD卡連接等。主控芯片是控制系統(tǒng)的核心,它內(nèi)部所集成的模塊越多,就能省去更多的外部電路,使得電路的設(shè)
[電源管理]
基于<font color='red'>STM32</font><font color='red'>單片機(jī)</font>的數(shù)據(jù)記錄裝置設(shè)計(jì)
STM32 Cubemx 配置定時(shí)器定時(shí)1mS
  最近才發(fā)現(xiàn)原來我把定時(shí)器里的配置參數(shù)代表的意義給搞混了,這里記錄一下,防止以后自己忘記。 以建立一個(gè)定時(shí)1mS定時(shí)器為例:   1、先打開定時(shí)器      2、配置好時(shí)鐘      3、配置定時(shí)器設(shè)置             重點(diǎn)來了,以前在這里我一直以為這里配置的就是時(shí)間,然后在調(diào)頻率的時(shí)候,一直不對勁,知道查閱了硬石的資料才發(fā)現(xiàn),這里配置的是進(jìn)入定時(shí)器中斷的頻率,然后要定的時(shí)間要跟據(jù)這個(gè)頻率來定時(shí)的。      由這個(gè)圖可見,這里配置的是定時(shí)器產(chǎn)生中斷的頻率,然后再跟據(jù)頻率與時(shí)間的關(guān)系推出定時(shí)的時(shí)間。   所以定時(shí)器頻率為 f = 72M / Prescaler / Period = 72000 000 / 72
[單片機(jī)]
<font color='red'>STM32</font> Cubemx 配置定時(shí)器定時(shí)1mS
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved