如何在Keil下燒寫STM32的外部Flash(M29W128)_第1頁(yè)
如何在Keil下燒寫STM32的外部Flash(M29W128)_第2頁(yè)
如何在Keil下燒寫STM32的外部Flash(M29W128)_第3頁(yè)
如何在Keil下燒寫STM32的外部Flash(M29W128)_第4頁(yè)
如何在Keil下燒寫STM32的外部Flash(M29W128)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、如何在Keil下燒寫STM32的外部Flash (M29W128 )(東南大學(xué)自動(dòng)化學(xué)院,? ? ? ? ? , 20111220 )準(zhǔn)備燒寫算法IXKe訂單片機(jī)開發(fā)平臺(tái)是根據(jù)預(yù)先設(shè)定好的F lash燒寫算法將用戶程序燒到單片 機(jī)的Flash內(nèi)部的,那么由于這個(gè)算法是固定的,我么往往不關(guān)心,所以我們對(duì) 其原理不是很r解,實(shí)際上,我們都知道耍將程序燒進(jìn)去,需要在程選項(xiàng)中選 擇對(duì)應(yīng)的單片機(jī)型號(hào),如下圖所示。Options for Target STM32F10x 512vDevice | Target Output | Listing | User | C O+ | Asm | Lirker De

2、bug | utilitiesCortexM Target Driver SetupRAM faAlaocthmDebug | Tiv<p Flash DownloadProcrammmg AlgaithmDttaiptbnI n“;“G” A J JQDoinlomd rurction-LORD Erase Full Chip & Prngrcm Erase Sectors 7 VeiifyDo not Erase RfttandRimSat |(h20000000 Size: SS00Add Flash Programming AlgorithmDesertionJeice

3、lypeDevce Size | 八NUCIxx 4kB Rash DataOn-chip Flash4kNUC1xx4k8 Hash LUUnship 卜 lash4kRC28Fb4UJ3x Dual FlashExt. Flash 32 btlbMS29JL032H BOT FlashExt. Fldi 16-bi4MG29JL032H TOP FishExt. Flaoh 16 bt4MSTM32M29W1280F FhchExt. Flach 16 bt1GMSTM22F18 XL&n"y Fl砒hOxhip Fh«hIMSTM32F10k Med-ders

4、itv FlashOn-ohip Flash128k1STM32F10k Low-density Fla;hOn-chip Flash16kSTM32F1 Ok Hghnsity FlashOn-chip Flash512kSTM32F1 Ok Correctvity Lin.On-chip Flash256ksrMJZHUx MAP64SH Ha .txt.Fla$hSPItSMM29DW1280F FlashExt. Flash 16-bt16MSTM32F10k Hash OptionsOn-diip Flesh16TMFMSOrW” 12OkD FlhOn Jiip Fhsh12

5、87;.TMFM33OFYx25Gk8 FlachOn<hip Flash25Q.STM32FlCxNCCancel這個(gè)過程就是準(zhǔn)備Flash的燒寫算法,選中了某個(gè)單片機(jī)型號(hào),就確定了其 使用的Flash特征(16bits? , sectorsize等),那么這些算法藏在什么地方呢。這止E 算法就藏在keil安裝的根冃錄下:XKeilARMlash冃下,該冃錄下有很多的文 件夾,每個(gè)文件夾里有對(duì)應(yīng)的工程,每個(gè)工程都是某種型號(hào)單片機(jī)的Flash燒寫 算法,他們具體的內(nèi)容不同,但是具有統(tǒng)一的接口,以便被keil調(diào)用?,F(xiàn)在我們耍燒寫STM32的外部Nor Flash,所以我們耍新建一個(gè)算法,先

6、將其 中的一個(gè)STM32的文件夾拷肌 這樣町以出接修改算法,而其他的設(shè)置不變???貝完畢后,修改文件夾名字以便區(qū)別,然后打開工程,修改程序。1)修改FlasliDev.C文件stmet FlashDevice const FlasliDevice =FLASH_DRJTRS,/ Driver Version, do not modify!"STM32M29W1280F Flash",/ Device NameEXT16BIT,/ Device Type0x64000000,/ Device Start Address0x01000000,/ Device Size ill

7、Bytes (16MB)1024,/ Prograniniing Page Size0,/ Reserved、must be 0OxFF,/ Initial Content of Erased Memoiy100,/ Program Page Timeout 100 mSec3000,/ Erase Sector Timeout 3000 mSec0x20000. 0x000000,/ Sector Size 128kB (128 Sectors)SECTOR_END;農(nóng)中彩色不是是需耍根據(jù)試劑情況修改的,本例中Nor Flash在STM32F103的 地址映射中,其首地址是0x6400000

8、0,且Nor Flash為16位模式,大小位16M (字 節(jié)),Sector大小是128k«該算法將其命令為STM32M29W1280F Flash,以后在工 程選項(xiàng)中選擇它即可。2)修改FlashPrg.C文件在keil的Flash目錄下,有其它的16bit Flash燒寫算法例了,建議接將其 拷貝過來(lái),大同小異,這電需要你對(duì)Flash的擦除,編程很熟悉,修改對(duì)應(yīng)的命 令字即可,如果不熟悉,可以下載數(shù)據(jù)手冊(cè),按照數(shù)據(jù)手冊(cè)上的命令字進(jìn)行修改, 這里需耍注意兩點(diǎn)。Nor Flash是16位還是8位模式,一定要搞淸楚,尤其是在發(fā)送命令和寫數(shù)據(jù) 時(shí)。Nor Flash是掛在FSMC總線上的

9、,該算法耍有FSMC總線的初始化,且在初始 化函數(shù)里。即int Init (unsigned long adr, unsigned long elk, unsigned long fnc)base_adr 二 adr;FSMC_NOR_Init0;return (0);3)編譯工程由丁該工程是從別的地方拷貝過來(lái)的,需耍修改輸出文件名,將其命名為 STM32F10X128. FLM,如下圖。編譯工程后,會(huì)將該文件拷貝到Flash目錄下,這 樣一個(gè)新的Flash燒寫算法誕生了。Options for Target STM32F10x 5121Device Target | Output | Lis

10、ting User | C/C+ | Asm | Linker | Debug | Utilities |Hun User Progami Betore lompilation of a C/C*-+hie 廠 Run tt1:r Runtt2:廠 DOS16r DO515廠 R 4H tt1 :廠 Runtt2:廠 DOS16r DOS16Run User Prgam* fter Buld/Febuid7 Run tt1:ndexe/C 8pySM32F1C<512曲 $TM32F1O>N3R12£FLM廠 RunttZ:P Dccp When Complete廠 Sb

11、rtDctuggng廠 DO516廠 DO516Defaults準(zhǔn)備燒寫數(shù)據(jù)最好將要燒'與的數(shù)據(jù)單獨(dú)放在一個(gè)c文件里,不放也沒關(guān)系,只是n己要很淸楚哪 些文件的數(shù)據(jù)需要燒到Nor Flash里。例如,本例的將數(shù)據(jù)放在WEB.C中,編譯后數(shù)據(jù)放 在web. o里。燒寫數(shù)據(jù)1)選擇燒寫算法如上圖,燒寫算法共兩種一部分將程序燒到片內(nèi)Flash, 一部分將數(shù)據(jù)燒到片外Flasho2)指定燒寫內(nèi)容Options for Target RT Thread STM32f區(qū)Device Target Outpir | Listing User | C/C+ | Asm Linker | Debug U

12、tilitiesR/0 E ase |0<08000000R/W Ea$e |0<20000000dijabfe Warrings:I U$e Memoy Layout from I arget Dialog 廠 MaK© RW Sectiont Positiofdndependent 廠 Ma<e RO Sectons Position Independent 廠 Don't Search Stan card Libraries V R :>oNJaiT Condtionc AtErrcrtScatterFilepobfxruFfcad-5ln32.

13、5ctEdit.MisccortrolsLinker -epu Cortex-M2 * o -librarji_lip=microlib -bict" :birthcad-?tm22 ct1'入contro -autoat -sunmarystden -irro $ummary$ize$ -map -xref -cdlgreph -syrrbokstring£OK m:elDefaultsHelp如上圖,選擇使用Scatter文件。點(diǎn)擊Edit.做如下修改,增加彩色部分,即將web. c文件燒到外部FlashoLR_IROM1 0x08000000 0x00080000; load region size_regionER_IR0Ml 0x08000000 0x00080000; load address = execution address*. o (RESET, +First)*(InRootS$Sections).ANY (+R0)RW_IRAM1 0x20000000 0x00010000; RW data.ANY (+RW +ZI)LR_IR0M2 0x61000000 0x000

溫馨提示

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

評(píng)論

0/150

提交評(píng)論