F2812燒寫個人歸納增加程序_第1頁
F2812燒寫個人歸納增加程序_第2頁
F2812燒寫個人歸納增加程序_第3頁
F2812燒寫個人歸納增加程序_第4頁
F2812燒寫個人歸納增加程序_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

.F2812燒寫個人總結增加程序在仿真器中將程序調(diào)試好,將程序燒入flash之前,需要做以下工作:謝謝閱讀一、硬件上確保DSP的XMP/MC管教接地,且SCIATXDA腳接高電平;感謝閱讀XMP/MC接地為低電平:表示微機算計模式,那么0x3FFFC0指向的是2812的片內(nèi)FLASH的地址。感謝閱讀上電復位后,復位向量是指向片內(nèi)Flash的0x3FFFC0。2812有一塊flash地址從0x3FF000-0x3FFFFF在出廠時已經(jīng)固化好了引導程序。在0x3FFFC0處是一條跳轉(zhuǎn)指令,跳到iniboot(地址0x3FFB50)函數(shù)處執(zhí)行iniboot代碼,該iniboot代碼就是ti在dsp出廠時固化在flash中的。Iniboot函數(shù)判斷幾個GPIO引腳來判斷使用哪一種引導模式,比如flashboot模式,檢測SPICLKA,SCITXA,GPIO34的電平,當都為高電平時表明是片內(nèi)flashboot模式,那么initboot執(zhí)行完后跳轉(zhuǎn)到0x3F7FF6處,此位置剛好在128位(CSM)密碼位置之前,你要在0x3F7FF6處放置跳轉(zhuǎn)指令(codestart:>BEGIN,PAGE=0),以跳轉(zhuǎn)到你要去的地方。謝謝閱讀BEGIN :origin=0x3F7FF6,length=0x000002謝謝閱讀/*PartofFLASHA. Usedfor"boottoFlash"bootloadermode.*/感謝閱讀codestart :>BEGIN PAGE=0謝謝閱讀SCIATXDA腳接高電平:是為那選擇2812以FLASH作為引導模式精品文檔放心下載我們在這里可以看到Flash啟動模式,需要將GPIOF4,設置為高電平,其他三個引腳狀態(tài)任意。其配置如下:精品文檔放心下載.二、向工程中添加F2812_EzDSP_FLASH_lnk.cmd文件,它是用于flash燒寫的CMD文件,用于替換原有的用于RAM中調(diào)試的F2812_EzDSP_RAM_lnk.cmd文件。精品文檔放心下載三、添加DSP281x_Headers_nonBIOS.cmd文件,用于將DSP28頭文件中的外設結構與存儲器地址對應起來;精品文檔放心下載四、添加DSP281x_CodeStartBranch.asm文件,此文件負責上電后程序執(zhí)行順序跳轉(zhuǎn)的;精品文檔放心下載.五、main函數(shù).六、編寫定義Initflash()函數(shù),并且添加語句#pragmaCODE_SECTION(InitFlash,"ramfuncs"),改語句功能是將InitFlash函數(shù)寫入RAM中,因為InitFlash經(jīng)常被調(diào)用,這樣省得每次都從flash中寫入感謝閱讀RAM。如果還有經(jīng)常反復調(diào)用的函數(shù),也可自行添加類似語句,需注意#pragmaCODE_SECTION(InitFlash,"ramfuncs")應該寫在函數(shù)Initflash()所在的C文件中,并且在函數(shù)之前聲明;謝謝閱讀七、在main函數(shù)中寫以下語句,功能是從flash中將程序復制到RAM中,謝謝閱讀memcpy(&ramfuncs_runstart,感謝閱讀&ramfuncs_loadstart,&ramfuncs_loadend-&ramfuncs_loadstart);精品文檔放心下載注意ramfuncs_runstart、ramfuncs_loadstart、ramfuncs_loadend三個變量一定要和感謝閱讀F2812_EzDSP_RAM_lnk.cmd文件中ramfuncs處的三個變量完全一致,并且這三個變量要進行全局變量精品文檔放心下載.申明八、main函數(shù)中,在memcpy之后,執(zhí)行Initflash(),接著再寫別的功能函數(shù)。感謝閱讀這些工作都做好了的話,至于在CCS中具體的燒寫操作,就很簡單了,有很多資料可以參考,注意別誤操作把flash鎖死就行。呵呵,說完了,希望能對別人有用。感謝閱讀PS:我用的3.3,所以步驟1不用..下載燒寫FLASH配套CMD文件、LIB文件以及起始代碼asm文件。CMD文件名稱:DSP281x_Headers_nonBIOS.cmd精品文檔放心下載CMD文件名稱:F2812.cmdLIB文件名稱:rts2800_ml.lib精品文檔放心下載ASM文件名稱:DSP281x_CodeStartBranch.asm另外在RAM調(diào)試時用以下兩個文件:F2812_EzDSP_RAM_lnk.cmdDSP281x_Headers_nonBIOS.cmd精品文檔放心下載PS:這些文件可在sprc097壓縮文件里面找到感謝閱讀3.配置C文件配置好主程序的C文件,才能將FLASH成功燒錄,并且將FLASH中的文件拷貝到RAM中運行。謝謝閱讀關于C文件的配置。首先在F2812.CMD文件中,我們可以看到有關于加載FLASH到RAM的內(nèi)容:感謝閱讀ramfuncs

:LOAD=FLASHD,RUN=RAML0,LOAD_START(_RamfuncsLoadStart),謝謝閱讀LOAD_END(_RamfuncsLoadEnd),精品文檔放心下載RUN_START(_RamfuncsRunStart),感謝閱讀PAGE=0.以及在C文件中調(diào)用FLASH到RAM的函數(shù)memcpy,將它放在系統(tǒng)初始化(InitSystem();)之后即可:謝謝閱讀InitSystem();memcpy(&RamfuncsRunStart,&RamfuncsLoadStart,&RamfuncsLoadEnd-&RamfuncsLoadStart);精品文檔放心下載Initflash();所以,我們需要定義所用變量:externUint16RamfuncsLoadStart;精品文檔放心下載externUint16RamfuncsLoadEnd;謝謝閱讀externUint16RamfuncsRunStart;謝謝閱讀我的這些定義都是:DSP281x_GlobalPrototypes.h當中,當然,也可以放在其他系統(tǒng)初始化的地方。精品文檔放心下載Memcpy這個函數(shù)應該是rts2800_ml.lib庫文件中自帶的,不需要我們定義。謝謝閱讀關于FLASH的初始化配置Initflash();精品文檔放心下載我把它放置在Memcpy函數(shù)之后。關于ramfuncs,則在系統(tǒng)初始化中定義即可。如:sysctrl.c中精品文檔放心下載#pra

溫馨提示

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

最新文檔

評論

0/150

提交評論