




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于 MDK 的 STM32 系列 IAP 和 APP 程序的配置很多人在做 IAP 程序的時候,一般都能很容易就做出來,但是在做 APP 的時候,卻經(jīng)常會跑飛,其中原理,大都由于 MDK 配置出的問題,或者是 APP 沒有映射向量表。向量表起始地址默認(rèn)的是 0 x08000000,在 IAP 的程序里不用再映射,但 APP 的起始地址已經(jīng)不再是0 x08000000,所以,必須要映射到實際的起始地址,否則當(dāng) IAP 跳轉(zhuǎn)到 APP 的時候,程序直接就飛了。如我的 APP 起始地址是 0 x08005400,我的映射函數(shù)是這么配置的NVIC_SetVectorTable(NVIC_VectTa
2、b_FLASH,0 x5400);NVIC_VectTab_FLASH 的值就是0 x08000000。下面讓我們來看看 IAP 和 APP 的 MDK 配置,其中片子為 STM32F103RE,IAP 起始是0 x08000000,程序大小是 0 x5400 字節(jié);APP 的起始地址是 0 x08005400,程序大小是 0 x7AC00,配置如下:1.IAP 的 optionfortargetstm3210e-evel配置1)這里要注意的是 IROM1 的配置2)這里是片子的選擇配置DeviceTargetOutput|ListingUser|C/C+AsmLinkerDebugVtlli
3、tiesConfigurftFlashMenuCommand*IlseTairgetDriverforFlashProgramming|CorlftMjM/RJ-UNKyj;Irace三5eUirigsFUpdateTargetbefaeDebuggingInitFite;|二EdJ|-UseExternalToolforFlashProgram福ngCommand;Arguments:IRunIndependentOKCancelDefaultsHelp單擊 setting 進(jìn)入下面的界面這里要注意 ProgrammingAlgorithm 的 size 大小。實際上經(jīng)過測試,這個 size
4、 使用片子的最大的容量也沒關(guān)系,即 0 x00080000(512K),也不會影響程序的運行。3)以上是大家需要配置的,以下是其它的配置,與 IAP 功能無關(guān)緊要,是我的配置,僅供大豕爹苦。OptionsforTarget一一STM32LOE-EVAL*I5|Dtvi|TargetOutput|ListingUserIC/C+AsmLinker|Debug|UtilitiesSelectFolderforQbiect$,r.ofExecutablsSTM321OE-VAL一CreateEwecutabla.STM321OE-EVALSTM321OE-EVAL審SebugIrifonnation
5、qCreateHEXFileF出的Inform前ionCreateLib同y:.STM3OEVALVSTM321OE-EVALLI0HelpDeviceTarget|OutputListingUser|C/C+|AsmLinkerDebugUtilities|SelectFolderforListings.PageWidth:卜9PaggLength:|66VAssemblerListing:.STM321OE-EVAL-.1stMCrossReferenceCCompierListing:ASTM321OE-EVALK.txtrCPreprocessorListing:.STM3210E-E
6、VALV.iPLinkerUsting:.STM321OE-EVALSTM321OE-EVAL.map廠MemoryMapCallgraph7Symbols7CrossReferenceVSizeInfo“TotakInfoMUnusedSedionsInfogVeneersInfoOKCancelDefaults,ZHelpDeviceTarget|Output|Listing|UserAsmLinkerDebugjUtilitiesPreprocessorSymbolsDefine:|USE_STDPERIPH_DRIVER,STM32F10K_HD,USE_STM3210E_EVALUn
7、define:|Language/CodeGeneration.Vine;.V.LbrafiesCMSISCM3Co(eSupport;.k.LbrariesCMSISXCM3DeviceSupportSTS口-c-cpuCo(tex-M3-D_MICROLIB-g-03-apcs=interwork-5plitsections-I.AincIA.A.Librarie$CMSISCM3CofeSupport-IAA.ALibrane$CMSISCM3bkDefaultsC/C+Optimization:Level3卜03)1OptimizeforTimeSplitLoadandStoreMul
8、tipleOneLFSectionperFunctionrrrrrStrictANSICEnumContaineralwaysiniPlainCharisSignedRead-0nlijPositionIndependentRedd-WiilePuitiuriIridcpvruJcrilWarnings:|AllWarningsThumbModeIncludePathsMi$cControlsCompilercontrolstringOptionsforTargetrSTI3210E-EVAL,DeviceTarget|Output|Listing|User|C/C+QUseMemo(yLay
9、outhornT廓getDialogM也eRWSectionsPositionIndependent一M親eROSectionsPositionIndependentDontSearchStandardLibrariesQReportmightfailConditionsa$ErrorsScatterFile-cpuCortex-M3x.o-Sbrary_type=microfo-strict-scatterM.STM3210E-EVALKSTM321OE-EVALset人-Summary_stderr-infosummarysizes-map-xref-callgraph-symbolsMi
10、secontrolsbkCancelDefaultsHelpE&LinkercontrolstringCortexJLink/JTraceTargetDriverSetupDebu&TraceIFlashDownloadJ-Link/J-TraceAdapterSWDeviceSN:99999994USB#:|0二|IDCODEDeviceNameMoveDevice:|J-LinkARMHW:V8.00di:|V4.35bFW:fnjnkARKTWcocnpfedNovPort:MaxClock:AutoClk|DebugConnect&ResetOptionsRes
11、etINormal7ResetafterConnectInterface6USBCTCP/IPScanState:readySWD6AutomaticDetectionIDCODE:ManualConfigurationDeviceName:Add|Delete|Update|IRlenfCacheOptions7CacheodeCacheMemoryTCP/IPOKCancelDownDownloadOptionsVerifyCodeDownloadDownloadtoflashHelp2.APP 的配置1)注意下面的 IROM1 的配置,千萬不可與 IAP 有區(qū)域重疊,而且 size 不能
12、超過片子的大小。這里 0X7AC00 與 IAP 的 0 x5400 之和,剛好是 0 x80000,即 512KOptionsforTargetrSTM32LDE-EFAL1DtviTargetOutputIListingUserIC/C+AsmLinkerIDebugIUtilities2)片子的配置STMicroelectroniciSTM32F103RE儂州;SJ-Operatingastern:jNcreSyslen-ViewerFile(.Sir):I_JRead/OnlyMsruwrydehuHoff-chipStartSizStartuprRDM1:|LrRQM2:|rrRDM
13、3:IrQn-diipRQM1|OhS005400|0 x7AC00(FrIRQM2:|rCodeGenerationUseCross-ModuleOptirnzaboriI?UseMicroLIBReddAiVriteMemoyAfea$defaultofhchipStartSizeNolrirRAW1;rrRAM2:rrRAM士|Ir0*chip*IRAM1:|0 x200000000 x10000rrIRANI|r再次說明一下,以上的 RAMforalgorithm(RAM 為運算法則準(zhǔn)備的空間)的 size 和programmingforalgorithm(程序為運算準(zhǔn)備的空間)的 s
14、ize 都是默認(rèn)的,當(dāng)然程序為運算準(zhǔn)備的空間大小也可以改成 0X7AC00,起始地址改為 0 x08005400,但經(jīng)過調(diào)試效果都一樣。其它 MDK 的設(shè)置參照 IAP 的(3)點(3)以下的說明要特別注意,稍不留神就會出問題。平時我們在建立工程的時候,可能不會去重新映射向量表,原因是一般我們程序的起始地址都是默認(rèn)的 0 x08000000,但此刻的 APP的起始地址是 0 x08005400,那么就必須重新映射了。需要注意的是,在系統(tǒng)時鐘配置好后,馬上就做向量映射,中間最好先不要做其它的配置,比如端口初始化等等,否則程序跑飛也不一定的。下面的這段代碼就是我實際的配置過程。VoidMain(v
15、oid)SystemInit();系統(tǒng)初始化NVIC_SetVectorTable(NVIC_VectTab_FLASH,0 x5400);向量表映射voidSystemInit(void)/*!CR|=(uint32_t)0 x00000100;/*!CFGR&=(uint32_t)0 x88FFC00C;/*!CR&=(uint32_t)0 xEEFEFFFE;/*!CR&=(uint32_t)0 xFFFBFFFF;/*!CFGR&=(uint32_t)0 xFF02FFFF;/*!CIR=0 x00000000;/*ConfiguretheSystemc
16、lockfrequency,AHB/APBxprescalersandFlashsettings*/SetSysClock();/SetSysClock65K();#ifdefVECT_TAB_SRAMSCB-VTOR=SRAM_BASE|VECT_TAB_OFFSET;/*VectorTableRelocationinInternalSRAM.*/#elseSCB-VTOR=FLASH_BASE|VECT_TAB_OFFSET;/*VectorTableRelocationinInternalFLASH.*/#endif)staticvoidSetSysClock(void)(_IOuint
17、32_tStartUpCounter=0,HSEStatus=0;/*SYSCLK,HCLK,PCLK2andPCLK1configuration*/*EnableHSE*/RCC-CR|=(uint32_t)RCC_CR_HSEON);/*WaittillHSEisreadyandifTimeoutisreachedexit*/do(HSEStatus=RCC-CR&RCC_CR_HSERDY;StartUpCounter+;while(HSEStatus=0)&(StartUpCounter!=HSE_STARTUP_TIMEOUT);if(RCC-CR&RCC_C
18、R_HSERDY)!=RESET)(HSEStatus=(uint32_t)0 x01;else(HSEStatus=(uint32_t)0 x00;if(HSEStatus=(uint32_t)0 x01)(/*Enable64-bitaccess*/FLASH-ACR|=FLASH_ACR_ACC64;/*EnablePrefetchBuffer*/FLASH-ACR|=FLASH_ACR_PRFTEN;/*Flash1waitstate*/FLASH-ACR|=FLASH_ACR_LATENCY;/*Powerenable*/RCC-APB1ENR|=RCC_APB1ENR_PWREN;/*SelecttheVoltageRange1(1.8V)*/PWR-CR=PWR_CR_VOS_0;/*WaitUntiltheVoltageRegulatorisready*/while(PWR-CSR&PWR_CSR_VOSF)!=RESET)(/*HCLK=SYSCLK/1*/RCC-CFGR|=(uint32_t)RCC_CFGR_HPRE_DIV1;/*PCLK2=HCLK/1*/RCC-CFGR|=(uint32_t)RCC_CFGR_PPRE2_DIV1;/*PCLK1=HCLK/1*/RCC-CFGR|=(uint32_t)RCC_CFGR_PPRE1_DIV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CHEC 007-2021自動平移門安裝驗收技術(shù)規(guī)范
- T/CGCC 72-2022公用紡織品洗滌廢水回用水質(zhì)要求
- T/CGCC 54.5-2021網(wǎng)絡(luò)平臺環(huán)境下文化領(lǐng)域內(nèi)容交易規(guī)范
- T/CECS 10364-2024燃?xì)馊紵骶吖I(yè)互聯(lián)網(wǎng)標(biāo)識編碼
- T/CECS 10175-2022建筑用谷纖維復(fù)合門窗
- T/CECS 10035-2019綠色建材評價金屬復(fù)合裝飾材料
- T/CECS 10032-2019綠色建材評價保溫系統(tǒng)材料
- T/CECS 10029-2019綠色建材評價建筑密封膠
- T/CBMCA 053-2024鋁合金門窗安裝交付
- T/CBMCA 019-2021醫(yī)用潔凈室裝飾材料技術(shù)標(biāo)準(zhǔn)
- 《光伏發(fā)電工程預(yù)可行性研究報告編制規(guī)程》(NB/T32044-2018)中文版
- 租賃房屋委托書(8篇)
- 醫(yī)院培訓(xùn)課件:《消毒隔離》
- 人工智能數(shù)學(xué)基礎(chǔ)全套教學(xué)課件
- 尿毒癥患者的護(hù)理健康評估
- 論社會系統(tǒng)研究方法及其運用讀馬克思主義與社會科學(xué)方法論有感
- 鋼結(jié)構(gòu)焊接技術(shù)的操作技巧與要點
- 《高速鐵路客運服務(wù)禮儀》試題及答案 項目7 試題庫
- 頸內(nèi)靜脈血栓形成的護(hù)理查房
- 食堂阿姨培訓(xùn)課件
- (完整版)年產(chǎn)30萬噸甲醇工藝設(shè)計畢業(yè)設(shè)計
評論
0/150
提交評論