數字信號處理器的boot啟動方法及其啟動裝置的制造方法
【技術領域】
[0001]本發明屬于嵌入式軟硬件系統領域,具體涉及一種數字信號處理器的boot啟動方法和一種boot程序的啟動裝置。
【背景技術】
[0002]Boot loader是嵌入式系統在加電后執行的第一段代碼,它完成CPU和相關硬件的初始化之后,再將固化的嵌入式應用程序裝載到內存中,然后跳轉到應用程序所在的內存空間的入口地址,啟動應用程序運行。
[0003]對于嵌入式系統,boot loader是基于特定硬件平臺來實現的。因此,幾乎不可能為所有的嵌入式系統建立一個通用的boot loader,不同的處理器架構都有不同的bootloader。Boot loader不但依賴于CPU的體系結構,而且依賴于嵌入式系統板級設備的配置。
[0004]對于數字信號處理器,一般片上的ROM空間內芯片生產商會固化相應的bootloader,方便用戶使用。例如TI公司C54x系列處理器上電自舉方式有:1)處理器通信口HPI方式,通過DSP芯片與PC機或DSP芯片之間的主機通信端口實現;2)8位或16位并行EPR0M,通過DSP內核的DMA通道實現;3)8位或16位并行I/O方式,通過DSP外部并行I/O接口實現;4)8位或16位串行口方式,通過DSP的串行端口實現。
[0005]以上各種方式的boot loader程序都有其固定格式的boot表,用來實現用戶程序的上電自舉。這些自舉加載方法牽涉到了外設接口和外圍芯片,用戶需要嚴格遵守相關的設計要求,才能成功自舉加載相應程序,對于復雜的應用程序,使用起來不靈活。當處理數據量較大的應用程序,很難達到實時處理的效果。
【發明內容】
[0006]本發明要解決的技術問題是:提供一種能夠節約內存空間、實時加載應用程序的數字信號處理器的boot啟動方法。
[0007]本發明要解決的另一技術問題是:提供一種能夠實時加載應用程序的boot程序的啟動裝置。
[0008]本發明解決其技術問題所采用的技術方案是:一種數字信號處理器的boot啟動方法,所述boot程序存儲在數字信號處理器的應用程序存儲頁內,啟動頁與存儲boot程序的應用程序存儲頁頁共享,通過地址譯碼器,啟動頁與存儲boot程序的應用程序存儲頁的地址空間映射在同一塊外部存儲器上,所述boot啟動方法包括如下步驟:
1)、外部MP/MC Pin拉高,MP/MC=1、OVLY=U DR0M=0,上電或復位數字信號處理器,根據與數字信號處理器連接的外部存儲器的指令,執行啟動頁程序,根據頁共享機制,跳轉到存儲boot程序的應用程序存儲頁執行boot程序;
2)、初始化數字信號處理器和相關外圍設備;
3)、重新映射數字信號處理器的內存空間,為應用程序準備RAM空間; 4)、啟動DMA,將外部存儲器上的代碼和數據分別搬移到相應的內部存儲器上;
5)、設置堆棧;
6)、跳轉到應用程序所在的內存空間的入口地址,啟動應用程序運行。
[0009]具體的,步驟2)中對數字信號處理器的時鐘和外部總線頻率功能進行初始化。
[0010]具體的,步驟3)中設置 PMST=OxOla8,MP/MC=0。
[0011]一種boot程序的啟動裝置包括:具有分頁存儲功能數字信號處理器、地址譯碼器和多個外部存儲器,所述數字信號處理器的地址線分為兩部分,一部分地址線直接外部存儲器的地址線連接,用于讀寫數據;另一部分地址線與地址譯碼器連接,地址譯碼器分別與外部存儲器連接,地址譯碼器進行譯碼處理,選擇外部存儲器。
[0012]本發明的有益效果在于:本發明將boot程序通過頁機制放入應用程序的存儲頁中,通過頁共享將放有boot程序的應用程序存儲頁與啟動頁實現共享,通過地址譯碼器實現啟動頁與放有boot程序的應用程序存儲頁的地址空間映射在同一塊的固態存儲器上,有效節約了存儲器的容量空間,提高了信號處理速度,實現了實時處理的效果。
【附圖說明】
[0013]下面結合附圖和實施例對本發明進一步說明。
[0014]圖1是boot程序的啟動裝置的結構示意圖。
[0015]圖2是boot啟動程序流程圖。
[0016]圖3是本發明中應用程序的存儲空間分配圖。
[0017]圖4是本發明中boot程序共享映射存儲器的示意圖。
【具體實施方式】
[0018]現在結合附圖對本發明作進一步詳細的說明。這些附圖均為簡化的示意圖,僅以示意方式說明本發明的基本結構,因此其僅顯示與本發明有關的構成。
[0019]如圖1所示,本發明所述的一種boot程序的啟動裝置包括:具有分頁存儲功能數字信號處理器、地址譯碼器和多外部部存儲器,所述數字信號處理器的地址線分為兩部分,一部分地址線直接外部存儲器的地址線連接,用于讀寫數據;另一部分地址線與地址譯碼器連接,地址譯碼器分別與外部存儲器連接,地址譯碼器進行譯碼處理,選擇外部存儲器。
[0020]本發明的實施例中采用的數字信號處理器為TI公司C54x系列處理器。所述C54x系列處理器包含3個獨立的存儲空間,程序、數據和I/O空間。程序空間的可尋址范圍為8MX 16bit ;數據空間的可尋址范圍為64KX 16bit,I/O空間的可尋址范圍為64KX 16bit。該C54x系列處理器片上存儲器包含可屏蔽ROM,單訪問SARAM,雙訪問DARAM。ROM存放了已固化的boot loader程序,ROM是否映射在內存空間,由PMST寄存器的MP/MC位決定;SARAM用于存放應用程序和數據,DARAM讀寫速度快,常用作棧空間和存放常用數據。SARAM和 DARAM 均以 8KX 16bit 為單位分為 8 塊,分別為:SARAM0~SARAM7,DARAM0-DARAM7ο 該C54x系列處理器的程序空間采用分頁機制,可尋址的8M X 16bit空間以64K X 16bit大小為一頁,共分128頁。頁尋址寄存器XPC (XPC=0~127)確定選擇的頁,程序計數器PC僅在每頁的64K地址范圍內跳轉。
[0021]如圖3所示,本實施例中加載使用的應用程序需要256KX16bit的存儲空間。在C54x系列處理器外部接8塊外部存儲器,每塊大小32KX 16bit,8塊外部存儲器的存儲空間共256KX 16bito為避免反復更改地址映射引起不必要的錯誤,將25