一種基于SoC的無線智能程序加載方法及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及嵌入式SoC設計領域,特別涉及一種基于SoC的無線智能程序加載方法及系統(tǒng)。
【背景技術】
[0002]SoC(System-on-chip)是在單個芯片上集成一個完整的系統(tǒng),對所有或部分必要的電子電路進行包分組的技術。一般包括中央處理器、存儲器以及外圍電路等。SoC是與其它技術并行發(fā)展的,它可以提供增強的時鐘頻率,降低微芯片的功耗,在嵌入式系統(tǒng)中有廣泛的應用。
[0003]對于SoC設計來說,搭好環(huán)境后,還得有相應的一套IDE開發(fā)工具,包括裝有配套開發(fā)環(huán)境的PC,電路板和連接線。開發(fā)完成后應用于嵌入式領域,一般很難支持二次開發(fā),或者支持二次開發(fā),但是受帶開發(fā)環(huán)境的PC終端、電路板、連接線等條件的約束很不方便。
【發(fā)明內容】
[0004]為了解決上述技術問題,本發(fā)明提供一種能方便實現(xiàn)二次開發(fā)、芯片利用率高的基于SoC的線智能程序加載方法,并提供一種線智能程序加載SoC系統(tǒng)。
[0005]本發(fā)明解決上述問題的技術方案是:一種基于SoC的無線智能程序加載方法,步驟如下:
(1)搭建SoC系統(tǒng);
(2)將加載啟動代碼燒錄至只讀存儲器中;
(3)將flash存儲器劃分成若干個程序區(qū),并通過加載指令把不同的程序分別加載到不同的程序區(qū);
(4)運行加載啟動代碼代碼后,執(zhí)行串行外設接口和通用異步收發(fā)傳輸器的初始化命令,并監(jiān)測串口接收到的命令,從flash存儲器中選擇相應程序區(qū)實現(xiàn)程序到內存模塊的拷貝;
(5)執(zhí)行跳轉命令,將處理器指向內存模塊的起始位置,實現(xiàn)系統(tǒng)的自啟動。
[0006]上述基于SoC的無線智能程序加載方法,所述步驟(I)中,采用硬件描述語言搭建SoC系統(tǒng)。
[0007]上述基于SoC的無線智能程序加載方法,所述步驟(2)的具體步驟為:
步驟A:安裝OpenRISC交叉編譯工具鏈和Xi I inx ISE工具;
步驟B:用匯編語言設計加載啟動代碼;
步驟C:通過交叉編譯工具鏈把加載啟動代碼從匯編語言編譯成硬件描述語言,并實例化到soc系統(tǒng)頂層中。
[0008]上述基于SoC的無線智能程序加載方法,所述步驟(3)中,flash存儲器地址從0x100000到OxIcOOOO區(qū)域是soc系統(tǒng)bit文件放置區(qū),步驟(3)具體步驟為:
步驟D:通過交叉編譯工具鏈將三個待燒錄程序編譯成三個二進制文件,并把soc系統(tǒng)從硬件描述語言變成bit文件;
步驟E:利用Xi I inx ISE中的impact工具將編譯好的soc系統(tǒng)bit文件燒錄至flash存儲器0x100000到OxIcOOOO區(qū)域,把三個二進制文件分別燒錄到flash的三個不同程序區(qū);其中,地址從OxIcOOOI到OxlfOOOO是程序區(qū)I,地址從OxlfOOOl到0x220000是程序區(qū)Π,地址從0x220001 到0x250000 是程序區(qū) ΙΠ。
[0009]上述基于SoC的無線智能程序加載方法,所述步驟(4)具體步驟為:
步驟F:初始化串行外設接口和通用異步收發(fā)傳輸器,并實時監(jiān)測終端發(fā)過來的命令;若監(jiān)測到命令,則執(zhí)行步驟G,否則繼續(xù)執(zhí)行步驟F;
步驟G:效驗接收到的命令是否為有效命令,是則執(zhí)行步驟H,否則通過通用異步收發(fā)傳輸器和藍牙模塊向終端發(fā)送“錯誤”提示,重新執(zhí)行步驟F;
步驟H:根據(jù)接收到的命令選擇flash存儲器相應程序區(qū)的有效地址;
步驟I:初始化串行外設接口,產生串行外設接口時序和發(fā)送讀命令;
步驟J:根據(jù)flash程序區(qū)的有效地址拷貝程序到內存模塊中;
步驟K:比較程序大小是否等于程序大小變量sizeword的值,是則表明程序拷貝完成,否則執(zhí)行步驟J。
[0010]一種無線智能程序加載SoC系統(tǒng),包括SoC最小系統(tǒng)、藍牙模塊和終端,所述SoC最小系統(tǒng)包括處理器、只讀存儲器、總線仲裁模塊、串行外設接口、內存模塊、通用異步收發(fā)傳輸器、時鐘模塊,所述處理器、只讀存儲器、串行外設接口、內存模塊、時鐘模塊分別與總線仲裁模塊相連,終端與藍牙模塊實現(xiàn)無線通信,藍牙模塊經(jīng)通用異步收發(fā)傳輸器與總線仲裁模塊相連。
[0011]本發(fā)明的有益效果在于:
1、本發(fā)明基于SoC的無線智能程序加載方法中,首先將flash存儲器劃分成若干個程序區(qū),并通過加載指令把不同的程序分別加載到不同的程序區(qū),然后運行加載啟動代碼代碼,初始化串行外設接口并監(jiān)測串口接收到的命令,從flash存儲器中選擇相應程序區(qū)實現(xiàn)程序到內存模塊的拷貝,最后執(zhí)行跳轉命令,將處理器指向內存模塊的起始位置,實現(xiàn)系統(tǒng)的自啟動;整個加載過程簡單,不需要接線和留出程序加載接口,也不需要相應的IDE軟件來加載程序,通過手機或帶有藍牙模塊的終端就可以加載不同的程序,適用范圍廣。
[0012]2、本發(fā)明的SoC設計系統(tǒng)中,在原有最小系統(tǒng)中加入了藍牙模塊以及帶藍牙功能的終端,從而通過無線控制實現(xiàn)不同程序的加載,簡化了芯片的二次開發(fā),增加了芯片的利用率。
【附圖說明】
[0013]圖1為本發(fā)明的SoC設計系統(tǒng)的結構框圖。
[0014]圖2為本發(fā)明的SoC設計方法的流程圖。
[0015]圖3為本發(fā)明的flash存儲器程序區(qū)劃分結構圖。
[0016]圖4為本發(fā)明的SoC設計方法中程序加載的步驟流程圖。
【具體實施方式】
[0017]下面結合附圖和實施例對本發(fā)明作進一步的說明。
[0018]如圖1所示,一種無線智能程序加載SoC系統(tǒng),包括SoC最小系統(tǒng)、藍牙模塊和終端,所述SoC最小系統(tǒng)包括處理器0R1200、只讀存儲器ROM、WiShbone總線仲裁模塊、串行外設接口 SP1、內存模塊DDR2、通用異步收發(fā)傳輸器UART、時鐘模塊,所述處理器ORl200、只讀存儲器ROM、串行外設接口 SP1、內存模塊DDR2、時鐘模塊分別與Wi shbone總線仲裁模塊相連,終端與藍牙模塊實現(xiàn)無線通信,藍牙模塊經(jīng)通用異步收發(fā)傳輸器UART與Wishbone總線仲裁模塊相連。
[0019]所述終端用于通過所述藍牙模塊和所述SoC最小系統(tǒng)中的通用異步收發(fā)傳輸器UART將選擇程序加載命令發(fā)送至所述SoC最小系統(tǒng);以及接收顯示所述SoC最小系統(tǒng)通過通用異步收發(fā)傳輸器UART傳過來的提示命令;
所述SoC最小系統(tǒng)用于通過通用異步收發(fā)傳輸器UART接收所述終端發(fā)送的命令,實現(xiàn)從flash存儲器選擇不同程序區(qū)的程序加載至內存模塊DDR2的功能。
[0020]所述Wi shbone總線仲裁模塊,運行Wi shbone總線仲裁邏輯代碼后,實現(xiàn)主設備搶占總線的輪循機制。
[0021]如圖2所示,一種基于SoC的無線智能程序加載方法,步驟如下:
(1)采用硬件描述語言搭建SoC系統(tǒng);
(2)將加載啟動代碼燒錄至只讀