亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

在仿真環(huán)境下實現TMS320C6000系列DSP的程序自引導

時間:2024-08-02 23:54:51 理工畢業(yè)論文 我要投稿
  • 相關推薦

在仿真環(huán)境下實現TMS320C6000系列DSP的程序自引導

摘要:介紹了TMS320C6000系列DSP在仿真環(huán)境下對閃速存儲器(FLASH)的C語言編程方法,同時根據這種DSP的程序自引導機制(boot loader),介紹了從FLASH進行引導的新途徑,從而為TMS320C6000系列DSP的開發(fā)提供了一種新的思路。

開發(fā)DSP系統(tǒng)應用板,最終要脫離仿真器而獨立運行,這時就需要一個能在斷電后保存程序及初始化數據的存儲器。系統(tǒng)上電時,由引導程序將DSP的應用程序從該存儲器引導到DSP應用板上的高速存儲器(如內部SRAM,SDRAM等)中。由于FLASH具有電信號刪除功能?且刪除速度快,集成度高,因而已成為此種存儲器的首選。

將用戶程序代碼寫入FLASH的方法有兩種:第一種是用專門的FLASH編程器實現,第二種是通過系統(tǒng)微處理器與FLASH的接口來實現。第一種方法的主要優(yōu)點是使用方便可靠,但要求FLASH只能是雙列直插等一些可插拔的封裝形式,由于芯片制造工藝的提高,芯片的集成度越來越高,FLASH正向小型化、貼片式發(fā)展,從而使表面貼裝或PLCC封裝的FLASH難以利用編程器編程。第二種方法克服了第一種方法的缺點,且使用靈活,因而在DSP系統(tǒng)中的應用日益廣泛。

由于FLASH的存取速度較慢,寫入FLASH的程序將在系統(tǒng)上電時被DSP裝載到快速的存儲器中運行,這個過程稱為boot loader。不同的DSP有不同的引導方式,本文將以TMS320C6713為例來介紹TMS320C6000系列的boot loader方式。

1 FLASH的工作方式及在系統(tǒng)編程

目前,市場上的FLASH型號很多,但工作方式大體相同,下面以AM29LV160D為例進行介紹。

1.1 AM29LV160D FLASH存儲器簡介

AM29LV160D是AMD公司生產的2M×8bit/1M×16bit FLASH存儲器,它的數據寬度為8位、16位可選,采用3.3V供電,完全兼容JEDEC標準,并支持在系統(tǒng)編程,用戶只需向其內部的命令寄存器寫入命令序列即可實現部分擦除、全部擦除、數據寫入等功能;同時可提供硬件和軟件方法來檢查FLASH的操作執(zhí)行情況。

圖1

1.2 編程方法

對FLASH的在系統(tǒng)編程就是通過一定的編程命令序列來控制FLASH的工作方式,這些命令序列是一些特定字符的組合,只要向FLASH中的特定寄存器以特定的順序輸入這些字符即可進入相應的編程模式。AM29LV160D中的主要命令序列和寫入地址如圖1所示。具體說明如下:

●復位命令序列:對FLASH中任一地址寫入“F0”,即可實現復位。

● 自動選擇模式:此模式主要用于編程器編程時,由編程器根據從數據線DQ7~DQ0讀出的識別碼自動配置編程邏輯,當然也可以通過命令序列在在系統(tǒng)情況下將自動選擇碼讀出。

●編程命令序列:程序可以以字節(jié)方式或字方式寫入,這主要根據FLASH外部引腳BYTE的狀態(tài)而定。

●芯片擦除命令序列:FLASH編程時應先執(zhí)行擦除命令,這是因為編程指令只能將數據由1變?yōu)椋,反之則不行。

● 扇區(qū)擦除命令序列:為了編程方便及保護有用數據,數據擦除可以只擦除某些無用的扇區(qū)。

● 擦除暫停和恢復命令序列:這個命令序列只在進行扇區(qū)擦除時有效,它允許編程者中斷一個扇區(qū)的擦除操作,接著從沒有被擦除的扇區(qū)讀出或寫入數據。

●寫入命令:也分為字節(jié)模式和字模式,分別對應FLASH的8位和16位工作方式,具體為哪種模式,可由FLASH的BYTE腳的輸入來決定,低電平為字節(jié)模式,高電平為字模式。

在對FLASH進行編程時,FLASH提供硬件和軟件機制來獲得FLASH的狀態(tài),以確定數據寫入或擦除操作是否完成。硬件方法主要是利用FLASH的外部引腳RY/BY的輸出信號在命令序列的最后一個寫脈沖(WE)的上升沿之后有效。當該輸出為低電平時,表示FLASH正在編程或擦除中,而當該輸出腳為高電平時,即表示編程或擦除已完成。將此引腳與TMS320C671x系列DSP的ARDY引腳相連,即可實現硬件的自動編程或擦除的完成判斷。C6000系列DSP與FLASH的連線圖如圖2所示。

軟件方法是利用從FLASH數據線讀取的數據來判斷FLASH的狀態(tài),讀取數據中的主要判斷位為DQ2、DQ3、DQ5、DQ6和DQ7,它們之間的相互組合提供了幾種軟件判斷狀態(tài)的方法,應用較多且較為簡便的方法是在命令序列寫入后,如果寫入的是編程命令,則選擇一個地址,并循環(huán)讀取這個地址的數據。若裝置仍處于編程狀態(tài)之中,DQ7輸出為寫入數據的補碼,而在編程完成后,DQ7輸出的是所選地址上的正確數據。如果寫入的是擦除命令,那么?當裝置處于擦除狀態(tài)時,則DQ7輸出為0,若擦除完成或擦除被中斷?DQ7輸出為1。選擇地址時應注意:若地址所在區(qū)域屬于FLASH中的保護區(qū)域,則DQ7輸出的FLASH狀態(tài)信息有效,有效時間只能持續(xù)大約1μs,然后輸出正確數據。而擦除命令擦除的范圍如果包括FLASH中的保護區(qū)域,那么命令將被忽略,此時DQ7輸出狀態(tài)信息有效,持續(xù)時間大約100μs。對FLASH的操作有時會出錯,出錯時,FLASH將處于不正常狀態(tài),DQ7可能永遠也不會輸出地址上的正確數據,此時就需讀取DQ5的輸出信息,若為1則表示操作失敗。其軟件流程圖如圖3所示。

對FLASH的編程既可以用匯編語言,也可以用C語言,以下給出部分C代碼。該程序代碼可采用TI公司專門用于TI公司系列DSP編程的Code Com-poser Studio 編程工具進行編寫。

void erase_flash(short * flash_ptr)

{

short * ctrl_addr1=(short *)((int)flash_ptr+(0x555<<2));

/*此處0x555地址左移兩位,按16位存儲器來看,本來只需左移一位,但在計算式中?地址flash_ptr是先轉換成int型再計算的,而要寫入命令的地址0x555為16位地址,所以需乘2,

【在仿真環(huán)境下實現TMS320C6000系列DSP的程序自引導】相關文章:

DSP56362的雙引導裝載方法研究與實現03-18

利用Flash實現DSP對多個程序有選擇的加載03-19

TMS320C6x DSP的FLASH引導方法研究與實現03-18

用Windows終端仿真程序實現微機遠程文件傳送03-18

FFT算法的研究與DSP實現03-07

重配置環(huán)境下CPC的研究與仿真03-07

CF卡與雙核DSP的實現03-18

TMS320C54XX系列DSP與PC機間串行通信的實現03-18

為DSP程序的構造的加密體制03-18