STM32在SRAMFLASH中調試代碼的配置方法_第1頁
STM32在SRAMFLASH中調試代碼的配置方法_第2頁
STM32在SRAMFLASH中調試代碼的配置方法_第3頁
STM32在SRAMFLASH中調試代碼的配置方法_第4頁
STM32在SRAMFLASH中調試代碼的配置方法_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、STM32勺FLASH察寫次數有BM (大概為1萬次),所以為了延長FLASH勺使 用時間,我們平時調試時可以選擇在 SRAW進行硬件調試。除此之外,SRAM住 儲器的寫入速度比在內部 FLASH中要快得多,所以下載程序到 SRAMH勺速度 較快。所以我們很有必要建立兩個版本的工程配置,在SRAW調試程序完畢后,再把代碼下載到FLASHY即可。這篇筆記主要分享在keil5中配置FLASHM試與 SRAMI試的詳細配置方法及如何切換兩種配置。本篇筆記以STM32F103ZET6例。其FLASHY小為512KB SRAM勺大小為 64KR FLASH®地址為 0x08000000, SR

2、AMS地址為 0x20000000。在 STM32F10XXX 里,可以通過BOOT 1 BOOT0H腳來選擇三種不同的模式:BOCTOB00T1啟動模式說明1 0 1X1用戶閃存存儲器用戶閃存存錯器:也就是FLASH啟動10系統存儲器系統存儲器啟動,用于串口下載nJ1SRAM啟動SRAH啟動,用于在SRAM中調試代碼我們要在FLASH中進行硬件仿真調試還是在 RAM中進行硬件仿真調試需要對這 兩個boot腳進行對應的設置以及程序下載的地址進行設置。在FLASH中進行硬件仿真調試 1、硬件設置BOOT配置為0, BOOTH!意設置 2、keil設置本文以keil5為例。步驟如下:(1)點擊如下

3、按鈕,修改target的名稱:Tcols SVCS Window Help,亭0,f a miTI笆卷t卷target的名稱是可以隨意更改的,這里我們改為FLASH(2)點擊Project->Options for Target Flash.(也可以點擊魔術棒那個圖標)進行配置。首先對Target選項卡設置:設置IROM1的起始地址為0x8000000,大小為0x80000,即FLASH勺基地址與大 小。設置IRAM1為0x20000000,大小為0x10000,即SRAM勺基地址與大小。(3) Debug選項設置:UUNK2/ME Cortex-M Target Driver Setu

4、pDebug Trace Flash DownloadDownload FunctonLORDFul ChipK3 6 Erase SectorsDo not EraseRAM for Algorithn“ Program,Verfy Reset and RunStart: |(k20000000 Size: |(k00001000Programming 網 8rthmSta(t:Add Flash Programming Algorithm1 ftoflin-UI STM12F1 0的/Flash512kOn-chip FlashDevice Family Package1咄AM2M28 R

5、ash16MExt. Rash 16-bitMDKCoreK8P5615UQA Dual RashS4MExt. Flash 32-bitMDKCoreLPC18o/43xx MX25V8CB5F.8MExt. Flash SPIMDKCoreLPC1&oc/43xx S25FLO32 SP .4MExi. Flash SPIMDKCoreLPC1&a/43xx S25FLOG4 SP8MBd. Flash SPIMDKCoreLPC407x/8x S25FL032 SPIFI4MExt. Rash SPIMDKCoreLPC546QX MT25QL128 SPIFI16MEx

6、t. Rash SPIMDKCoreM29WG40FB Fash8MExt. Flash 16-bitMDKCoreMIMXRTIOfec EcoXiP Flash4M&d. Rash SPIMDKCoreRC2SFG40J3X Dual Rash16MExt. Rash 32-bitMDKCoreS29GL064N Dual Flash16MExt. Flash 32-bitMDKCoreS29JL032H_BOT Flash4MExt. Flash IfrbitMDKCoreS29JL032HJOP Rash4MExt. Flash 1GbitMDKCoreSelected Ras

7、h /ygonthm Rie:E:Prugram FilesKe<Lv5ARMPACKKeiKSlW2Fhx_DFP7 0.5RashSTM卻(k_512FLMAddCancelJ一(4)編譯,然后按Ctrl+F5進入調試界面:然后點擊全速運行:匚遙:皂匕口£號94 E:-Q3Jll 0*8m 2ioi27 I3 /-'- -/ 修字xbsCQCi9a FT耳曰EFaei 31.w-wk_in30:Gl"3tt31E,3(LiLD_KJRTr Ist11«J_fm_0> J/* 點先LE0C */M0V3 - XI,»OXJ1在Dis

8、assembly窗口中可看到地址為 0x0800xxxx,說明代碼燒進了 FLASHY, 這時候就可以像使用其他 C語言IDE調試C語言程序一樣打斷點、單步運行我們 的STM3邪序啦。在SRAM中進行硬件仿真調試在SRAM勺仿真調tO已置比FLASHY的配置要麻煩一點1、硬件設置BOOT配置為1, BOOT配置為1。2、keil設置(1)新建一個target ,并修改名稱為SRAM(2)切換至 SRAM Target:(3)點擊Project->Options for Target SRAM .(也可以點擊魔術棒那個圖標)Target選項卡設置:日 Option? for Target

9、JRAM'UtilitiesDtvice T*r“t | Output | Listing | Ueer | C/C+ | kztti Linker |STNhcroelectjcnics STMS2F1D3ZE120Code Gcncrebon ARM Compiltr:| Use default conpiler vemon 5""三Operaticq system; 岳旭Sysem Viewer Rie:|s32F1Q3(xsvd廠 Use Custom AleUse Cross-Module Cbtimizationq Use MiceUBI- Sig En

10、dianRsad/Only Manors .asRead/Write Mencry g的dsuktoff-ch,)R0M1: |R0M2; |StartStartupdetaultoff-chipPJoIrl|32KB rStanSizeRAMI:RAM2:ROM3:F-.M3: I 1.FEOKCaiicelIt faults設置IROM1的起始地址為0x2000000,大小為0x8000 (32KB);設置IRAM1的起 始地址為0x2008000,大小為0x8000 (32KB 。即把64KB的SRAM為32KB的 FLASH(當然這是SRAM8擬出來的FLASH掉電易失)和32KB的R

11、AM(4) C/C+璉項設置:為什么在RAM中調試要設置這個宏而在FLASH中調試卻不需要?這是因為我們 的中斷向量表默認位于FLASHY,而此時我們要在RAW進行調試,所以需要把 中斷向量表拷貝到 RAMfr,相關代碼在system_stm32f10x.c 的Systemlnit函數 中:J- VECX.TAS.3 即9so->vrap. = 4SF1AK 2AsiE | VECTTM OFTSETJ: * Victor T-ihlfe ?ie lc?ea t i,*R 1 fal :3RAJ<,-才與工moSCB->VT0P = F1ASB_BASE 1TCT_7AB_O

12、FFSET; /* "口TjL.le 以11。戊.5.ri 工nil FLAFfl r其實system_stm32f10x.c 文件中也有宏 VECT TAB SRAM的代碼:11B S/,! < UficcLiment the folloviEtg li£ie 1E you need s ume eMexnAl .SRAM119。目 5TM321OE-EVJLii| 5TM32 High dcnsi&y XL-de口野工杼N gr oaL2Q5TE3-210-OE EVaL 8事工3 CSTH32 Hi9h-y v->lac line iuwfcun

13、na S »ckq ryL"耳土i22/121±defined (5TK17F10X_HD) | | (defined STH32F1OX:_XL | | (deflMMl STM33F1 i3X_HD_VL| ide fine ETA TN Ek-RAH /把這行代碼打開即可把中斷向量表拷貝到RAMfro但是這里選擇在C/C+璉項選項里添加宏,因為這樣可以保證 SRAMK本與FLASH®本代碼的一致性。(5) Debug設置:與在FLASHY調試不同的是,這里需要加入.ini文件:El Options foR Target ,SRAM'C/C+

14、 Asm Linker 口已加百Use SiTlLLatqf wi-.h retri cicnsSett rigsV Limt Spetd to Real-TimeUse; ULINK2/ME Qrtex Debugger 二 Settings7 Load ppication at Startup * Run to manQInrtiahzdtiOn Fie: Load ApplicatMn at Startup1 ”r ' ' Initialization File.Edit .estang D&ju5 Sesston Sewings BnsaksoirttE Toc

15、lbcx/ 'Watch Windows M Perfomance jVialyzerQ Memoy Display V System MewerRestore Debug Sessicn 5eftiigsV Breakpoint方" Toofcox /, Eitch WindowsV Merncry Display舊 Systern ViewerCPU DLLParaTie:erDriver DLL:Parameter:D&vi te T.耳et Output | Li itiTig VscrS-.RMCM3 DLLDialog DLL:Parameter:Dial

16、og DLL Parameter:DCM.DLLpCM2T3M DLL7'/am if outdat&d Executable is ;oadedVr'am if outdated £xec-Eat4e is loadedManage Component V iewer Description Files .OKE£aults這個.ini 可以自己創建(也可以在芯片支持包里找到),這里我們建為Dbg_RAM.ini。文件里的內容如下:func void Setup (void) SP - _曰麻啊儂2鮑磯網);PC = _RDWDRD(e<2M

17、MW4);WDWDRD (6XE9MEMB, IxZMeW9) FUNC void OnResetExec (void) Setup。;1213incrementalload A0bjectsstm32flOx.demo, axfSetup();1415 g,陶in其中這里的第11行是需要根據實際進行修改的,需要把工程編譯得出的.axf格 式文件的路徑及其文件名填到這里。這里因為我們這里的的 .ini文件在.axf的 上一級目錄:殍改日明2019/5/20星期201町“20聚文件究勢原大小 Lhtimgsi*I 口匕沁£恒I>bg_RAMin2019/5/20至期Canfigu

18、rftign Sc-1«£煙.EventReccrcerStub.scvd2019/9/20 M.SCVD文件1KB_ stm 22flO>_de mo .uvguixJd rni nrtrato r8工W卯20里購AD MlMSTRATO-176 KBstm 32flOs_demio .uvo ptx e stm 32flO>_de mo uvp fqJm2019/C/20呈期2015/5/20靈的UVO=>TX 文件第匕ion5 Projcict2 E KBA2 KB所以此處以./Objects來表示。如果覺得麻煩的話,可以把.axf文件與.ini 在

19、同一個目錄下其它的按默認設置即可,然后點擊Settings ,并進行如下設置圖中我們需要勾選 Verify Code Download 及Download to FLASH選項,也就是 說點擊調試按鈕后,本工程的程序會被下載到內部 SRAM中,只有勾選了這兩個 選項才能正常仿真。(至于為什么FLASH版本的程序不需要勾選,不太清楚)Download Function中的擦除選項配置為 Do not Erase。這是因為數據寫入到內 部SRAM中不需要像 FLASH那樣先擦除后寫入。Programming Algorithm 的地址要與我們Target選項卡里設置的地址一致,否則可能會出現如下錯誤:(6)編譯,然后按Ctrl+F5進入調試界面,然后點擊全速運行:口izii仃EbV

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論