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

當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計自動化
[導(dǎo)讀]TI公司的DSP芯片TMS320Vc5410(簡稱5410)是性能卓越的低功耗定點DSP,在嵌入式系統(tǒng)中有著廣泛的應(yīng)用。5410沒有自帶的片上非易失性存儲器,因此需要外部的非易失性存儲介質(zhì),如EPROM或Flash,來存儲程序和數(shù)據(jù)。5410片

TI公司的DSP芯片TMS320Vc5410(簡稱5410)是性能卓越的低功耗定點DSP,在嵌入式系統(tǒng)中有著廣泛的應(yīng)用。5410沒有自帶的片上非易失性存儲器,因此需要外部的非易失性存儲介質(zhì),如EPROM或Flash,來存儲程序和數(shù)據(jù)。5410片內(nèi)有64 K字RAM,由于在片內(nèi)RAM運行程序比片外運行有高速度低功耗等顯著優(yōu)點,通常上電后都需要從片外EPROM或Flash上加載程序到片內(nèi)RAM,但是芯片自帶的自舉程序(簡稱BootLoader)只支持32 K字以內(nèi)的外部程序加載,因此程序設(shè)計往往局限于32 K字空間內(nèi),限制了編程的靈活性,不能充分發(fā)揮5410的性能。當(dāng)程序空問大于32 K字時,就需要自己編寫程序來實現(xiàn)自舉。下面首先介紹使用5410對Am29LV200BFlash存儲器進(jìn)行程序分頁燒寫的方法,然后重點介紹利用Bootloader來編程實現(xiàn)多頁并行自舉引導(dǎo)的方法。

1 Am29LV200B Flash 存儲器的分頁燒寫

1.1 FIash 存儲器簡介

Am29LV200B(簡稱Flash)是AMD公司生產(chǎn)的Flash存儲器,主要特點有:3 V單電源供電,可內(nèi)部產(chǎn)生高電壓進(jìn)行編程和擦除操作;支持JEDEC單電源Flash存儲器標(biāo)準(zhǔn);只需向其命令寄存器寫人標(biāo)準(zhǔn)的微處理器指令,具體編程、擦除操作由內(nèi)部嵌入的算法實現(xiàn),并且可以通過查詢特定的引腳或數(shù)據(jù)線監(jiān)控操作是否完成;可以對任一扇區(qū)進(jìn)行讀、寫或擦除操作,而不影響其他部分的數(shù)據(jù)。文中128K×16位Am29LV200B Flash映射為5410的片外數(shù)據(jù)存儲空間,地址為:0x8000~0xFFFF,數(shù)據(jù)總線16位,用于16位方式的并行引導(dǎo)裝載。128K的Flash被分為7頁進(jìn)行訪問。本文通過DSP的I/O端口向FPGA寫控制字,由FPGA控制Flash的換頁引腳對各個分頁進(jìn)行訪問;以燒寫2個頁面為例,使用Flash的第1、2頁,初始化時選中第l頁。

1.2 Flash 存儲器的分頁燒寫

Flash的頁面分配和相應(yīng)的引腳控制如表1所列。關(guān)于Am29LV200B的擦除、寫、校驗等詳細(xì)操作。從表1可以看到,通過對A16、A15等地址引腳的控制,可以實現(xiàn)Flash的頁面切換。在燒寫過程中,只要在指定頁面燒寫完預(yù)定空間后就對Flash進(jìn)行換頁,然后將燒寫指針指向新的一頁的首地址,就可以繼續(xù)進(jìn)行燒寫,當(dāng)程序燒寫完成后需要將頁面換回到第1頁,在第1頁的FFFFH地址寫入8000H,這樣Bootloader可以從這一頁開始自舉。整個燒寫程序流程如圖1所示。

flash分頁燒寫流程

這里會出現(xiàn)一個問題:程序燒寫好后,雖然Bootloader可以自動加載程序,但是Bootloader怎樣在加載過程中自動換頁?下面詳細(xì)介紹利用片上Bootloader編程實現(xiàn)多頁程序并行加載的方法。

2 多頁并行加載的實現(xiàn)

實現(xiàn)多頁加載,關(guān)鍵問題是要讓Bootloader知道什么時候可以換頁;但是Bootloader是固化在5410片上ROM內(nèi)的,無法對其進(jìn)行編程。解決的方法是通過自己編寫一段“前導(dǎo)”加載程序(簡稱Loader)來實現(xiàn)加載中的換頁:首先將Loader和用戶程序都燒寫到Flash中,當(dāng)系統(tǒng)上電后,Bootloader將Loader加載到片上并運行,然后Loader將Flash中的用戶程序加載到目標(biāo)RAM空間。這個加載過程是用戶編程可控的,因此在需要換頁時,可以控制Flash進(jìn)行換頁,加載完成后,Loader跳轉(zhuǎn)到用戶程序的人口地址處運行用戶程序。

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

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

5410并行自舉表結(jié)構(gòu)

可以多頁并行自舉的自舉表


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

  2.2 Loader程序的具體實現(xiàn)

下面以分布在2個Flash頁面的程序為例,給出5410并行自舉的示例程序。程序中,當(dāng)I/O端口5寫人數(shù)據(jù)O時,選中Flash第1頁;寫1時選中第2頁。程序里用黑體字標(biāo)出的注釋部分,是Loader程序設(shè)計的重點或難點。

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

①在換頁時,一般情況下程序段都會跨越兩個頁面,因此在確定需要換頁時要計算出第1頁和第2頁分別要加載的段長度。

②整個用戶程序段開始時有2個字的入口信息,每一個程序段都有3個字的段信息,因此需要在Flash讀取計數(shù)時給予修正,才能正確加載數(shù)據(jù)。

③在確定需要換頁時要將換頁標(biāo)志置為1,換頁后要將換頁標(biāo)志置為0,而且換頁后要將數(shù)據(jù)讀取指針指向第2頁的開頭地址。

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

多頁并行自舉流程


3 總 結(jié)

要實現(xiàn)5410的多頁程序并行自舉,有如下幾個步驟:

①根據(jù)用戶程序的需求以及實際使用Flash的分頁設(shè)置,參考第2部分提供的思路和例子編寫Loader程序;

②使用hex500代碼轉(zhuǎn)化工具分別生成Loader程序和用戶程序的自舉表;

③將兩個自舉表按圖2的格式生成一個新的自舉表,再使用第1部分介紹的方法將新的自舉表分頁燒寫到Flash上。

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



參考文獻(xiàn):

[1].EPROMdatasheethttp://www.dzsc.com/datasheet/EPROM_1128137.html.
[2].Am29LV200Bdatasheethttp://www.dzsc.com/datasheet/Am29LV200B_1080554.html.
[3].A16datasheethttp://www.dzsc.com/datasheet/A16_1819409.html.
[4].A15datasheethttp://www.dzsc.com/datasheet/A15_1244519.html.


來源:零八我的愛0次

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

在這篇文章中,小編將對PLC的相關(guān)內(nèi)容和情況加以介紹以幫助大家增進(jìn)對它的了解程度,和小編一起來閱讀以下內(nèi)容吧。

關(guān)鍵字: PLC 模塊化 程序

對程序進(jìn)行優(yōu)化,通常是指優(yōu)化程序代碼或程序執(zhí)行速度。優(yōu)化代碼和優(yōu)化速度實際上是一個予盾的統(tǒng)一。一般是優(yōu)化了代碼的尺寸,就會帶來執(zhí)行時間的增加;如果優(yōu)化了程序的執(zhí)行速度,通常會帶來代碼增加的副作用。很難魚與熊掌兼得,只能在...

關(guān)鍵字: 單片機 程序

一個程序首先要保證正確性,在保證正確性的基礎(chǔ)上,性能也是一個重要的考量。要編寫高性能的程序,必須選擇合適的算法和數(shù)據(jù)結(jié)構(gòu)。

關(guān)鍵字: CPU 程序 緩存

仿真的概念其實使用非常廣,最終的含義就是使用可控的手段來模仿真實的情況。在嵌入式系統(tǒng)的設(shè)計中,仿真應(yīng)用的范圍主要集中在對程序的仿真上。

關(guān)鍵字: 單片機 仿真器 程序

步進(jìn)電動機是將電脈沖激勵信號轉(zhuǎn)換成相應(yīng)的角位移或線位移的離散值控制電動機,這種電動機每當(dāng)輸入一個電脈沖就動一步,所以又稱脈沖電動機。

關(guān)鍵字: 步進(jìn)電機 正反轉(zhuǎn) 程序

KeilμVision4是Keil軟件公司為8051系列微控制器及其兼容產(chǎn)品設(shè)計的集成式軟件開發(fā)環(huán)境。μVision4集成了C51編譯器和A51匯編器,其界面類似于Microsoft VS,支持C語言和匯編語言程序的編寫...

關(guān)鍵字: 程序 編譯 鏈接

雙方各執(zhí)一詞,誰也不退讓,吳雄昂的身份成為薛定諤的貓:在Arm公司眼中,他已經(jīng)被罷免一切職位;在安謀中國聲明里,吳仍然一切照常。這種疊加態(tài)或許還會持續(xù)一段時間,但疊加態(tài)應(yīng)該很快就會塌縮成一個確定結(jié)果。同樣,安謀中國董事會...

關(guān)鍵字: ARM 中國董事會 程序

除了指令空間,自定義指令對應(yīng)的程序出入口也有嚴(yán)格限制。自定義指令在使用過程中出現(xiàn)任何錯誤時,Arm的工具鏈都能及時對其進(jìn)行識別、提取,并且進(jìn)行相應(yīng)的控制。目前也已經(jīng)有第三方編譯器,可以識別自定義指令集可能會出現(xiàn)的錯誤。專...

關(guān)鍵字: 指令空間 程序 ARM

如果說一眾美國科技公司遵循特朗普命令斷供華為,還算某種程度上維護(hù)所謂程序正義不得已而為之;那么各路本應(yīng)對政治保持中立的國際技術(shù)標(biāo)準(zhǔn)組織,先后宣布剔除華為成員資格,絕對算助紂為虐;而聯(lián)邦快遞將華為委托寄送目的地為中國的快遞...

關(guān)鍵字: 快遞 華為 程序

在軟件開發(fā)過程中,我們希望軟件可以運行無誤。但是常常事與愿違,程序經(jīng)常跑飛,或者卡死。原因有很多,有可能是因為軟件系統(tǒng)設(shè)計的原因,或者外部傳感器的失效,再或者是程序的Bug等。為了防止程序在出現(xiàn)問題之后,可以順利復(fù)位和重...

關(guān)鍵字: 軟件 程序 傳感器
關(guān)閉