技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于TS101的嵌入式實(shí)時(shí)操作系統(tǒng)設(shè)計(jì)

基于TS101的嵌入式實(shí)時(shí)操作系統(tǒng)設(shè)計(jì)

時(shí)間:2007-12-18 09:48:00來(lái)源:caojing

導(dǎo)語(yǔ):?隨著半導(dǎo)體制造工藝的發(fā)展和計(jì)算機(jī)體系結(jié)構(gòu)的改進(jìn),DSP處理芯片的處理能力越來(lái)越強(qiáng)大,控制的外圍設(shè)備越來(lái)越多,軟件算法也越來(lái)越復(fù)雜。
引言 隨著半導(dǎo)體制造工藝的發(fā)展和計(jì)算機(jī)體系結(jié)構(gòu)的改進(jìn),DSP處理芯片的處理能力越來(lái)越強(qiáng)大,控制的外圍設(shè)備越來(lái)越多,軟件算法也越來(lái)越復(fù)雜。對(duì)于DSP系統(tǒng)的軟件開發(fā),不僅要面對(duì)復(fù)雜的軟件算法,同時(shí)還要把大部分精力放在各種外圍設(shè)備和相關(guān)的硬件控制上,整個(gè)過程復(fù)雜而艱辛。因此,為這一類系統(tǒng)開發(fā)小巧精致、便于移植的嵌入式實(shí)時(shí)操作系統(tǒng),具有實(shí)際的意義。本文參考開放源代碼實(shí)時(shí)操作系統(tǒng)uC/OS-II,完成了基于ADI公司的ADSP-TigerSHARC101S(以下簡(jiǎn)稱TS101)系列DSP芯片的嵌入式實(shí)時(shí)操作系統(tǒng)的設(shè)計(jì)和開發(fā)工作。 1 TS101芯片簡(jiǎn)介 TS101是美國(guó)ADI公司生產(chǎn)的一款高性能靜態(tài)超標(biāo)量處理器。ADSP-TS101S的內(nèi)核指令周期為3.3ns,每周期能夠執(zhí)行4條指令、24個(gè)16-bit定點(diǎn)運(yùn)算和6個(gè)浮點(diǎn)運(yùn)算。內(nèi)部有三條相互獨(dú)立的128bit寬度的內(nèi)部數(shù)據(jù)總線,每條總線各連接一個(gè)2MB內(nèi)部存儲(chǔ)器陣列,可提供4個(gè)字的數(shù)據(jù)、指令及I/O訪問,以及14.4Gbytes/s的內(nèi)部存儲(chǔ)器帶寬。 在ADSP-TS101內(nèi)部的雙運(yùn)算模塊中,每個(gè)均包含一個(gè)ALU、乘法器、64-bit移位器和32個(gè)字的寄存器組及相關(guān)的數(shù)據(jù)對(duì)齊緩沖器(DAB)。芯片中的雙整數(shù)ALU(IALU)均有自己的31個(gè)字的寄存器組以用于數(shù)據(jù)尋址。此外,TS101中還帶有一個(gè)帶指令對(duì)齊緩沖器 (IAB),以及分支目標(biāo)緩沖器(BTB)和中斷控制器的程序控制器,同時(shí)有三條相互獨(dú)立的128bit寬度的內(nèi)部數(shù)據(jù)總線以及片內(nèi)6MB SRAM;TS101提供有與主機(jī)處理器、多處理器空間(DSP)、外部SRAM和SDRAM相連的外部端口和一個(gè)14通道DMA控制器、四個(gè)鏈路口、兩個(gè)64bit問隔定時(shí)器和定時(shí)器計(jì)滿引腳。芯片上一個(gè)與IEEE 1149.1兼容的JTAG接口可用于片上仿真。 2 基于TS101的嵌入式實(shí)時(shí)操作系統(tǒng)功能 本文介紹的基于TS101的嵌入式操作系統(tǒng)是參考源碼公開的實(shí)時(shí)操作系統(tǒng)uC/OS-II來(lái)設(shè)計(jì)的,實(shí)際上,它和uC/ OS-II一樣,僅僅是一個(gè)實(shí)時(shí)內(nèi)核,而不具有像GUI、TCP/IP協(xié)議棧等功能部件。它支持占先式多任務(wù)調(diào)度,并可提供有效的服務(wù)(如信號(hào)量、郵箱、隊(duì)列、延時(shí)、超時(shí)等)。同時(shí),在uC/OS-II基礎(chǔ)上可引入高級(jí)操作系統(tǒng)中的進(jìn)程和線程等概念。因此,本沒計(jì)采用了進(jìn)程與線程結(jié)合的方式,即將實(shí)現(xiàn)不同功能的任務(wù)視為進(jìn)程,然后在任務(wù)內(nèi)部進(jìn)行細(xì)分,以劃分為不同的線程。進(jìn)程間的調(diào)度與切換在TS101內(nèi)部存儲(chǔ)區(qū)和外部擴(kuò)展存儲(chǔ)區(qū)(例如SDRAM)中進(jìn)行,而線程間的調(diào)度與切換則在TS101內(nèi)部存儲(chǔ)區(qū)中實(shí)現(xiàn)。從本設(shè)計(jì)的整個(gè)TS101嵌入式實(shí)時(shí)系統(tǒng)來(lái)看,它的基本功能主要包括任務(wù)管理、中斷管理、內(nèi)存管理三方面內(nèi)容。 在TS101嵌入式實(shí)時(shí)系統(tǒng)的三大塊功能中,任務(wù)管理功能模塊基本上是uC/OS-II的簡(jiǎn)單移植,本文主要針對(duì)中斷處理和存儲(chǔ)器管理兩大部分進(jìn)行設(shè)計(jì)說(shuō)明。 3 TS101的中斷處理 TS101的中斷處理包括硬件中斷和軟件中斷兩大類,其中軟件中斷又包括軟件異常中斷和Debug中斷。 3.1 硬件中斷 TS101處理器不需要專門的堆棧指針來(lái)保存現(xiàn)場(chǎng),器件中IALU的J、K寄存器都可以用作堆棧指針。在允許嵌套中斷的中斷服務(wù)程序中,可將中斷返回地址(即RETIB)值保存到堆棧中,這樣,在從RETIB讀出返回地址后,系統(tǒng)將自動(dòng)開啟全局中斷使能。但在保存相關(guān)的寄存器和RETI時(shí)本應(yīng)禁止全局中斷使能,所以這是在程序控制器將PC寫入RETI時(shí)自動(dòng)完成。如果系統(tǒng)不支持嵌套的硬件中斷,則無(wú)需把處理器狀態(tài)保存在堆棧中。中斷一般根據(jù)寄存器RETI執(zhí)行并在中斷后返回,而不需要再對(duì)硬件中斷的全局禁止位進(jìn)行處理。 3.2 軟件中斷 (異常) 異常軟件中斷是在程序執(zhí)行的過程中觸發(fā)的。使能異常中斷時(shí),可將PMASK[62]置位,并將PC存儲(chǔ)于RETS;而對(duì)于仿真異常,則將PMASK[63]置位,PC存儲(chǔ)于DBUG中。當(dāng)異常中斷出現(xiàn)時(shí),程序控制器將從寄存器IVSW指向的地址取址,仿真異常則從EMUIR寄存器取址,同時(shí)將指令流水的指令清空。 3.3 中斷返回 中斷返回是通過在中斷服務(wù)程序中執(zhí)行RTI指令來(lái)實(shí)現(xiàn)的。當(dāng)然,這要求在響應(yīng)中斷服務(wù)程序時(shí)就將返回的地址保存在該寄存器中。通常要求至少在執(zhí)行該指令前的8個(gè)指令周期就將返回地址放入在寄存器RETIB中,這樣,分支緩沖BTB才能使用。 4 操作系統(tǒng)中斷處理的實(shí)現(xiàn) 在本操作系統(tǒng)中,對(duì)于用戶中斷服務(wù)程序的處理過程,其示意代碼和功能如表1所列。
事實(shí)上,用戶應(yīng)首先將處理器的寄存器壓人當(dāng)前堆棧[程序列表1中的(1)]。在進(jìn)行中斷處理時(shí),操作系統(tǒng)需要知道用戶在做中斷服務(wù),因此,用戶應(yīng)該調(diào)用OS_Int_Enter_C()將全局變量OSIntNesting[程序列表1中的(2)]直接加1。完成上述兩步以后,用戶就可以開始服務(wù)于引發(fā)中斷的設(shè)備了[程序列表1中的(3)]。由于該操作系統(tǒng)允許中斷嵌套,而且系統(tǒng)能跟蹤嵌套層數(shù)OS-IntNesting。然而,為允許中斷嵌套,在多數(shù)情況下,用戶應(yīng)在開中斷之前先清中斷源。調(diào)用脫離中斷函數(shù)OS_Int_Exit_C()[程序列表1中的(4)]標(biāo)志著中斷服務(wù)子程序的終結(jié),同時(shí)OSIntExit ()會(huì)將中斷嵌套層數(shù)計(jì)數(shù)器減l。當(dāng)嵌套計(jì)數(shù)器減到零時(shí),所有中斷,包括嵌套的中斷便都完成了。此時(shí)操作系統(tǒng)要判定有沒有優(yōu)先級(jí)較高的任務(wù)被中斷服務(wù)子程序(或任一嵌套的中斷)喚醒。如果有高優(yōu)先級(jí)的任務(wù)進(jìn)入了就緒態(tài),系統(tǒng)則返回到那個(gè)高優(yōu)先級(jí)的任務(wù),OS_Int_Exit_C()返回到調(diào)用點(diǎn)[程序列表1中的(5)]。保存的寄存器的值將在這時(shí)被恢復(fù),然后在去執(zhí)行中斷返回指令[程序列表1中的 (6)]。應(yīng)當(dāng)注意的是,如果調(diào)度被禁止(OSIntNesting>0),系統(tǒng)將返回到被中斷的任務(wù)。
以上描述的詳細(xì)解釋如圖1所示。圖中,有時(shí)中斷來(lái)到了[圖1(1)],但還不能被處理器識(shí)別,這也許是因?yàn)橹袛啾徊僮飨到y(tǒng)或用戶應(yīng)用程序關(guān)了,或者是因?yàn)樘幚砥鬟€沒執(zhí)行完當(dāng)前的指令。一旦處理器響應(yīng)了這個(gè)中斷[圖1(2)],處理器的中斷向量將跳轉(zhuǎn)到中斷服務(wù)子程序[圖1(3)]。中斷服務(wù)子程序在處理器寄存器(也叫做CPU context)[圖1(4)]中一旦保存完畢,用戶中斷服務(wù)子程序?qū)⑼ㄖ僮飨到y(tǒng)進(jìn)入中斷服務(wù)子程序,辦法是通過調(diào)用OS_Int_Enter_C()給OS-IntNesting加1[圖1(5)]。然后用戶中斷服務(wù)代碼開始執(zhí)行[圖1(6)]。應(yīng)當(dāng)注意的是,用戶中斷服務(wù)中做的事要盡可能地少,而把大部分工作留給任務(wù)去做。用戶中斷服務(wù)完成以后,要調(diào)用OS_Int_Exit_C()[圖1(7)]。從時(shí)序圖上可以看出,對(duì)被中斷的任務(wù)來(lái)說(shuō),如果沒有高優(yōu)先級(jí)的任務(wù)被中斷服務(wù)子程序激活而進(jìn)入就緒態(tài),OS_Int_Exit_C()只占用很短的運(yùn)行時(shí)間。在這種情況下,CPU寄存器只是簡(jiǎn)單地恢復(fù)[圖1(8)]并執(zhí)行中斷返回指令[圖1(9)]。而如果中斷服務(wù)子程序使一個(gè)高優(yōu)先級(jí)的任務(wù)進(jìn)入了就緒態(tài),則OS_Int_Exit_C()將占用較長(zhǎng)的運(yùn)行時(shí)間,因?yàn)檫@時(shí)要進(jìn)行任務(wù)切換[圖1(10)]。新任務(wù)的寄存器內(nèi)容要恢復(fù)并執(zhí)行中斷返回指令[ 圖1(12)]。 5 存儲(chǔ)器管理 在TS101的C環(huán)境下,可將內(nèi)存劃分為代碼區(qū)(code)、數(shù)據(jù)區(qū)(data)、堆(heap)區(qū)和棧(stack)區(qū)。代碼區(qū)用來(lái)存放用戶代碼,數(shù)據(jù)區(qū)用來(lái)存放全局變量和靜態(tài)變量等數(shù)據(jù),棧區(qū)用來(lái)存放臨時(shí)變量等數(shù)據(jù),堆區(qū)用來(lái)為用戶提供動(dòng)態(tài)內(nèi)存分配。在編譯器的鏈接描述文件(Linker DescriptonFile.LDF)中,可以手動(dòng)劃分各個(gè)內(nèi)存分區(qū)的大小。在TS101所提供的庫(kù)函數(shù)中已經(jīng)包含了比較完備的內(nèi)存管理函數(shù)(如常用的calloc,free,malloc和realloc等函數(shù)),可用于對(duì)內(nèi)存進(jìn)行基本管理。 在對(duì)操作系統(tǒng)進(jìn)行設(shè)計(jì)的過程中,應(yīng)將重心放在內(nèi)存的擴(kuò)展上,以便有效地使用外部存儲(chǔ)器(例如SDRAM等)。為了實(shí)現(xiàn)內(nèi)存擴(kuò)展,本設(shè)計(jì)將一個(gè)大型任務(wù)看作一個(gè)進(jìn)程,再將一個(gè)進(jìn)程劃分為不同的小線程。在系統(tǒng)的外部存儲(chǔ)器中可以存放多個(gè)進(jìn)程,而每次只將一個(gè)讀人到內(nèi)存中來(lái)運(yùn)行。操作系統(tǒng)的主要管理對(duì)象是這個(gè)進(jìn)程所劃分的多個(gè)線程。這樣,在一個(gè)系統(tǒng)中就可以運(yùn)行多個(gè)進(jìn)程,它們之間可以由程序進(jìn)行由內(nèi)存到外存或由外存到內(nèi)存的切換控制,但在切換過程中需要花費(fèi)一些時(shí)間代價(jià)。 5.1 外部存儲(chǔ)器堆區(qū)的使用 TS101為用戶提供了堆區(qū),并提供有calloc、malloc、realloc和free等函數(shù)來(lái)對(duì)其進(jìn)行管理和使用,同時(shí)用戶可以通過手動(dòng)修改鏈接描述文件以獲得相對(duì)較大的堆區(qū)。然而,在默認(rèn)情況下,用戶所能使用的只是鏈接描述文件中所提供的那一塊堆區(qū),這對(duì)用戶來(lái)說(shuō)是遠(yuǎn)遠(yuǎn)不夠的。如果用戶在外部存儲(chǔ)器上也能夠像在內(nèi)存中一樣動(dòng)態(tài)的開辟存儲(chǔ)空間來(lái)進(jìn)行使用,那將會(huì)帶來(lái)極大的方便。幸運(yùn)的是,TS101的編譯系統(tǒng)提供了這一功能,用戶只需要對(duì)系統(tǒng)提供的名為“ts_hdr.asm”的匯編文件和鏈接描述文件進(jìn)行修改并編譯“ts_hdr.asm” 文件,再用生成的“ts_hdr.doj”文件代替鏈接描述文件中的“ts_hdr_TS101”即可。 以下將對(duì)文件的修改過程做簡(jiǎn)要的介紹。下面是TS101鏈接描述文件中對(duì)于默認(rèn)堆區(qū)的描述,它定義了默認(rèn)堆區(qū)的基址和堆區(qū)的大小:
在“ts_hdr.asm i i匯編文件中可對(duì)默認(rèn)堆區(qū)進(jìn)行操作,它的主要功能是為默認(rèn)堆區(qū)規(guī)定ID號(hào)0,以便有新的堆區(qū)存在時(shí)方便使用。 ts_hdr.asm對(duì)默認(rèn)堆棧進(jìn)行編號(hào)的代碼: · var=1df_defheap_base; · var=1df_defheap_size; · var=0; 對(duì)鏈接描述文件和匯編文件進(jìn)行修改時(shí),只需要在鏈接描述文件中對(duì)新的堆區(qū)進(jìn)行描述并在匯編文件中對(duì)其進(jìn)行編號(hào)即可。代碼如下:
對(duì)新的堆棧區(qū)進(jìn)行描述的代碼可開辟于外部存儲(chǔ)器之中(SDRAM)。并在新的堆棧中將其編號(hào)為1。按照以上步驟將文件修改完畢之后,用戶就可以在外部存儲(chǔ)區(qū)中動(dòng)態(tài)地使用內(nèi)存了。編譯器還為動(dòng)態(tài)內(nèi)存的開辟提供了一系列的庫(kù)函數(shù)。其具體程序還在內(nèi)部存儲(chǔ)器中的默認(rèn)堆區(qū)動(dòng)態(tài)開辟了大小為50的內(nèi)存[6(1)],并在外部存儲(chǔ)區(qū)中動(dòng)態(tài)開辟了大小為256的內(nèi)存[6(2)]。其程序如下: int*x,*y; x=heap_malloc (0,50); (1) y=heap_malloc (1,256); (2) 5.2 內(nèi)存覆蓋 通過TS101可將數(shù)量極大的程序代碼放入外部存儲(chǔ)器中。每次通過DMA傳輸方式讀入少量的程序代碼到內(nèi)存來(lái)執(zhí)行,這樣既擴(kuò)展了內(nèi)存空間。又比將全部代碼放入外部存儲(chǔ)器節(jié)省時(shí)間,這種方式稱為內(nèi)存覆蓋(overlay)。內(nèi)存覆蓋是一種多對(duì)一的內(nèi)存映射技術(shù),它可將多段代碼存儲(chǔ)在外部存儲(chǔ)器劃定的不同位置,但也可以在內(nèi)存中的同一位置運(yùn)行。代碼在外部存儲(chǔ)器的存儲(chǔ)區(qū)稱為“l(fā)ive”區(qū),在內(nèi)存中的運(yùn)行區(qū)稱為“run”區(qū)。
圖2所示是overlay的使用結(jié)構(gòu)圖。由圖可見,在外部存儲(chǔ)器中,overlay1和overlay2可在內(nèi)存中的同一區(qū)域中運(yùn)行,而overlay3和overlay4也可以在內(nèi)存的同一區(qū)域中運(yùn)行。當(dāng)主函數(shù)調(diào)用FUNC_B時(shí),overlay2將被換入內(nèi)存中運(yùn)行,而當(dāng)主函數(shù)調(diào)用FUNC_A 時(shí),再用overlay1置換over-lay2,overlay3和overlay4的使用與overlay1和over-lay2相同。代碼在內(nèi)存與外存之間的置換主要通過DMA傳輸來(lái)實(shí)現(xiàn)。 內(nèi)存覆蓋管理器是用戶編寫的用來(lái)將函數(shù)或數(shù)據(jù)載入內(nèi)存的子程序,它們與鏈接器提供的PLIT{}指令配合使用可完成內(nèi)存覆蓋操作。內(nèi)存覆蓋管理器除了負(fù)責(zé)由外部存儲(chǔ)器向內(nèi)存的載入操作外,還應(yīng)當(dāng)負(fù)責(zé)建立堆棧保存寄存器的值,檢查需要調(diào)用的函數(shù)是否已經(jīng)在內(nèi)存之中,以及利用DMA操作在其它函數(shù)執(zhí)行時(shí)運(yùn)行內(nèi)存覆蓋載入。 通過鏈接描述文件可對(duì)內(nèi)存覆蓋進(jìn)行輔助操作。此操作需定義OVLY_one和OVLY_two兩塊overlay代碼,其中 OVLY_one包含函數(shù)FUNC_A.doj,而OVLY_two包含F(xiàn)UNC_B.doj和FUNC_C.doj,它們共同在MOCode的同一內(nèi)存區(qū)域運(yùn)行。在鏈接描述文件中對(duì) overlay進(jìn)行操作的程序代碼如下:
在鏈接描述文件中,還可以通過定義PLIT{}指令來(lái)協(xié)助內(nèi)存覆蓋操作的完成。當(dāng)主函數(shù)調(diào)用一個(gè)內(nèi)存覆蓋區(qū)的函數(shù)時(shí),鏈接器將重新引導(dǎo)函數(shù)調(diào)用并進(jìn)行操作。例如當(dāng)主函數(shù)調(diào)用了內(nèi)存覆蓋函數(shù)FUNC_A時(shí),鏈接器會(huì)將其自動(dòng)轉(zhuǎn)化為調(diào)用.plt_FUNC_A操作。此操作在函數(shù)執(zhí)行之前先進(jìn)行PLIT操作,并跳轉(zhuǎn)到overlay管理器中執(zhí)行,然后再執(zhí)行函數(shù)A。下面是對(duì)PLIT進(jìn)行操作的定義代碼:
5.3 內(nèi)存擴(kuò)展的實(shí)現(xiàn) 操作系統(tǒng)提供了OS_Process_Sched()函數(shù)來(lái)完成這一操作,該函數(shù)中的進(jìn)程切換函數(shù)順序代碼如下: (1) 將處于在內(nèi)存中的進(jìn)程的寄存器值壓入堆棧; (2) 將處于內(nèi)存中的進(jìn)程的全部存儲(chǔ)區(qū)內(nèi)容由DMA方式放入外存: (3) 調(diào)用在外存中的進(jìn)程的寄存器出棧函數(shù); (4) 跳轉(zhuǎn)到新的進(jìn)程運(yùn)行。 在進(jìn)程調(diào)度中,一般首先將所有寄存器值壓入當(dāng)前進(jìn)程堆棧中進(jìn)行保存[順序代碼(1)],然后將內(nèi)存進(jìn)程存儲(chǔ)區(qū)中的所有內(nèi)容放入外部存儲(chǔ)器中保存,以便當(dāng)該進(jìn)程重新進(jìn)入內(nèi)存運(yùn)行時(shí)能夠完全恢復(fù)原有運(yùn)行環(huán)境[順序代碼(2)]。這里的所有內(nèi)容是指與當(dāng)前進(jìn)程有關(guān)的數(shù)據(jù),包括進(jìn)程的堆棧、進(jìn)程的全局變量、進(jìn)程動(dòng)態(tài)申請(qǐng)的內(nèi)存塊等等。調(diào)用外部存儲(chǔ)器中的進(jìn)程寄存器出棧函數(shù)[順序代碼(3)] 主要是利用前面所述的內(nèi)存覆蓋技術(shù)來(lái)進(jìn)行的,該寄存器的出棧函數(shù)一般放在外部存儲(chǔ)器中,操作時(shí)可通過調(diào)用它使鏈接器跳轉(zhuǎn)到內(nèi)存覆蓋管理器來(lái)完成外部存儲(chǔ)器進(jìn)程向內(nèi)存的加載。但在這里要對(duì)內(nèi)存覆蓋管理器進(jìn)行修改,并添加外部存儲(chǔ)器中進(jìn)程的全部數(shù)據(jù)的載入函數(shù),然后,程序才能跳轉(zhuǎn)到新的進(jìn)程中開始運(yùn)行[順序代碼(4)]。 6 結(jié)束語(yǔ) 本文在對(duì)嵌入式實(shí)時(shí)操作系統(tǒng)進(jìn)行研究的基礎(chǔ)上,完成了基于TS101DSP芯片的嵌入式實(shí)時(shí)操作系統(tǒng)的設(shè)計(jì)。所設(shè)計(jì)的系統(tǒng)體系結(jié)構(gòu)主要參考的是開放源代碼的實(shí)時(shí)操作系統(tǒng)uC/OS_II,并在此基礎(chǔ)上,根據(jù)芯片本身的特點(diǎn)和實(shí)際應(yīng)用的需要進(jìn)行了創(chuàng)新和重設(shè)計(jì),這主要體現(xiàn)在以下三方面: (1) 結(jié)合TS101芯片的特點(diǎn),實(shí)現(xiàn)了中斷處理部分的設(shè)計(jì); (2) 放棄了一般操作系統(tǒng)對(duì)內(nèi)存采取每一任務(wù)分配一塊內(nèi)存的方法,而是采用對(duì)內(nèi)存進(jìn)行分塊管理,并采取所有任務(wù)公用同一塊內(nèi)存。對(duì)同一內(nèi)存統(tǒng)一管理的方式; (3) 根據(jù)實(shí)際系統(tǒng)需要研究,并實(shí)現(xiàn)了內(nèi)存覆蓋技術(shù),擴(kuò)展了系統(tǒng)的存儲(chǔ)空間。 當(dāng)然,任何嵌入式操作系統(tǒng)的設(shè)計(jì)都有一個(gè)簡(jiǎn)單到詳細(xì)的過程,需要逐步完善。本文只是完成了TS101嵌入式實(shí)時(shí)操作系統(tǒng)基本功能的實(shí)現(xiàn)。相信經(jīng)過長(zhǎng)期的實(shí)際模擬運(yùn)行,定能建立起功能更加完善、結(jié)構(gòu)更加穩(wěn)固可靠的嵌入式實(shí)時(shí)操作系統(tǒng)。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:基于CAN總線和DSP的起重機(jī)多...

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)