本發明專利技術公開了DSP芯片的內核動態切換方法及控制系統。該方法包括:根據預配置的DSP內核程序的數目,劃分該DSP芯片的片上存儲空間及相應的地址映射;按照所述地址映射編譯所述DSP內核程序,并為每一個DSP內核程序設置對應的中斷向量表;通過接收輸入輸出管腳(GPIO)的狀態信號觸發所述中斷向量表的程序指針跳轉位置。采用本發明專利技術,可以在不增加系統軟硬件復雜性的前提下,僅依靠單核DSP芯片來實現多個DSP內核程序的動態無縫切換。而且,切換效率高,升級方便,程序升級只需替換FLASH中不同的段即可,工程無需整體重新編譯。
【技術實現步驟摘要】
本專利技術涉及嵌入式應用領域,特別是涉及DSP芯片的內核動態切換方法及控制系統。
技術介紹
在嵌入式系統開發中,DSP芯片以其高效的運算能力而被廣泛應用。由于不同的運算功能需求,經常需要在同一塊DSP芯片上運行多個不同的DSP內核程序,現有技術一般有兩種方式達到這個目的,即DSP內核程序重新加載或者不重新加載而采用多任務的處理方式。對于DSP內核程序重新加載方式,常見的方法是使用ARM芯片或其它器件來動態加載DSP內核程序,這樣做的缺點在于:1)軟硬件結構復雜,需要增加一塊專用芯片來控制程序加載,程序運行過程過分依賴于其它器件,在用戶對系統需求不是很復雜的情況下增加了設計難度;2)由于DSP芯片被重新加載,被重新加載的DSP內核程序無法被保存加載前的運行環境,造成數據丟失。對于多任務方式,其缺點也很明顯,首先軟件代碼量會比較大,因為要把各種功能編譯到一起,也很不利于某個功能模塊的升級(因需要全部重新編譯);其次每個任務切換時都要保護好其運行環境,勢必會導致定義大量的全局變量和結構體,從而大大降低模塊的可移植性。
技術實現思路
基于此,有必要針對上述問題,提供一種DSP芯片的內核動態切換方法及控制系統,能夠在不增加系統軟硬件復雜性的前提下,僅依靠DSP芯片本身來實現多個DSP內核程序的動態切換。一種DSP芯片的內核動態切換方法,包括:根據預配置的DSP內核程序的數目,劃分該DSP芯片內部的存儲空間及相應的地址映射;按照所述地址映射編譯所述DSP內核程序,并為每一個DSP內核程序設置對應的中斷向量表;通過接收輸入輸出管腳的狀態信號觸發所述中斷向量表的程序指針跳轉位置。相應地,一種DSP芯片的內核動態切換控制系統,包括:內存劃分單元,用于根據預配置的DSP內核程序的數目,劃分該DSP芯片內部的存儲空間及相應的地址映射;與所述內存劃分單元相連的程序編譯單元,用于按照所述地址映射編譯所述DSP內核程序,并為每一個DSP內核程序設置對應的中斷向量表;與所述程序編譯單元相連的狀態檢測單元,用于通過接收輸入輸出管腳的狀態信號觸發所述中斷向量表的程序指針跳轉位置。實施本專利技術,具有如下有益效果:本專利技術采用的多程序動態切換方法相比以上傳統方式,僅需借助芯片自帶的加載程序完成芯片啟動,并通過在內核線程中動態進行程序指針的跳轉實現程序運行狀態的切換操作,該技術可以同時克服以上兩種傳統方法的缺點,并且多內核程序之間切換效率高。因為各個內核程序在上電初期就被加載到了芯片RAM內部,僅通過程序指針的跳轉來實現程序動態切換,無論在流程還是速度上都優于以上兩種方式。采用該方法升級方便,程序升級只需替換FLASH中不同的段即可,工程無需整體重新編譯。同時,這也非常有利于移植,由于各個程序升級都是直接替換FLASH中對應位置的二進制文件,不需要重新編譯生成完整的out文件。附圖說明圖1為本專利技術DSP芯片的內核動態切換方法的流程圖;圖2為本專利技術DSP芯片的內核動態切換方法的示意圖;圖3為本專利技術DSP芯片的內核動態切換方法的實施例流程圖;圖4為本專利技術DSP芯片的內核動態切換控制系統的示意圖;圖5為本專利技術DSP芯片的內核動態切換控制系統的實施例示意圖。具體實施例方式為使本專利技術的目的、技術方案和優點更加清楚,下面將結合附圖對本專利技術作進一步地詳細描述。圖1為本專利技術DSP芯片的內核動態切換方法的流程圖,包括:SlOl:根據預配置的DSP內核程序的數目,劃分該DSP芯片內部的存儲空間及相應的地址映射;S102:按照所述地址映射編譯所述DSP內核程序,并為每一個DSP內核程序設置對應的中斷向量表;S103:通過接收輸入輸出管腳的狀態信號觸發所述中斷向量表的程序指針跳轉位置。在脫機運行的DSP系統中,用戶代碼往往都需要在上電后自動裝載運行,目前,大多數DSP內部都有固化的引導裝載(BootLoader),它能夠在系統加電時,自動將一段存儲在FLASH的程序代碼移植到內部的高速存儲單元里面去執行。本設計方法就是針對DSP芯片BootLoader的這個特性,在DSP芯片上使用DSP/B10S操作系統,將DSP芯片的RAM分成多個獨立的運行區域,并通過對DSP芯片的輸入輸出管腳的控制操作來實現DSP內核程序的無縫切換,使得程序的動態切換不依賴于其它芯片的支持,簡化了系統的軟硬件設計的同時,有效地保護了切換前后每個程序的運行環境。本專利技術采用的多程序動態切換方法相比以上傳統方式,僅使用芯片自帶的BootLoader完成芯片啟動,并通過在IDLE線程中動態進行程序指針的跳轉進行程序運行狀態的切換操作,該方法可以同時克服以上兩種傳統方法的缺點,并且多程序之間切換效率高,由于程序在上電初期就被加載到了芯片RM內部,僅通過程序指針的跳轉來實現程序動態切換,無論在流程還是速度上都優于以上兩種方式。采用該方法升級方便,程序升級只需替換FLASH中不同的段即可,工程無需整體重新編譯。同時,這也非常有利于知識產權保護和單獨的DSP內核程序的移植,由于各個內核程序升級都是直接替換FLASH中對應位置的二進制文件,不需要重新編譯生成完整的out文件。具體地,與現有技術相比,本專利技術具有優勢是明顯的。例如,根據DSP內核程序的數目來劃分存儲空間,使得各個內核程序擁有一個相對獨立的運行環境,程序的加載與運行不需依賴于其他器件,故而軟硬件結構簡單。DSP內核程序的編譯也是按照相應的地址映射進行的,在程序升級時,無需整體重新編譯,只需按照地址映射更改應對的程序段,由于各個程序段按照步驟要求獨立編寫而成,屏蔽了不同內核程序源碼的編譯綜合階段,有利于各內核程序知識產權保護和單獨的DSP內核程序的移植。需要補充說明的是,DSP內核程序是通過程序指針的跳轉來實現程序動態切換,流程簡單且切換速度快,因而切換效率高。另外,由于各程序運行在片內各自獨立的內存空間,因此程序的動態切換僅涉及到程序指針在不同程序的中斷向量表之間跳轉,各內核程序之間進行切換不會覆蓋其他程序的運行空間,避免了由于DSP芯片被重新加載造成的程序運行狀態數據丟失,維護了程序的運行現場。圖2為本專利技術DSP芯片的內核動態切換方法的示意圖。圖3為本專利技術DSP芯片的內核動態切換方法的實施例流程圖。與圖1相比,圖3為本專利技術的具體實施例示意圖。下面結合圖2、圖3對本專利技術具體實施例做詳細介紹,本設計的實施例以2個程序切換為例,但不限于2個。S201:根據預配置的DSP內核程序的數目,劃分該DSP芯片內部的存儲空間及相應的地址映射;S202:根據預配置的DSP內核程序的大小,配置該內核程序的存儲空間大小;S203:按照所述地址映射編譯所述DSP內核程序,并為每一個DSP內核程序設置對應的中斷向量表;S204:給每一個DSP內核程序配置對應的IDLE線程,監測所述輸入輸出管腳的狀態信號;S205:根據所述內核數目配置所需的輸入輸出管腳最少數量,其中,η個輸入輸出管腳與最大的內核數目m之間滿足m=2n的映射關系;S206:讀取各個輸入輸出管腳的端口狀態,通過接收由各個端口狀態組成的狀態信號;S207:判斷DSP內核程序的切換狀態,觸發程序指針重置到相應的DSP內核程序的中斷向量表入口地址;S208:將開機加載程序以及各個DSP內核程序存儲為二進制文件燒本文檔來自技高網...
【技術保護點】
一種DSP芯片的內核動態切換方法,其特征在于,包括:根據預配置的DSP內核程序的數目,劃分該DSP芯片內部的存儲空間及相應的地址映射;按照所述地址映射編譯所述DSP內核程序,并為每一個DSP內核程序設置對應的中斷向量表;通過接收輸入輸出管腳的狀態信號觸發所述中斷向量表的程序指針跳轉位置。
【技術特征摘要】
【專利技術屬性】
技術研發人員:鄧恰,陶偉,王健,
申請(專利權)人:廣州海格通信集團股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。