分頁燒寫Flash的多頁程序并行自舉方法
發(fā)布時(shí)間:2008/5/27 0:00:00 訪問次數(shù):607
    
    
    來源:單片機(jī)及嵌入式系統(tǒng)應(yīng)用 作者:兵器工業(yè)第58研究所 左顥睿 李焱 馬艷
    
    摘 要:以tms320vc5410-p.htm" target="_blank" title="tms320vc5410貨源和pdf資料">tms320vc5410為例,介紹對am29lv200b flash存儲(chǔ)器進(jìn)行程序分頁燒寫以及上電后多頁用戶程序并行自舉的方法。對多頁flash存儲(chǔ)器的燒寫,須在燒寫過程中對已燒寫的數(shù)據(jù)長度進(jìn)行動(dòng)態(tài)判斷,當(dāng)達(dá)到預(yù)定燒寫長度后對flash進(jìn)行換頁,然后繼續(xù)燒寫,重復(fù)上述換頁過程,直到程序燒寫完為止。對多頁程序的并行自舉,在系統(tǒng)上電后,利用ti提供的自舉程序,將一個(gè)用戶自己編寫的前導(dǎo)程序載入dsp,利用該前導(dǎo)程序?qū)⒍囗摮绦蜉d入dsp來實(shí)現(xiàn)程序的自舉。此方法適用于多種fiash芯片和c5000系列dsp。
    
    關(guān)鍵詞:tms320vc5410-p.htm" target="_blank" title="tms320vc5410貨源和pdf資料">tms320vc5410 am29lv200b dsp 多頁并行自舉
    
    ti公司的dsp芯片tms320vc5410(簡稱5410)是性能卓越的低功耗定點(diǎn)dsp,在嵌入式系統(tǒng)中有著廣泛的應(yīng)用。5410沒有自帶的片上非易失性存儲(chǔ)器,因此需要外部的非易失性存儲(chǔ)介質(zhì),如eprom或flash,來存儲(chǔ)程序和數(shù)據(jù)。5410片內(nèi)有64 k字ram,由于在片內(nèi)ram運(yùn)行程序比片外運(yùn)行有高速度低功耗等顯著優(yōu)點(diǎn),通常上電后都需要從片外eprom或flash上加載程序到片內(nèi)ram,但是芯片自帶的自舉程序(簡稱bootloader)只支持32 k字以內(nèi)的外部程序加載,因此程序設(shè)計(jì)往往局限于32 k字空間內(nèi),限制了編程的靈活性,不能充分發(fā)揮5410的性能。當(dāng)程序空問大于32 k字時(shí),就需要自己編寫程序來實(shí)現(xiàn)自舉。下面首先介紹使用5410對am29lv200bflash存儲(chǔ)器進(jìn)行程序分頁燒寫的方法,然后重點(diǎn)介紹利用bootloader來編程實(shí)現(xiàn)多頁并行自舉引導(dǎo)的方法。
    
    1 am29lv200b flash 存儲(chǔ)器的分頁燒寫
    
    1.1 fiash 存儲(chǔ)器簡介
    
    am29lv200b(簡稱flash)是amd公司生產(chǎn)的flash存儲(chǔ)器,主要特點(diǎn)有:3 v單電源供電,可內(nèi)部產(chǎn)生高電壓進(jìn)行編程和擦除操作;支持jedec單電源flash存儲(chǔ)器標(biāo)準(zhǔn);只需向其命令寄存器寫人標(biāo)準(zhǔn)的微處理器指令,具體編程、擦除操作由內(nèi)部嵌入的算法實(shí)現(xiàn),并且可以通過查詢特定的引腳或數(shù)據(jù)線監(jiān)控操作是否完成;可以對任一扇區(qū)進(jìn)行讀、寫或擦除操作,而不影響其他部分的數(shù)據(jù)。文中128k×16位am29lv200b flash映射為5410的片外數(shù)據(jù)存儲(chǔ)空間,地址為:0x8000~0xffff,數(shù)據(jù)總線16位,用于16位方式的并行引導(dǎo)裝載。128k的flash被分為7頁進(jìn)行訪問。本文通過dsp的i/o端口向fpga寫控制字,由fpga控制flash的換頁引腳對各個(gè)分頁進(jìn)行訪問;以燒寫2個(gè)頁面為例,使用flash的第1、2頁,初始化時(shí)選中第l頁。
    
    1.2 flash 存儲(chǔ)器的分頁燒寫
    
    flash的頁面分配和相應(yīng)的引腳控制如表1所列。關(guān)于am29lv200b的擦除、寫、校驗(yàn)等詳細(xì)操作,請見參考文獻(xiàn)[1]、[2]。
    
    
    從表1可以看到,通過對a16、a15等地址引腳的控制,可以實(shí)現(xiàn)flash的頁面切換。在燒寫過程中,只要在指定頁面燒寫完預(yù)定空間后就對flash進(jìn)行換頁,然后將燒寫指針指向新的一頁的首地址,就可以繼續(xù)進(jìn)行燒寫,當(dāng)程序燒寫完成后需要將頁面換回到第1頁,在第1頁的ffffh地址寫入8000h,這樣bootloader可以從這一頁開始自舉。整個(gè)燒寫程序流程如圖1所示。
    
    
    
    這里會(huì)出現(xiàn)一個(gè)問題:程序燒寫好后,雖然bootloader可以自動(dòng)加載程序,但是bootloader怎樣在加載過程中自動(dòng)換頁?下面詳細(xì)介紹利用片上bootloader編程實(shí)現(xiàn)多頁程序并行加載的方法。
    
    2 多頁并行加載的實(shí)現(xiàn)
    
    實(shí)現(xiàn)多頁加載,關(guān)鍵問題是要讓bootloader知道什么時(shí)候可以換頁;但是bootloader是固化在5410片上rom內(nèi)的,無法對其進(jìn)行編程。解決的方法是通過自己編寫一段“前導(dǎo)”加載程序(簡稱loader)來實(shí)現(xiàn)加載中的換頁:首先將loader和用戶程序都燒寫到flash中,當(dāng)系統(tǒng)上電后,bootloader將loader加載到片上并運(yùn)行,然后loader將flash
    
    
    來源:單片機(jī)及嵌入式系統(tǒng)應(yīng)用 作者:兵器工業(yè)第58研究所 左顥睿 李焱 馬艷
    
    摘 要:以tms320vc5410-p.htm" target="_blank" title="tms320vc5410貨源和pdf資料">tms320vc5410為例,介紹對am29lv200b flash存儲(chǔ)器進(jìn)行程序分頁燒寫以及上電后多頁用戶程序并行自舉的方法。對多頁flash存儲(chǔ)器的燒寫,須在燒寫過程中對已燒寫的數(shù)據(jù)長度進(jìn)行動(dòng)態(tài)判斷,當(dāng)達(dá)到預(yù)定燒寫長度后對flash進(jìn)行換頁,然后繼續(xù)燒寫,重復(fù)上述換頁過程,直到程序燒寫完為止。對多頁程序的并行自舉,在系統(tǒng)上電后,利用ti提供的自舉程序,將一個(gè)用戶自己編寫的前導(dǎo)程序載入dsp,利用該前導(dǎo)程序?qū)⒍囗摮绦蜉d入dsp來實(shí)現(xiàn)程序的自舉。此方法適用于多種fiash芯片和c5000系列dsp。
    
    關(guān)鍵詞:tms320vc5410-p.htm" target="_blank" title="tms320vc5410貨源和pdf資料">tms320vc5410 am29lv200b dsp 多頁并行自舉
    
    ti公司的dsp芯片tms320vc5410(簡稱5410)是性能卓越的低功耗定點(diǎn)dsp,在嵌入式系統(tǒng)中有著廣泛的應(yīng)用。5410沒有自帶的片上非易失性存儲(chǔ)器,因此需要外部的非易失性存儲(chǔ)介質(zhì),如eprom或flash,來存儲(chǔ)程序和數(shù)據(jù)。5410片內(nèi)有64 k字ram,由于在片內(nèi)ram運(yùn)行程序比片外運(yùn)行有高速度低功耗等顯著優(yōu)點(diǎn),通常上電后都需要從片外eprom或flash上加載程序到片內(nèi)ram,但是芯片自帶的自舉程序(簡稱bootloader)只支持32 k字以內(nèi)的外部程序加載,因此程序設(shè)計(jì)往往局限于32 k字空間內(nèi),限制了編程的靈活性,不能充分發(fā)揮5410的性能。當(dāng)程序空問大于32 k字時(shí),就需要自己編寫程序來實(shí)現(xiàn)自舉。下面首先介紹使用5410對am29lv200bflash存儲(chǔ)器進(jìn)行程序分頁燒寫的方法,然后重點(diǎn)介紹利用bootloader來編程實(shí)現(xiàn)多頁并行自舉引導(dǎo)的方法。
    
    1 am29lv200b flash 存儲(chǔ)器的分頁燒寫
    
    1.1 fiash 存儲(chǔ)器簡介
    
    am29lv200b(簡稱flash)是amd公司生產(chǎn)的flash存儲(chǔ)器,主要特點(diǎn)有:3 v單電源供電,可內(nèi)部產(chǎn)生高電壓進(jìn)行編程和擦除操作;支持jedec單電源flash存儲(chǔ)器標(biāo)準(zhǔn);只需向其命令寄存器寫人標(biāo)準(zhǔn)的微處理器指令,具體編程、擦除操作由內(nèi)部嵌入的算法實(shí)現(xiàn),并且可以通過查詢特定的引腳或數(shù)據(jù)線監(jiān)控操作是否完成;可以對任一扇區(qū)進(jìn)行讀、寫或擦除操作,而不影響其他部分的數(shù)據(jù)。文中128k×16位am29lv200b flash映射為5410的片外數(shù)據(jù)存儲(chǔ)空間,地址為:0x8000~0xffff,數(shù)據(jù)總線16位,用于16位方式的并行引導(dǎo)裝載。128k的flash被分為7頁進(jìn)行訪問。本文通過dsp的i/o端口向fpga寫控制字,由fpga控制flash的換頁引腳對各個(gè)分頁進(jìn)行訪問;以燒寫2個(gè)頁面為例,使用flash的第1、2頁,初始化時(shí)選中第l頁。
    
    1.2 flash 存儲(chǔ)器的分頁燒寫
    
    flash的頁面分配和相應(yīng)的引腳控制如表1所列。關(guān)于am29lv200b的擦除、寫、校驗(yàn)等詳細(xì)操作,請見參考文獻(xiàn)[1]、[2]。
    
    
    從表1可以看到,通過對a16、a15等地址引腳的控制,可以實(shí)現(xiàn)flash的頁面切換。在燒寫過程中,只要在指定頁面燒寫完預(yù)定空間后就對flash進(jìn)行換頁,然后將燒寫指針指向新的一頁的首地址,就可以繼續(xù)進(jìn)行燒寫,當(dāng)程序燒寫完成后需要將頁面換回到第1頁,在第1頁的ffffh地址寫入8000h,這樣bootloader可以從這一頁開始自舉。整個(gè)燒寫程序流程如圖1所示。
    
    
    
    這里會(huì)出現(xiàn)一個(gè)問題:程序燒寫好后,雖然bootloader可以自動(dòng)加載程序,但是bootloader怎樣在加載過程中自動(dòng)換頁?下面詳細(xì)介紹利用片上bootloader編程實(shí)現(xiàn)多頁程序并行加載的方法。
    
    2 多頁并行加載的實(shí)現(xiàn)
    
    實(shí)現(xiàn)多頁加載,關(guān)鍵問題是要讓bootloader知道什么時(shí)候可以換頁;但是bootloader是固化在5410片上rom內(nèi)的,無法對其進(jìn)行編程。解決的方法是通過自己編寫一段“前導(dǎo)”加載程序(簡稱loader)來實(shí)現(xiàn)加載中的換頁:首先將loader和用戶程序都燒寫到flash中,當(dāng)系統(tǒng)上電后,bootloader將loader加載到片上并運(yùn)行,然后loader將flash
熱門點(diǎn)擊
- 高速大容量SRAM
- 用存儲(chǔ)器映射的方法實(shí)現(xiàn)片外FLASH的擦寫
- 高速雙口RAM IDT7026的原理和應(yīng)用
- 新架構(gòu)SRAM消除“軟錯(cuò)誤”威脅
- 基于I2S的USB 聲卡系統(tǒng)設(shè)計(jì)
- SST89E/V58RD2和SST89E/V
- AT45DB081B在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
- 內(nèi)含CalmRISC CPU的8位單片機(jī)S3
- 基于VxWorks的FLASH存儲(chǔ)器實(shí)時(shí)存取
- IDT7007高速雙端口RAM及其應(yīng)用
推薦技術(shù)資料
- 循線機(jī)器人是機(jī)器人入門和
- 循線機(jī)器人是機(jī)器人入門和比賽最常用的控制方式,E48S... [詳細(xì)]
- 電源管理 IC (PMIC)&
- I2C 接口和 PmBUS 以及 OTP/M
- MOSFET 和柵極驅(qū)動(dòng)器單
- 數(shù)字恒定導(dǎo)通時(shí)間控制模式(CO
- Power Management Buck/
- 反激變換器傳導(dǎo)和輻射電磁干擾分析和抑制技術(shù)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究