www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 智能硬件 > 智能硬件
[導(dǎo)讀]以TMS320VC5410為例,介紹對(duì)Am29LV200B Flash存儲(chǔ)器進(jìn)行程序分頁燒寫以及上電后多頁用戶程序并行自舉的方法。

摘  要:以TMS320VC5410為例,介紹對(duì)Am29LV200B Flash存儲(chǔ)器進(jìn)行程序分頁燒寫以及上電后多頁用戶程序并行自舉的方法。對(duì)多頁Flash存儲(chǔ)器的燒寫,須在燒寫過程中對(duì)已燒寫的數(shù)據(jù)長度進(jìn)行動(dòng)態(tài)判斷,當(dāng)達(dá)到預(yù)定燒寫長度后對(duì)Flash進(jìn)行換頁,然后繼續(xù)燒寫,重復(fù)上述換頁過程,直到程序燒寫完為止。對(duì)多頁程序的并行自舉,在系統(tǒng)上電后,利用TI提供的自舉程序,將一個(gè)用戶自己編寫的前導(dǎo)程序載入DSP,利用該前導(dǎo)程序?qū)⒍囗摮绦蜉d入DSP來實(shí)現(xiàn)程序的自舉。此方法適用于多種FIash芯片和C5000系列DSP。
關(guān)鍵詞: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對(duì)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)控操作是否完成;可以對(duì)任一扇區(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的換頁引腳對(duì)各個(gè)分頁進(jìn)行訪問;以燒寫2個(gè)頁面為例,使用Flash的第1、2頁,初始化時(shí)選中第l頁。

1.2 Flash 存儲(chǔ)器的分頁燒寫

    Flash的頁面分配和相應(yīng)的引腳控制如表1所列。關(guān)于Am29LV200B的擦除、寫、校驗(yàn)等詳細(xì)操作,請(qǐng)見參考文獻(xiàn)[1]、[2]。

    從表1可以看到,通過對(duì)A16、A15等地址引腳的控制,可以實(shí)現(xiàn)Flash的頁面切換。在燒寫過程中,只要在指定頁面燒寫完預(yù)定空間后就對(duì)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)的,無法對(duì)其進(jìn)行編程。解決的方法是通過自己編寫一段“前導(dǎo)”加載程序(簡稱Loader)來實(shí)現(xiàn)加載中的換頁:首先將Loader和用戶程序都燒寫到Flash中,當(dāng)系統(tǒng)上電后,Bootloader將Loader加載到片上并運(yùn)行,然后Loader將Flash中的用戶程序加載到目標(biāo)RAM空間。這個(gè)加載過程是用戶編程可控的,因此在需要換頁時(shí),可以控制Flash進(jìn)行換頁,加載完成后,Loader跳轉(zhuǎn)到用戶程序的人口地址處運(yùn)行用戶程序。

2.1 Bootloader的并行自舉表結(jié)構(gòu)和編程后的自舉表結(jié)構(gòu)

    5410的并行加載過程以及生成并行自舉表的詳細(xì)方法請(qǐng)見參考文獻(xiàn)[1]、[3]。Bootloader使用圖2所示的并行自舉表來加載程序。Bootloader從表頭開始依次讀取自舉表,然后將相應(yīng)的程序段加載到目標(biāo)RAM,最后以程序段大小為0來結(jié)束自舉表的讀取,跳轉(zhuǎn)到用戶程序入口地址執(zhí)行用戶程序。從圖2可以看到,Bootloader是以自舉表中的程序長度為0來結(jié)束自舉的,于是就可以利用這個(gè)特性,給Bootloader制造一個(gè)“假象”,讓Bootloader在加載完Loader程序后,認(rèn)為程序已經(jīng)加載完畢,然后開始運(yùn)行Loader程序,繼續(xù)加載用戶程序。按照這個(gè)思路,可以建立圖3所示的自舉表。

    圖3中的黑體字部分,是嵌入了Loader程序的自舉表,有了圖3這樣形式的并行自舉表,系統(tǒng)就可以實(shí)現(xiàn)多頁程序的并行自舉。建立這樣的自舉表很簡單,只需要將hex500格式轉(zhuǎn)換工具生成的Loader的并行自舉表和用戶程序的并行自舉表按圖3給定的格式,通過簡單的文件操作合并在一起就可以了。注意:Loader程序要占用一部分RAM空間,用戶程序空間不能和Loader的RAM空間重疊在一起。

2.2 Loader程序的具體實(shí)現(xiàn)
    下面以分布在2個(gè)Flash頁面的程序?yàn)槔o出5410并行自舉的示例程序。程序中,當(dāng)I/O端口5寫人數(shù)據(jù)O時(shí),選中Flash第1頁;寫1時(shí)選中第2頁。程序里用黑體字標(biāo)出的注釋部分,是Loader程序設(shè)計(jì)的重點(diǎn)或難點(diǎn)。(具體程序見本刊網(wǎng)站www.mesnet.com.cn——編者注)

    示例程序中,DSP上電后,Bootloader將Loader程序加載到RAM中,然后執(zhí)行Loader程序:Loadelr程序從Flash第1頁的8080H開始讀取用戶程序自舉表,當(dāng)Flash讀取計(jì)數(shù)值超過31 K時(shí),將Flash切換到頁面2,繼續(xù)加載,自舉完成后,跳轉(zhuǎn)到用戶程序入口地址執(zhí)行用戶程序。在編寫自舉程序過程中,有這樣幾個(gè)問題需要注意:

    ①在換頁時(shí),一般情況下程序段都會(huì)跨越兩個(gè)頁面,因此在確定需要換頁時(shí)要計(jì)算出第1頁和第2頁分別要加載的段長度。
    ②整個(gè)用戶程序段開始時(shí)有2個(gè)字的入口信息,每一個(gè)程序段都有3個(gè)字的段信息,因此需要在Flash讀取計(jì)數(shù)時(shí)給予修正,才能正確加載數(shù)據(jù)。
    ③在確定需要換頁時(shí)要將換頁標(biāo)志置為1,換頁后要將換頁標(biāo)志置為0,而且換頁后要將數(shù)據(jù)讀取指針指向第2頁的開頭地址。

    如果要使用本文的示例程序,一定要將Loader程序燒寫到Flash第1頁8000H的位置,用戶程序段燒寫到8080H以后的位置。再次提醒,Loader程序加載到RAM中的地址,不能和用戶程序段加載到RAM中的地址重疊。例如Loader使用了RAM中的7F80H~8000H這段空間,則用戶程序不能使用這段空間,否則會(huì)出現(xiàn)錯(cuò)誤。Loader的自舉流程如圖4所示。

3  總 結(jié)
    要實(shí)現(xiàn)5410的多頁程序并行自舉,有如下幾個(gè)步驟:
    ①根據(jù)用戶程序的需求以及實(shí)際使用Flash的分頁設(shè)置,參考第2部分提供的思路和例子編寫Loader程序;
    ②使用hex500代碼轉(zhuǎn)化工具分別生成Loader程序和用戶程序的自舉表;
    ③將兩個(gè)自舉表按圖2的格式生成一個(gè)新的自舉表,再使用第1部分介紹的方法將新的自舉表分頁燒寫到Flash上。

    使用本文介紹的方法,通過多次試驗(yàn),系統(tǒng)上電后,能夠很好地實(shí)現(xiàn)2個(gè)頁面程序的并行自舉。雖然是以2個(gè)頁面為例介紹Flash燒寫和并行自舉的方法,但是對(duì)于2頁以上的程序燒寫和并行自舉同樣適用,只需要進(jìn)行一些細(xì)微的改動(dòng)即可。本文提供的方法以不到128字的RAM空間代價(jià),在5410上實(shí)現(xiàn)了將大于32 K字的程序并行自舉到片上RAM,大大提高了編程的自由度和程序的運(yùn)行速度,降低了系統(tǒng)功耗。這個(gè)方法有很強(qiáng)的通用性,可以在很多存在類似問題的DSP芯片(5409、5416等)上進(jìn)行應(yīng)用,具有較高的實(shí)用價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉