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

下載本文檔

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

文檔簡介

1、如何在Keil下燒寫STM32的外部Flash (M29W128 )(東南大學(xué)自動化學(xué)院,? ? ? ? ? , 20111220 )準備燒寫算法IXKe訂單片機開發(fā)平臺是根據(jù)預(yù)先設(shè)定好的F lash燒寫算法將用戶程序燒到單片 機的Flash內(nèi)部的,那么由于這個算法是固定的,我么往往不關(guān)心,所以我們對 其原理不是很r解,實際上,我們都知道耍將程序燒進去,需要在程選項中選 擇對應(yīng)的單片機型號,如下圖所示。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這個過程就是準備Flash的燒寫算法,選中了某個單片機型號,就確定了其 使用的Flash特征(16bits? , sectorsize等),那么這些算法藏在什么地方呢。這止E 算法就藏在keil安裝的根冃錄下:XKeilARMlash冃下,該冃錄下有很多的文 件夾,每個文件夾里有對應(yīng)的工程,每個工程都是某種型號單片機的Flash燒寫 算法,他們具體的內(nèi)容不同,但是具有統(tǒng)一的接口,以便被keil調(diào)用?,F(xiàn)在我們耍燒寫STM32的外部Nor Flash,所以我們耍新建一個算法,先

6、將其 中的一個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,以后在工 程選項中選擇它即可。2)修改FlashPrg.C文件在keil的Flash目錄下,有其它的16bit Flash燒寫算法例了,建議接將其 拷貝過來,大同小異,這電需要你對Flash的擦除,編程很熟悉,修改對應(yīng)的命 令字即可,如果不熟悉,可以下載數(shù)據(jù)手冊,按照數(shù)據(jù)手冊上的命令字進行修改, 這里需耍注意兩點。Nor Flash是16位還是8位模式,一定要搞淸楚,尤其是在發(fā)送命令和寫數(shù)據(jù) 時。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)編譯工程由丁該工程是從別的地方拷貝過來的,需耍修改輸出文件名,將其命名為 STM32F10X128. FLM,如下圖。編譯工程后,會將該文件拷貝到Flash目錄下,這 樣一個新的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準備燒寫數(shù)據(jù)最好將要燒'與的數(shù)據(jù)單獨放在一個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文件。點擊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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論