6KX 16bit的外部存儲(chǔ)空間映射在C54x系列處理器中的Page4、5、6、7、8、9、&、13的高321(地址空間。這些地址空間映射關(guān)系不受任何寄存器位的影響(不受PMST的OVLY/ROM等位的影響)。程序代碼和數(shù)據(jù)分塊放在這些地址空間中。
[0022]如圖4所示,本實(shí)施例中的boot程序較小,約12Kbit大小,將boot程序和應(yīng)用程序的一塊碼本數(shù)據(jù)合并放入應(yīng)用程序存儲(chǔ)頁的某一頁,本實(shí)施例選擇第八頁P(yáng)ageS的高32K地址空間,boot程序放入0x8f800~8ffff地址空間。將程序空間啟動(dòng)頁P(yáng)ageO和第八頁P(yáng)ageS空間進(jìn)行頁共享。
[0023]為了將存儲(chǔ)應(yīng)用程序的程序存儲(chǔ)頁即Page4、5、6、7、8、9、a、b內(nèi)的高32K地址空間映射在8塊外部存儲(chǔ)器上,8頁程序空間共需要占用20根地址線即A0-A19。本實(shí)施例選擇5根地址線即A15-A19與地址譯碼器相連,其他地址線即A0-A14分別與外部存儲(chǔ)器的地址線連接。A15-A19進(jìn)行譯碼處理,確定選擇哪一塊外部存儲(chǔ)器,其他15根地址線即A0-A14
用于讀寫數(shù)據(jù)。
[0024]所述地址譯碼器將啟動(dòng)頁P(yáng)ageO和第八頁P(yáng)age8的地址空間映射在同一塊的固態(tài)存儲(chǔ)器上,執(zhí)行OxffSO即是執(zhí)行OxSffSO地址開始的程序。這樣做有效的節(jié)省了存儲(chǔ)器存儲(chǔ)空間。
[0025]如圖2所示,本發(fā)明的boot的啟動(dòng)過程如下:
1)、外部MP/MC Pin拉高,MP/MC=1、OVLY=U DR0M=0,上電或復(fù)位數(shù)字信號(hào)處理器,程序從0xff80指向的外部存儲(chǔ)器空間開始執(zhí)行,此時(shí)PC=0xff80,XPC=0。做了地址映射后,OxffSO執(zhí)行的代碼,即為空間OxSffSO內(nèi)的boot程序,boot程序第一條指令執(zhí)行跳轉(zhuǎn),跳轉(zhuǎn)到OxSfSO地址執(zhí)行數(shù)字信號(hào)處理器。
[0026]2)、初始化數(shù)字信號(hào)處理器和相關(guān)外圍設(shè)備,即初始化芯片時(shí)鐘,外部總線頻率等功能。
[0027]3 )、設(shè)置PMST=OxO Ia8,MP/MC=0,重新映射數(shù)字信號(hào)處理器的內(nèi)存空間,為應(yīng)用程序準(zhǔn)備RAM空間。
[0028]4)、啟動(dòng)DMA,將外部存儲(chǔ)器上的代碼和數(shù)據(jù)分別搬移到相應(yīng)的內(nèi)部存儲(chǔ)器上。
[0029]5)、設(shè)置堆棧,C54x系列處理器片上有雙訪問DARAM,讀寫速度快,常用作??臻g和存放常用數(shù)據(jù),設(shè)計(jì)使用0x3800大小的DARAM空間為棧空間,使用0x400大小的DARAM空間為堆空間。
[0030]6)、跳轉(zhuǎn)到應(yīng)用程序所在的內(nèi)存空間的入口地址,啟動(dòng)應(yīng)用程序運(yùn)行,本實(shí)施例中,應(yīng)用程序的C入口地址為0x200 (XPC=O, PC=0x200)o
[0031]在上述的第4)步中,由于C54x系列處理器程序空間和數(shù)據(jù)空間相互獨(dú)立,因此在代碼搬移時(shí),處理器內(nèi)部的處理器含有對(duì)程序到程序空間,程序到數(shù)據(jù)空間,數(shù)據(jù)到程序空間的數(shù)據(jù)搬移指令,但操作起來非常復(fù)雜。而處理器片內(nèi)含6通道DMA,支持?jǐn)?shù)據(jù)、1/0、程序空間的數(shù)據(jù)搬移,且搬移操作不受與地址映射有關(guān)的MP/MC、DROM、OVLY寄存器位的影響。因此采用DMA來進(jìn)行代碼和數(shù)據(jù)的搬移,既簡單又速度又快。
[0032]基于以上實(shí)施例的方法,還可以將Page9和Pagel、Page A和Page2、Page B和Page3分別映射在同一塊片外存儲(chǔ)器上,實(shí)現(xiàn)頁共享存儲(chǔ)。
[0033]以上述依據(jù)本發(fā)明的理想實(shí)施例為啟示,通過上述的說明內(nèi)容,相關(guān)工作人員完全可以在不偏離本項(xiàng)發(fā)明技術(shù)思想的范圍內(nèi),進(jìn)行多樣的變更以及修改。本項(xiàng)發(fā)明的技術(shù)性范圍并不局限于說明書上的內(nèi)容,必須要根據(jù)權(quán)利要求范圍來確定其技術(shù)性范圍。
【主權(quán)項(xiàng)】
1.一種數(shù)字信號(hào)處理器的boot啟動(dòng)方法,其特征是:boot程序存儲(chǔ)在數(shù)字信號(hào)處理器的應(yīng)用程序存儲(chǔ)頁內(nèi),啟動(dòng)頁與存儲(chǔ)boot程序的應(yīng)用程序存儲(chǔ)頁頁共享,通過地址譯碼器,啟動(dòng)頁與存儲(chǔ)boot程序的應(yīng)用程序存儲(chǔ)頁的地址空間映射在同一塊外部存儲(chǔ)器上,所述boot啟動(dòng)方法包括如下步驟: 1)、外部MP/MC Pin拉高,MP/MC=1、OVLY=U DROM=O,上電或復(fù)位數(shù)字信號(hào)處理器,根據(jù)與數(shù)字信號(hào)處理器連接的外部存儲(chǔ)器的指令,執(zhí)行啟動(dòng)頁程序,根據(jù)頁共享機(jī)制,跳轉(zhuǎn)到存儲(chǔ)boot程序的應(yīng)用程序存儲(chǔ)頁執(zhí)行boot程序; 2)、初始化數(shù)字信號(hào)處理器和相關(guān)外圍設(shè)備; 3)、重新映射數(shù)字信號(hào)處理器的內(nèi)存空間,為應(yīng)用程序準(zhǔn)備RAM空間; 4)、啟動(dòng)DMA,將外部存儲(chǔ)器上的代碼和數(shù)據(jù)分別搬移到相應(yīng)的內(nèi)部存儲(chǔ)器上; 5)、設(shè)置堆棧; 6)、跳轉(zhuǎn)到應(yīng)用程序所在的內(nèi)存空間的入口地址,啟動(dòng)應(yīng)用程序運(yùn)行。
2.根據(jù)權(quán)利要求1所述的數(shù)字信號(hào)處理器的boot啟動(dòng)方法,其特征是:步驟2)中對(duì)數(shù)字信號(hào)處理器的時(shí)鐘和外部總線頻率功能進(jìn)行初始化。
3.根據(jù)權(quán)利要求1所述的數(shù)字信號(hào)處理器的boot啟動(dòng)方法,其特征是:步驟3)中設(shè)置 PMST=OxOIa8,MP/MC=0。
4.一種boot程序的啟動(dòng)裝置,其特征是,包括:具有分頁存儲(chǔ)功能數(shù)字信號(hào)處理器、地址譯碼器和多個(gè)外部存儲(chǔ)器,所述數(shù)字信號(hào)處理器的地址線分為兩部分,一部分地址線直接外部存儲(chǔ)器的地址線連接,用于讀寫數(shù)據(jù);另一部分地址線與地址譯碼器連接,地址譯碼器分別與外部存儲(chǔ)器連接,地址譯碼器進(jìn)行譯碼處理,選擇外部存儲(chǔ)器。
【專利摘要】本發(fā)明涉及一種數(shù)字信號(hào)處理器的boot啟動(dòng)方法及其啟動(dòng)裝置。一種數(shù)字信號(hào)處理器的boot啟動(dòng)方法,boot程序存儲(chǔ)在應(yīng)用程序存儲(chǔ)頁內(nèi),啟動(dòng)頁與存儲(chǔ)boot程序的應(yīng)用程序存儲(chǔ)頁頁共享,通過地址譯碼器,啟動(dòng)頁與存儲(chǔ)boot程序的應(yīng)用程序存儲(chǔ)頁的地址空間映射在同一塊外部存儲(chǔ)器上。所述boot啟動(dòng)方法具有如下步驟:MP/MC=1、OVLY=1、DROM=0,上電或復(fù)位數(shù)字信號(hào)處理器,根據(jù)與數(shù)字信號(hào)處理器連接的外部存儲(chǔ)器的指令,執(zhí)行啟動(dòng)頁程序,根據(jù)頁共享機(jī)制,跳轉(zhuǎn)到存儲(chǔ)boot程序的應(yīng)用程序存儲(chǔ)頁執(zhí)行boot程序。有效節(jié)約了存儲(chǔ)器的容量空間,提高了信號(hào)處理速度,實(shí)現(xiàn)了實(shí)時(shí)處理的效果。
【IPC分類】G06F9-445
【公開號(hào)】CN104866357
【申請(qǐng)?zhí)枴緾N201510290867
【發(fā)明人】張梅娟, 石喬林, 俞光耀, 張鉚, 包小鈺
【申請(qǐng)人】中國電子科技集團(tuán)公司第五十八研究所
【公開日】2015年8月26日
【申請(qǐng)日】2015年5月29日