vxworks嵌入式操作系統(tǒng)_第1頁(yè)
vxworks嵌入式操作系統(tǒng)_第2頁(yè)
vxworks嵌入式操作系統(tǒng)_第3頁(yè)
vxworks嵌入式操作系統(tǒng)_第4頁(yè)
vxworks嵌入式操作系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩88頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

嵌入式軟件VxWorks編程介紹

鄒昕光哈爾濱工業(yè)大學(xué)自動(dòng)化測(cè)控所聯(lián)系電話:86413531-609

E-mail:xgzou@vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第1頁(yè)!AgendaTaskIntertaskmunicationISRvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第2頁(yè)!TaskEachtaskhasitsowncontext,whichistheCPUenvironmentandsystemresourcesthatthetaskseeseachtimeitisscheduledtorunbythekernel.Atask’scontextissavedinthetaskcontrolblock(TCB).vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第3頁(yè)!TaskAtask’scontextincludes:-athreadofexecution;thatis,thetask’sprogramcounter-theCPUregistersand(optionally)floating-pointregisters-I/Oassignmentsforstandardinput,output,anderror-adelaytimer-atime-slicetimer-kernelcontrolstructures-signalhandlers-debuggingandperformancemonitoringvaluesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第4頁(yè)!TaskSchedulerControlRoutinesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第5頁(yè)!TaskControlRoutinevxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第6頁(yè)!TaskSpawnvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第7頁(yè)!TaskInformationRoutinesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第8頁(yè)!TaskDeletingRoutinesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第9頁(yè)!TaskControlRoutinesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第10頁(yè)!SharedCodeandReentrancyAsinglecopyofcodeexecutedbymultipletasksiscalledsharedcode.Asubroutineisreentrantifasinglecopyoftheroutinecanbecalledfromseveraltaskcontextssimultaneouslywithoutconflict.Modifyglobalorstaticvariables.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第11頁(yè)!DynamicStackVariablesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第12頁(yè)!TaskVariablesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第13頁(yè)!SharedDataStructuresGlobalvariablesLinearbuffersRingbuffersLinkedlistsPointersvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第14頁(yè)!MutualExclusionDisableinterruptsDisablepreemptionResourcelockingwithsemaphoresvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第15頁(yè)!PreemptivelocksLessrestrictiveformofmutualexclusion.Noothertaskisallowedtopreemptivethecurrentexecutingtask,ISRareabletoexecute.Tasksofhigherpriorityareunabletoexecuteuntilthelockingtaskleavesthecriticalregion.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第16頁(yè)!SemaphoreControlRoutinesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第17頁(yè)!BinarySemaphorevxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第18頁(yè)!BinarySemaphore-MutualExclusionvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第19頁(yè)!BinarySemaphore-Synchronizationvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第20頁(yè)!MutualSemaphore-RecursiveResourceAccessvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第21頁(yè)!CountingSemaphoresvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第22頁(yè)!MessageQueuesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第23頁(yè)!MessageQueueExamplevxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第24頁(yè)!MessageQueueExamplevxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第25頁(yè)!PipesPipesprovideanalternativeinterfacetothemessagequeuefacilitythatgoesthroughtheVxWorksI/Osystem.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第26頁(yè)!RPCRemoteProcedureCalls(RPC)isafacilitythatallowsaprocessonamachinetocallaprocedurethatisexecutedbyanotherprocessoneitherthesamemachineoraremotemachine.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第27頁(yè)!SignalSignalsasynchronouslyalterthecontrolflowofatask.AnytaskorISRcanraiseasignalforaparticulartask.Thetaskbeingsignaledimmediatelysuspendsitscurrentthreadofexecutionandexecutesthetask-specifiedsignalhandlerroutine.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第28頁(yè)!EventSendingandReceivingEvents Eventscanbesentfromaresourcetoatask,fromanISRtoatask,ordirectlybetweentwotasks.WaitingforEvents Ataskcanwaitformultipleeventsfromoneormoreresources.Eachsourcecansendmultipleevents,andataskcanalsowaittoreceiveonlyoneevent,orallevents.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第29頁(yè)!EventFreeResourceDefinitionMutexSemaphore -Amutexsemaphoreisconsideredfreewhenitnolongerhasanownerandnooneispendingonit.BinarySemaphore -Abinarysemaphoreisconsideredfreewhennotaskownsitandnooneiswaitingforit.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第30頁(yè)!EventSendingandReceivingEvents Eventscanbesentfromaresourcetoatask,fromanISRtoatask,ordirectlybetweentwotasks.WaitingforEvents Ataskcanwaitformultipleeventsfromoneormoreresources.Eachsourcecansendmultipleevents,andataskcanalsowaittoreceiveonlyoneevent,orallevents.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第31頁(yè)!WatchdogTimersCallsvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第32頁(yè)!EventRegisterRoutinevxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第33頁(yè)!intConnectRoutinevxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第34頁(yè)!Runashellvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第35頁(yè)!Cmandsinshellvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第36頁(yè)!ShellCommands:tdvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第37頁(yè)!ShellCommands:tivxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第38頁(yè)!ShellCommands:twvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第39頁(yè)!ShellCommands:dvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第40頁(yè)!ShellCommands:dvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第41頁(yè)!ShellCommands:pwd&cdvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第42頁(yè)!ShellCommands:rebootvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第43頁(yè)!ShellCommands:semaphorevxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第44頁(yè)!ShellCommands:semaphorevxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第45頁(yè)!ShellCommands:MessageQueuevxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第46頁(yè)!ShellCommands:MessageQueuevxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第47頁(yè)!ShellCommands:MessageQueuevxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第48頁(yè)!TaskThedefaulttaskschedulingalgorithminwindispriority-basedpreemptivescheduling.RoundRobinisanoptionalalgorithm.Thewindkernelhas256prioritylevels,numbered0through255.Priority0isthehighestandpriority255isthelowest.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第49頁(yè)!TaskTaskLock WhenataskdisablestheschedulerbycallingtaskLock(),nopriority-basedpreemptioncantakeplacewhilethattaskisrunning. Ifthetaskexplicitlyblocksorsuspends,theschedulerselectsthenexthighest-priorityeligibletasktoexecute. Whenthepreemption-lockedtaskunblocksandbeginsrunningagain,preemptionisagaindisabled. ThetaskLock()preventtaskcontextswitching,butdonotlockoutinterrupthandling.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第50頁(yè)!TasktaskSpawnTaskNameandIDRoutinesTaskInformationRoutinesTaskDeletingRoutinesTaskControlRoutinesTaskHookRoutinesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第51頁(yè)!TaskNameandIDRoutinesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第52頁(yè)!TaskInformationRoutinesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第53頁(yè)!TaskDeletingRoutinesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第54頁(yè)!TaskHookRoutinesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第55頁(yè)!CodeReentrancySolutionsDynamicStackVariablesGuardedGlobalandStaticVariablesTaskVariablesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第56頁(yè)!GuardedGlobalandStaticVariablesProvidingamutual-exclusionmechanismtoprohibittasksfromsimultaneouslyexecutingcriticalsectionsofcode.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第57頁(yè)!IntertaskCommunicationSharedDataStructureMutualExclusionSemaphoresMessageQueuesPipesNetworkIntertaskCommunicationSignalsvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第58頁(yè)!SharedDataStructuresvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第59頁(yè)!DisableInterruptsThemostpowerfulmethodItpreventsthesystemfromrespondingtoexternaleventsforthedurationoftheselocks.Keepthedurationofinterruptlockoutsshort.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第60頁(yè)!SemaphoresHighlyoptimizedandprovidethefastestintertaskmunicationmechanisminVxWorks.ThreetypesofWindsemaphores: -Binary -Mutualexclusion -Countingvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第61頁(yè)!BinarySemaphorevxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第62頁(yè)!BinarySemaphore-MutualExclusionvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第63頁(yè)!BinarySemaphore-Synchronizationvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第64頁(yè)!BinarySemaphore-Synchronizationvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第65頁(yè)!MutualSemaphore-RecursiveResourceAccessvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第66頁(yè)!MessageQueueMessagequeuesallowavariablenumberofmessages,eachofvariablelength,tobequeued.TasksandISRscansendmessagestoamessagequeue,andtaskscanreceivemessageformamessagequeue.Multipletaskscansendtoandreceivefromthesamemessagequeue.Full-duplexmunicationbetweentwotasksgenerallyrequirestwomessagequeues,oneforeachdirection.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第67頁(yè)!WindMessageQueueControlvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第68頁(yè)!MessageQueueExamplevxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第69頁(yè)!MessageQueuesvxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第70頁(yè)!SocketsInVxWorks,thebasisofintertaskmunicationacrossthenetworkissockets.VxWorkssupportstheInternetprotocolsTCPandUDP.TCPprovidesreliable,guaranteed,two-waytransmissionofdatawithstreamsockets.UDPprovidesasimplebutlessrobustformofmunication.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第71頁(yè)!SignalSignalsasynchronouslyalterthecontrolflowofatask.AnytaskorISRcanraiseasignalforaparticulartask.Thetaskbeingsignaledimmediatelysuspendsitscurrentthreadofexecutionandexecutesthetask-specifiedsignalhandlerroutine.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第72頁(yè)!EventVxWorkseventsaremeansofmunicationbetweentasksandinterruptroutine,betweentasksandothertasks,orbetweentasksandVxWorksobjects.VxWorksobjectsarereferredtoasresourcessuchassemaphoresandmessagequeue.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第73頁(yè)!EventRegisteringforEvents Onlyonetaskcanregisteritselftoreceiveeventsfromaresource.Ifanothertasksubsequentlyregisterswiththesameresource,thepreviouslyregisteredtaskisautomaticallyunregistered.FreeingResource Whenaresourcesendstoatasktoindicatethatitisfree,itdoesnotmeanthatresourceisreserved.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第74頁(yè)!EventFreeResourceDefinitionCountingSemaphore -Acountingsemaphoreisconsideredfreewhenitscountsisnonzeroandnooneispendingonit.MessageQueue -Amessagequeueisconsideredfreewhenamessagequeueispresentinthequeueandnooneispendingforthearrivalofamessageinthatqueue.vxworks嵌入式操作系統(tǒng)共93頁(yè),您現(xiàn)在瀏覽的是第75頁(yè)!WatchdogTimersVxWorksincludesawatchdog-timermechanismthatallowsanyCfunctiontobeconnecttoaspecifiedtimedelay.Functioninvokedbywatchdogtimersexecuteasinterruptservicecodea

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論