www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]主要是為了在RAM中運(yùn)行程序來解除讀保護(hù)的。沒想到ST-Link Utility 就直接可以。ST-Link Utility:target-->options bytes-->就可以看到讀保護(hù)。解除讀保護(hù),選擇 Level 0. 其他都不變(WDG_SW,nRST_STDBY,nRST_STOP都

主要是為了在RAM中運(yùn)行程序來解除讀保護(hù)的。沒想到ST-Link Utility 就直接可以。

ST-Link Utility:target-->options bytes-->就可以看到讀保護(hù)。
解除讀保護(hù),選擇 Level 0. 其他都不變(WDG_SW,nRST_STDBY,nRST_STOP都按照默認(rèn)的勾上)
然后點(diǎn)擊Apply即可。

讀保護(hù):

1:while(1)
2:{
3:PD13_Toggle;
4:Delay(0x7FFFF);
5://按鍵按下,切換是否讀保護(hù)
6:if(is_key_toggle)
7:{
8:if(FLASH_OB_GetRDP()!=SET)//
9:{
10:printf("startRDPrn");
11:FLASH_OB_Unlock();
12:FLASH_OB_RDPConfig(OB_RDP_Level_1);
13:if(FLASH_COMPLETE!=FLASH_OB_Launch())
14:printf("RDPfailedrn");
15:else
16:printf("RDPsucceedrn");
17:FLASH_OB_Lock();
18:if(SET==FLASH_OB_GetRDP())
19:printf("RDPOKrn");
20:else
21:printf("RDPKOrn");
22:}
23:else
24:{
25:printf("startremoveRDPrn");
26:FLASH_OB_Unlock();
27:FLASH_OB_RDPConfig(OB_RDP_Level_0);
28:/*StarttheOptionBytesprogrammingprocess*/
29:if(FLASH_OB_Launch()!=FLASH_COMPLETE)
30:printf("removeRDPfailedrn");
31:else
32:printf("removeRDPsucceedrn");
33:FLASH_OB_Lock();
34:if(RESET==FLASH_OB_GetRDP())
35:printf("removeRDPOKrn");
36:else
37:printf("removeRDPKOrn");
38:}
39:is_key_toggle=0;
40:}
41:}

MDK下載到flash后,重新上電(很重要),然后按鍵,就可以RDP。再按一次,就可以Remove RDP.

在RAM中運(yùn)行程序:搜索到一篇《在內(nèi)嵌RAM中運(yùn)行程序》,照著做的,有些修改。

隨便建個RAM.ini

1:FUNCvoidSetup(void){
2:SP=_RDWORD(0x20000000);//SetupStackPointer
3:PC=_RDWORD(0x20000004);//SetupProgramCounter
4:_WDWORD(0xE000ED08,0x20000000);//SetupVectorTableOffsetRegister
5:}
6:
7:LOAD%LINCREMENTAL
8:Setup();//SetupforRunning
9:g,main

哈哈,其中 %L 就是你的工程.axf. 很多其他做法都是帶個路徑/project.axf。

而%L要簡單很多。

LOAD %L INCREMENTAL

g,main 相當(dāng)于MDK中的:

所以要么RAM.ini中有這兩句,要么把這里兩個勾 勾上。

F4,128kB,就分成 64KB+64KB吧。

為了能夠RAM調(diào)試中響應(yīng)中斷。要加上:VECT_TAB_RAM. 我一開始就是沒加,一直不能進(jìn)中斷。

還要注意這個地方:


網(wǎng)上有些說法錯的,比如在RAM中運(yùn)行就只能在調(diào)試模式下,不能點(diǎn)擊那個Load按鈕下載。

一切都正常的情況下,應(yīng)該是這個結(jié)果:

地址 0x2000….開頭

能夠設(shè)斷點(diǎn)。(RAM的這個Target和原來的那個要設(shè)置不同的.o文件位置)

Good Luck.


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

有關(guān)開發(fā)人員如何通過在RAM中執(zhí)行時間敏感功能而不是從Flash中執(zhí)行時間敏感功能來加快其應(yīng)用程序代碼的文章。您可能想知道是否要進(jìn)行這樣的調(diào)整,表現(xiàn)會發(fā)生什么變化?答案會根據(jù)微控制器的制造技術(shù)而有所不同,但是開發(fā)人員可以...

關(guān)鍵字: RAM 績效改進(jìn)

現(xiàn)在的FPGA不僅包含以前的LE,RAM也更大更快更靈活,管教IOB也更加的復(fù)雜,支持的IO類型也更多,而且內(nèi)部還集成了一些特殊功能單元。

關(guān)鍵字: FPGA RAM

在現(xiàn)代嵌入式系統(tǒng)開發(fā)中,STM32系列微控制器因其高性能、低功耗和豐富的外設(shè)資源而廣受歡迎。然而,隨著應(yīng)用需求的不斷增長,內(nèi)部RAM的容量往往成為限制系統(tǒng)性能的一個瓶頸。為了解決這個問題,開發(fā)者通常會將堆(Heap)配置...

關(guān)鍵字: STM32 RAM

RAM和ROM等存儲單元的物理地址映射是由做硬件的數(shù)字工程師確定,他們在劃分時主要會考慮電路的延遲,將這些儲存單元按照一定的方式掛在同一條AHB總線上。而嵌入式平臺軟件工程師可以通過修改鏈接腳本來設(shè)置哪些數(shù)據(jù)、代碼在程序...

關(guān)鍵字: RAM ROM

在嵌入式系統(tǒng)領(lǐng)域,程序代碼的運(yùn)行位置是一個至關(guān)重要的問題。傳統(tǒng)的觀念認(rèn)為,程序代碼必須從FLASH存儲器搬到RAM中運(yùn)行,以提高執(zhí)行速度和效率。然而,隨著技術(shù)的不斷發(fā)展,這一觀念正在受到挑戰(zhàn)。本文將深入探討嵌入式系統(tǒng)中程...

關(guān)鍵字: 嵌入式系統(tǒng) Flash RAM

ROM和RAM是人盡皆知的概念。即:RAM(random access memory)隨機(jī)存儲內(nèi)存 ,這種bai存儲器在斷電時du將丟失其存儲內(nèi)容,故主要用于存儲短時間使用的程序。ROM(Read-Only Memory...

關(guān)鍵字: RAM ROM 嵌入式

在C51編程環(huán)境中,變量的存儲是理解程序運(yùn)行機(jī)制和優(yōu)化性能的關(guān)鍵。C51是專為8051系列單片機(jī)設(shè)計的一種C語言擴(kuò)展,它不僅繼承了標(biāo)準(zhǔn)C語言的強(qiáng)大功能,還針對單片機(jī)的硬件特性進(jìn)行了優(yōu)化。本文將深入探討C51語言中變量的存...

關(guān)鍵字: C51語言 單片機(jī) RAM

沙特阿拉伯利雅得2024年9月12日 /美通社/ -- 沙特數(shù)據(jù)與人工智能管理局(SDAIA)今日發(fā)起了一項(xiàng)開創(chuàng)性倡議,旨在推動符合倫理的人工智能研究與應(yīng)用。 這一重大聲明是在第三屆全球人工智能峰會期間發(fā)布的,峰會目前正...

關(guān)鍵字: 人工智能 SD AI RAM

我們經(jīng)??梢钥吹匠鯇W(xué)者在單片機(jī)論壇中詢問他們是否可以在他們微不足道的小的8位微機(jī)中運(yùn)行Linux。這些問題的結(jié)果通常是帶來笑聲。

關(guān)鍵字: RAM MCU

日本橫濱2024年8月20日 /美通社/ -- 富士通半導(dǎo)體存儲器解決方案株式會社(Fujitsu Semiconductor Memory Solution Limited)欣然宣布,自2025年1月1日起,公司名稱將...

關(guān)鍵字: LIMIT RAM 富士通 半導(dǎo)體存儲器
關(guān)閉
關(guān)閉