版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年小學(xué)教育科研課題管理制度(三篇)
- 2024年小學(xué)二年級(jí)班主任德育工作計(jì)劃(二篇)
- 2024年城市個(gè)人租房合同參考范文(三篇)
- 2024年商業(yè)房租賃合同范本(四篇)
- 2024年幼兒園家長(zhǎng)社區(qū)工作計(jì)劃范文(二篇)
- 2024年導(dǎo)游工作計(jì)劃范例(二篇)
- 2024年中國(guó)兩輪電動(dòng)車社區(qū)充電行業(yè)研究報(bào)告 -頭豹
- 2024年小學(xué)保安工作職責(zé)模版(三篇)
- 2024年商品房在售交易合同范本(二篇)
- 2024年大班班級(jí)工作計(jì)劃(四篇)
- 計(jì)算機(jī)信息系統(tǒng)集成資質(zhì)分級(jí)別申請(qǐng)條件對(duì)照表
- 師帶徒實(shí)施方案
- 框架理論對(duì)翻譯的啟示
- 作業(yè)流程分析ppt課件
- 汽車室內(nèi)燈標(biāo)準(zhǔn)正式
- 佛山嶺南新天地商業(yè)調(diào)研
- 《6的乘法口訣》課件
- 盾構(gòu)管片拼裝質(zhì)量問(wèn)題分析及措施1
- 鋼結(jié)構(gòu)工程監(jiān)理規(guī)劃(完整版)
- 事業(yè)單位崗位設(shè)置審核表
- 松江老宅概觀
評(píng)論
0/150
提交評(píng)論