




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
.一、實(shí)驗?zāi)康?)利用實(shí)驗平臺,模擬車輛照明控制系統(tǒng)工作2)學(xué)習(xí)嵌入式系統(tǒng)的裁剪與定制3)熟悉AD轉(zhuǎn)換器,鍵盤等設(shè)備的操作4)熟悉基于消息循環(huán)的事件處理機(jī)制5)理解操作系統(tǒng)對于嵌入式系統(tǒng)的意義二、本課題選題背景及國內(nèi)外研究動態(tài)(一)選題背景20世紀(jì)90年代中期以后,LED作為汽車尾燈已經(jīng)被人們廣泛接受。近年謝謝閱讀來,隨著LED亮度的逐漸增加,2003年高亮度LuxeonTM的市場投放,使LED謝謝閱讀開始在汽車前照燈領(lǐng)域嶄露頭角,它以體積小、壽命長、環(huán)保、聚焦距離短等優(yōu)謝謝閱讀勢受到人們普遍的關(guān)注和青睞。然而,氙氣和LED前照燈技術(shù)只能工作在一種感謝閱讀模式下,即一種固定的類型下。但是,實(shí)際道路使用狀況、環(huán)境狀況、氣候狀況謝謝閱讀等情況非常復(fù)雜。數(shù)據(jù)分析顯示,在夜間發(fā)生車禍的數(shù)量是白天車禍數(shù)量的兩倍,感謝閱讀為了在夜間或者是惡劣天氣下能達(dá)到更好的視覺效果,要求前照燈光線隨著不同感謝閱讀的駕駛環(huán)境而改變。這就需要設(shè)計一種靈活的前照燈系統(tǒng)。謝謝閱讀傳統(tǒng)的前照燈系統(tǒng)是由:近光燈、遠(yuǎn)光燈、行駛燈和前霧燈組合而成。在城謝謝閱讀市道路行駛并且限速的情況下,主要采用近光;在鄉(xiāng)間道路或者高速公路上高速精品文檔放心下載行駛的時候,主要采用遠(yuǎn)光;霧天行駛的時候,應(yīng)該打開霧燈;白天行駛,應(yīng)該精品文檔放心下載.打開行駛燈(歐洲標(biāo)準(zhǔn))。但是實(shí)際的使用中,傳統(tǒng)的前照燈系統(tǒng)存在著諸多問題。例如,現(xiàn)有近光燈在近距離上的照明效果很不好,特別是在交通狀況比較復(fù)雜的市區(qū),經(jīng)常會有很多司機(jī)在晚上將近光燈、遠(yuǎn)光燈和前霧燈統(tǒng)統(tǒng)打開;車輛在轉(zhuǎn)彎的時候也存在照明的暗區(qū),嚴(yán)重影響了司機(jī)對彎道上障礙的判斷;車輛在雨天行駛的時候,地面積水反射前燈的光線,產(chǎn)生反射眩光等等。謝謝閱讀歐洲汽車照明研究機(jī)構(gòu)曾經(jīng)就此作過做專項調(diào)查,結(jié)果顯示,歐洲司機(jī)們最希望改善的是陰雨天氣積水路面的照明,排在第二位的是鄉(xiāng)村公路的照明,接下來依次是彎道照明、高速公路照明和市區(qū)照明。精品文檔放心下載上述這些問題的存在,就使得研制一種具有多種照明功能的前照燈成為必要,并且這些功能的切換,出于安全上的考慮,必須是自動實(shí)現(xiàn)的。所以歐洲和謝謝閱讀日本相繼研制了這種自動適應(yīng)車輛行駛狀態(tài)的前照燈系統(tǒng)——AFS(自適應(yīng)前照精品文檔放心下載燈系統(tǒng))。(二)國內(nèi)外研究現(xiàn)狀目前,在汽車前照燈的標(biāo)準(zhǔn)方面有歐洲標(biāo)準(zhǔn)和美國標(biāo)準(zhǔn),兩者主要在近光配光上有較大的差別。謝謝閱讀歐洲標(biāo)準(zhǔn)特別注重對眩光的控制,因此在其配光上存在15°的截止線,并且照度也比較低。在美國,道路大多比較寬闊,因此對眩光沒什么特別的要求,只要前照燈能夠照得更遠(yuǎn)更亮就可以了。隨著經(jīng)濟(jì)全球化進(jìn)程的加快,人們迫切要求消除這2種標(biāo)準(zhǔn)之間的差別,建立一個統(tǒng)一的國際標(biāo)準(zhǔn)。一種方法是將兩種標(biāo)準(zhǔn)中合理的部分綜合起來形成一個雙方都能接受的標(biāo)準(zhǔn);另外一種方法是建立一個包括多謝謝閱讀.種功能的前照燈系統(tǒng),它能根據(jù)不同的路況、天氣而采用不同的照明方式,這就是AFS系統(tǒng)。謝謝閱讀對于AFS前照燈系統(tǒng)的研究在國外已經(jīng)取得了很大進(jìn)展,日趨成熟。日本、歐洲等國的知名汽車制造商都紛紛推出自己的AFS,在高檔轎車中標(biāo)配AFS的同時,將其在中檔甚至中低檔轎車車型中作為選配列出。比如奧迪A8,寶馬5系,梅塞德斯CLS、E系、M系,大眾B6,雷克薩斯RX330,豐田皇冠等等。感謝閱讀在國外,AFS已經(jīng)得到廣泛應(yīng)用,而國內(nèi)在這方面的研究還比較少。引進(jìn)的AFS大多考慮生產(chǎn)商本國道路狀況,而國內(nèi)的道路狀況與日本和歐洲有較大不同,因此AFS并不能發(fā)揮最大的作用,對AFS在國內(nèi)的應(yīng)用帶來了阻力。國內(nèi)上海小糸公司已經(jīng)對天津豐田銳志AFS前照燈完成了國產(chǎn)化開發(fā)工作,用于新款豐田佳美AFS前照燈系統(tǒng)業(yè)已完成,但其主要是以技術(shù)引進(jìn)為主。精品文檔放心下載(三)AFS系統(tǒng)綜述1、AFS系統(tǒng)組成動態(tài)照明系統(tǒng)這一概念是20世紀(jì)90年代初提出的,經(jīng)過10多年的發(fā)展,智感謝閱讀能化自適應(yīng)前照燈照明系統(tǒng)AFS正式亮相。該系統(tǒng)可以根據(jù)汽車行駛的速度、謝謝閱讀偏離速率以及轉(zhuǎn)向角等表示汽車運(yùn)動狀態(tài)的參量來計算照明的方式。隨著2003精品文檔放心下載年靜態(tài)轉(zhuǎn)彎照明系統(tǒng)在歐洲汽車市場上的投放,2004開始嘗試引入動態(tài)轉(zhuǎn)彎照感謝閱讀明系統(tǒng),并很快受到歡迎和推廣。這種系統(tǒng)尤其在城鎮(zhèn)、鄉(xiāng)村、高速公路等不同精品文檔放心下載復(fù)雜路況條件下以及惡劣天氣中的應(yīng)用,將有益于駕駛安全性的提高。精品文檔放心下載.AFS系統(tǒng)是由傳感器組、傳輸通路、電控單元和執(zhí)行機(jī)構(gòu)組成。由于需要對多種車輛行駛狀態(tài)做出綜合判斷,因此AFS系統(tǒng)是一個多輸入多輸出的復(fù)雜的系統(tǒng)。其主要部分包括:精品文檔放心下載(1)前照燈——鹵素車燈、HID燈或LED燈等。精品文檔放心下載(2)傳感器——包括角度傳感器和速度傳感等。隨著速度和方向盤角度的改變,車身高度和傾斜度也會隨之改變,傳感器將這些參數(shù)的變化通過CAN(controllerareanetwork)總線傳輸給電控單元(ECU),電子控制單元收集所有傳感器傳來的數(shù)據(jù)控制執(zhí)行電機(jī),在理論上給出最合理的光分布,用來改善燈光照明。感謝閱讀(3)霧探測器——該探測器能應(yīng)用在惡劣天氣尤其是濃霧條件下,給出真實(shí)的實(shí)際可視距離。自動霧探測器可根據(jù)霧濃度大小給出正確的判斷,并調(diào)整照明方式,以適應(yīng)惡劣天氣,提高霧天駕駛的安全性。感謝閱讀(4)夜間可視系統(tǒng)——作為一個獨(dú)立的可視增強(qiáng)系統(tǒng),該系統(tǒng)主要分為遠(yuǎn)紅外線和近紅外線兩種特性,這兩種都能應(yīng)用在支持夜間可視的前照燈系統(tǒng)中。作為一個綜合系統(tǒng),可視光源和紅外線的綜合應(yīng)用能夠識別障礙物、步行者和其他物品。感謝閱讀2、AFS系統(tǒng)功能(1)陰雨天氣的照明:陰雨天氣,地面的積水會將行駛車輛打在地面上的光線,反射至對面會車司感謝閱讀機(jī)的眼睛中,使其目眩,進(jìn)而可能造成交通事故。AFS有效的解決方法是:前燈謝謝閱讀.發(fā)出特殊光型,減弱地面可能對會車產(chǎn)生眩光的區(qū)域的光強(qiáng)。精品文檔放心下載(2)轉(zhuǎn)彎道路的照明:傳統(tǒng)前燈的光線因為和車輛行駛方向保持著一致,所以不可避免的存在照明謝謝閱讀的暗區(qū)。一旦在彎道上存在障礙物,極易因為司機(jī)對其準(zhǔn)備不足,引發(fā)交通事故。精品文檔放心下載AFS解決的方法是:車輛在進(jìn)入彎道時,產(chǎn)生旋轉(zhuǎn)的光型,給彎道以足夠的照明。感謝閱讀(3)高速公路的照明:車輛在高速公路上行駛,因為具有極高的車速,所以需要前照燈比鄉(xiāng)村道路感謝閱讀照得更遠(yuǎn),照得更寬。而傳統(tǒng)的前燈卻存在著高速公路上照明不足的問題,如圖謝謝閱讀5所示。AFS采用了更為寬廣的光型解決這一問題。(4)城市道路的照明:城市中道路復(fù)雜、狹窄。傳統(tǒng)前照燈近光如圖7所示,因為光型比較狹長,精品文檔放心下載所以不能滿足城市道路照明的要求。AFS在考慮到車輛市區(qū)行駛速度受到限制的精品文檔放心下載情況下,可以產(chǎn)生比較寬闊的光型,有效地避免了與岔路中突然出現(xiàn)的行人、車精品文檔放心下載輛可能發(fā)生的交通事故。3、舉例:雷克薩斯自適應(yīng)照明系統(tǒng)(AFS)夜間行駛時,裝備自適應(yīng)照明系統(tǒng)的LEXUS雷克薩斯使駕駛員在轉(zhuǎn)彎時擁感謝閱讀有良好視野。感應(yīng)器將監(jiān)控車速和前輪轉(zhuǎn)向角度,以估計駕駛員三秒后的位置,感謝閱讀同時令前大燈照向此處。左、右前大燈可依據(jù)轉(zhuǎn)彎角度進(jìn)行不同程度的旋轉(zhuǎn),一謝謝閱讀個可旋轉(zhuǎn)5度,另一個可旋轉(zhuǎn)15度。.當(dāng)駛近彎道時,車燈將緊隨前方道路走向,而絕非簡單照亮道路邊緣。自適精品文檔放心下載應(yīng)照明系統(tǒng)有助于緩解夜間行車疲勞,尤其在不熟悉的連續(xù)彎路當(dāng)中行駛時。精品文檔放心下載三、需求分析一款A(yù)FS車輛前照燈系統(tǒng)需要提供以下服務(wù):1、三種車燈照明基本狀態(tài):近光寬照明,遠(yuǎn)光照明,轉(zhuǎn)彎死角照明;感謝閱讀2、具備車速傳感器和天氣狀況傳感器;3、將速度劃分為三檔,由低到高分別為城市速度,鄉(xiāng)村速度和高速公路速度;精品文檔放心下載4、城市照明時,采用近光燈照明;5、鄉(xiāng)村速度時,采用限制左側(cè)照明,即此時右側(cè)同時使用遠(yuǎn)光燈和近光燈,而左側(cè)使用近光燈;感謝閱讀6、高速路速度時,同時使用遠(yuǎn)光燈和近光燈照明;7、通過傳感器識別霧天,自動打開霧燈功能,并且,霧燈不影響其他燈的使用;感謝閱讀8、轉(zhuǎn)向時,自動觸發(fā)轉(zhuǎn)向照明燈,將所轉(zhuǎn)向的區(qū)域中的死角照亮,轉(zhuǎn)向結(jié)束,關(guān)閉轉(zhuǎn)向燈;謝謝閱讀9、為應(yīng)付緊急情況,所有的燈均可通過鍵盤手動控制;.10、出于安全性的考慮,車燈的變化需要在盡量短的時間內(nèi)完成,以盡可感謝閱讀能的提高駕駛員的客觀的可視范圍。四、實(shí)驗的基本內(nèi)容(一)AFS系統(tǒng)模型抽象與資源模擬1、系統(tǒng)中具備多種傳感器,并且可以周期性采樣各傳感器數(shù)據(jù),綜合處理感謝閱讀2、車燈作為系統(tǒng)的輸出設(shè)備,通過其組合表達(dá)系統(tǒng)的處理結(jié)果感謝閱讀3.模塊之間獨(dú)立性較強(qiáng),需要有軟開關(guān)可以屏蔽模塊。精品文檔放心下載針對實(shí)驗室內(nèi)的條件,結(jié)合實(shí)驗平臺中的資源,對車輛前照燈控制系統(tǒng)中的設(shè)備作如下模擬:謝謝閱讀1、用8個LED分別模擬各組車燈,對8個LED編號分別為1至8,1號和8號模擬側(cè)光燈,2號和7號模擬霧燈,3號和6號模擬外側(cè)遠(yuǎn)光燈,4號和5號模擬近光燈。示意圖如下:謝謝閱讀LED1 LED2 LED3 LED4 LED5 LED6 LED7 LED8精品文檔放心下載左遠(yuǎn)光 左近光 右近光 右遠(yuǎn)光左側(cè)燈 霧燈 霧燈 右側(cè)燈燈 燈 燈 燈2、AD轉(zhuǎn)換器0模擬方向盤,居中為正向行駛3、AD轉(zhuǎn)化器1模擬車速傳感器.4、鍵盤模擬駕駛員車內(nèi)控制按鈕。1號鍵和3號鍵為左右側(cè)的近光燈,4號鍵和6號鍵為左右側(cè)的遠(yuǎn)光燈,7號鍵和9號鍵為左右側(cè)光燈,5控制霧燈。NumLock鍵用于手動控制和自動控制的切換。謝謝閱讀5、AD轉(zhuǎn)換器2模擬空氣中霧氣數(shù)據(jù)采樣。(二)環(huán)節(jié)實(shí)驗準(zhǔn)備根據(jù)上述分析,實(shí)驗準(zhǔn)備階段需要熟悉的環(huán)節(jié)實(shí)驗有:1、AD轉(zhuǎn)換器實(shí)驗主要目的是知道編程實(shí)現(xiàn)A/D功能的主要方法。AD轉(zhuǎn)換器實(shí)驗是系統(tǒng)中有關(guān)AD轉(zhuǎn)換器的基礎(chǔ)模塊實(shí)現(xiàn)的基礎(chǔ)。精品文檔放心下載新建工程,將Exp5中的文件添加到工程。編寫獲取轉(zhuǎn)換結(jié)果函數(shù)(main.c)3)主函數(shù)(main.c).2、鍵盤和LED實(shí)驗?zāi)康氖菍W(xué)習(xí)鍵盤及LED驅(qū)動原理,掌握鍵盤及LED驅(qū)動芯片的使用方法。精品文檔放心下載鍵盤和LED實(shí)驗是系統(tǒng)中鍵盤和LED兩個基礎(chǔ)模塊實(shí)現(xiàn)的基礎(chǔ)。精品文檔放心下載新建工程,將Exp3中的文件添加到工程。2)定義zlg7289寄存器(zlg7289.h)#defineZLG7289_CS(0x20)//GPB5#defineZLG7289_KEY(0x10)//GPG4#defineZLG7289_ENABLE()感謝閱讀do{Zlg7289SIOBand=rSBRDR;Zlg7289SIOCtrl=rSIOCON;rSIOCON=0x31;rSBRDR=0xff;rPDATB&=(~ZLG7289_CS);}while(0)謝謝閱讀#defineZLG7289_DISABLE()do{rPDATB|=ZLG7289_CS;rSBRDR=Zlg7289SIOBand;rSIOCON=Zlg7289SIOCtrl;}while(0)精品文檔放心下載3)編寫zlg7289驅(qū)動函數(shù)(zlg7289.c)感謝閱讀4)定義鍵盤映射表:(Keyboard16.c)unsignedcharKeyBoard_Map[]={4,8,11,0,0,0,0,0,5,9,12,15,1,0,0,0,6,10,13,16,2,3,0,0,7,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};精品文檔放心下載//64,鍵值映射表。.通過查找鍵盤映射表來確定鍵盤掃描碼對應(yīng)的按鍵值。5)定義鍵盤讀取函數(shù):(Keyboard16.c)編寫主函數(shù),將按鍵值在數(shù)碼管上顯示。3、消息循環(huán)實(shí)驗?zāi)康氖菍W(xué)習(xí)使用系統(tǒng)的消息循環(huán)。掌握如何通過系統(tǒng)的消息循環(huán)來響應(yīng)鍵盤的消息,同時學(xué)會使用圖形模式下的液晶屏文字顯示函數(shù)。最終實(shí)現(xiàn)按不同的鍵,在屏幕上顯示不同的文字;同時,把鍵盤的按鍵號碼輸出到PC機(jī)的終端顯示。消息循環(huán)實(shí)驗部分是本系統(tǒng)的一個核心部分,是各個模塊之間的一個通信紐帶。感謝閱讀1、新建工程,將Exp1中的文件加入工程。2、打開Main.c文件,仔細(xì)閱讀Key_Scan_Task函數(shù)——系統(tǒng)的鍵盤掃描函數(shù)。理解系統(tǒng)中Main_Task任務(wù)消息隊列的創(chuàng)建和發(fā)送的過程。感謝閱讀3、在Main_Task任務(wù)中加入代碼,實(shí)現(xiàn)消息循環(huán)。即:等待消息、處理感謝閱讀(響應(yīng))消息、刪除消息。使用WaitMessage接收消息,通常等待時間設(shè)置為無限長。精品文檔放心下載如圖4-1所示,系統(tǒng)的消息循環(huán)是一個無限循環(huán)。系統(tǒng)的消息結(jié)構(gòu)定義如下:typedefstruct{.POS_CtrlpOSCtrl;//消息所發(fā)到的窗口(控件)謝謝閱讀U32Message;U32WParam;U32LParam;}OSMSG,*POSMSG;收到消息以后(即,WaitMessage函數(shù)返回),通過判斷消息結(jié)構(gòu)中Message的成員來判斷消息類型。如果是鍵盤消息,則Message的值為OSM_KEY,Wparam參數(shù)存儲的是按鍵的號碼,LParam參數(shù)存儲的是同時系統(tǒng)按下的功能鍵(如果沒有,則為0)。感謝閱讀⑷開始等待下一條消息之前必須使用DeleteMessage刪除消息,釋放系統(tǒng)的內(nèi)存空間。4、編寫鍵盤消息響應(yīng)函數(shù),處理鍵盤的消息。當(dāng)有鍵盤消息收到的時候,把按鍵號碼顯示在液晶屏上,同時,發(fā)送給PC機(jī)的終端。感謝閱讀4、操作系統(tǒng)移植實(shí)驗?zāi)康氖钦莆蘸屠斫釻C/OS-II內(nèi)核的主要結(jié)構(gòu)及UC/OS-II內(nèi)核移植到ARM7處理器上的基本方法。操作系統(tǒng)移植實(shí)驗部分是系統(tǒng)中最核心的部分,控制、調(diào)度著其他模塊正常、協(xié)調(diào)地運(yùn)行。感謝閱讀實(shí)驗主要的內(nèi)容(1)、該實(shí)驗的文件分為兩類,.其一是STARTUP目錄下的系統(tǒng)初始化、配置等文件,其二是μC/OS-Ⅱ的全部源碼,arch目錄下的3個文件是和處理器架構(gòu)相關(guān)的。謝謝閱讀(2).設(shè)置os_cpu.h中與處理器和編譯器相關(guān)的代碼typedefunsignedcharBOOLEAN;typedefunsignedcharINT8U;感謝閱讀typedefsignedcharINT8S;謝謝閱讀typedefunsignedintINT16U;精品文檔放心下載typedefsignedintINT16S;謝謝閱讀typedefunsignedlongINT32U;感謝閱讀typedefsignedlongINT32S;謝謝閱讀typedeffloatFP32;typedefdoubleFP64;typedefunsignedintOS_STK;謝謝閱讀typedefunsignedintOS_CPU_SR;感謝閱讀externintINTS_OFF(void);謝謝閱讀externvoidINTS_ON(void);謝謝閱讀#defineOS_ENTER_CRITICAL(){cpu_sr=INTS_OFF();}感謝閱讀#defineOS_EXIT_CRITICAL(){if(cpu_sr==0)INTS_ON();}感謝閱讀#defineOS_STK_GROWTH11)與編譯器相關(guān)的數(shù)據(jù)類型因為不同的微處理器有不同的字長,所以μC/OS-Ⅱ的移植包括了一系列的類型定義以確保其可移植性。尤其是μC/OS-Ⅱ代碼從不使用C的short,int謝謝閱讀.long等數(shù)據(jù)類型,因為它們是與編譯器相關(guān)的,不可移植。相反的,我們定義的整形數(shù)據(jù)結(jié)構(gòu)既是可移植的又是直觀的。為了方便,雖然μC/OS-Ⅱ不使用浮點(diǎn)數(shù)據(jù),但我們還是定義了浮點(diǎn)數(shù)據(jù)類型。感謝閱讀例如,INT16U數(shù)據(jù)類型總是代表16位的無符號整數(shù)。現(xiàn)在,μC/OS-Ⅱ精品文檔放心下載和用戶的應(yīng)用程序就可以估計出聲明為該數(shù)據(jù)類型的變量的取值范圍是0~65535。將μC/OS-Ⅱ移植到32位的處理器上也就意味著INT16U實(shí)際被聲明為無符號短整形數(shù)據(jù)結(jié)構(gòu)而不是無符號整數(shù)數(shù)據(jù)結(jié)構(gòu)。但是,μC/OS-Ⅱ所處理的仍然是INT16U。精品文檔放心下載用戶必須將任務(wù)堆棧的數(shù)據(jù)類型告訴給μC/OS-Ⅱ。這個過程是通過為OS_STK聲明正確的C數(shù)據(jù)類型來完成的。我們的處理器上的堆棧成員是16位的,所以將OS_TSK聲明為無符號整形數(shù)據(jù)類型。所有的任務(wù)堆棧都必須用OS_TSK聲明數(shù)據(jù)類型。精品文檔放心下載2)OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()精品文檔放心下載與所有的實(shí)時內(nèi)核一樣,μC/OS-Ⅱ需要先禁止中斷再訪問代碼的臨界區(qū),并且在訪問完畢后重新允許中斷。這就使得μC/OS-Ⅱ能夠保護(hù)臨界區(qū)代碼免受多任務(wù)或中斷服務(wù)例程(ISR)的破壞。在S3C44B0X上是通過兩個函數(shù)精品文檔放心下載OS_CPU_A.S)實(shí)現(xiàn)開關(guān)中斷的。INTS_OFFmrsr0,cpsr;當(dāng)前CSRmovr1,r0;復(fù)制屏蔽orrr1,r1,#0xC0;屏蔽中斷位msrCPSR,r1;關(guān)中斷(IRQandFIQ).andr0,r0,#0x80;從初始CSR返回FIQ位movpc,lr;返回INTS_ONmrsr0,cpsr;當(dāng)前CSRbicr0,r0,#0xC0;屏蔽中斷msrCPSR,r0;開中斷(IRQandFIQ)movpc,lr;返回3)OS_STK_GROWTH絕大多數(shù)的微處理器和微控制器的堆棧是從上往下長的。但是某些處理器是用另外一種方式工作的。μC/OS-Ⅱ被設(shè)計成兩種情況都可以處理,只要在結(jié)構(gòu)常量OS_STK_GROWTH中指定堆棧的生長方式就可以了。精品文檔放心下載OS_STK_GROWTH為0表示堆棧從下往上長。精品文檔放心下載OS_STK_GROWTH為1表示堆棧從上往下長。謝謝閱讀(3).用C語言編寫6個操作系統(tǒng)相關(guān)的函數(shù)(OS_CPU_C.C)謝謝閱讀1)OSTaskStkInitOSTaskCreate()和OSTaskCreateExt()通過調(diào)用OSTaskStkInit()來初始化任務(wù)的堆棧結(jié)構(gòu)。因此,堆棧看起來就像剛發(fā)生過中斷并將所有的寄存器保存到堆棧中的情形一樣。圖12-2顯示了OSTaskStkInt()放到正被建立的任務(wù)堆棧中的東西。這里我們定義了堆棧是從上往下長的。精品文檔放心下載在用戶建立任務(wù)的時候,用戶傳遞任務(wù)的地址,pdata指針,任務(wù)的堆棧棧頂和任務(wù)的優(yōu)先級給OSTaskCreate()和OSTaskCreateExt()。一旦用戶初始化了堆棧,OSTaskStkInit()就需要返回堆棧指針?biāo)傅牡刂?。OSTaskCreate()感謝閱讀.OSTaskCreateExt()會獲得該地址并將它保存到任務(wù)控制塊(OS_TCB)中。感謝閱讀OS_STK*OSTaskStkInit(void(*task)(void*pd),void*pdata,OS_STK感謝閱讀*ptos,INT16Uopt){unsignedint*stk;stk=(unsignedint*)ptos;/*裝載堆棧指針*/opt++;/*為新任務(wù)建立堆棧*/謝謝閱讀*--stk=(unsignedint)task;/*pc*/謝謝閱讀*--stk=(unsignedint)task;/*lr*/*--stk=12;/*r12*/*--stk=11;/*r11*/*--stk=10;/*r10*/*--stk=9;/*r9*/*--stk=8;/*r8*/謝謝閱讀*--stk=7;/*r7*/*--stk=6;/*r6*/精品文檔放心下載*--stk=5;/*r5*/*--stk=4;/*r4*/謝謝閱讀*--stk=3;/*r3*/*--stk=2;/*r2*/感謝閱讀*--stk=1;/*r1*/*--stk=(unsignedint)pdata;/*r0*/精品文檔放心下載*--stk=(SUPMODE);/*cpsr*/感謝閱讀*--stk=(SUPMODE);/*spsr*/謝謝閱讀return((OS_STK*)stk);}2)OSTaskCreateHook當(dāng)用OSTaskCreate()和OSTaskCreateExt()建立任務(wù)的時候就會調(diào)用OSTaskCreateHook()。該函數(shù)允許用戶或使用移植實(shí)例的用戶擴(kuò)展μC/OS-Ⅱ感謝閱讀.功能。當(dāng)μC/OS-Ⅱ設(shè)置完了自己的內(nèi)部結(jié)構(gòu)后,會在調(diào)用任務(wù)調(diào)度程序之前調(diào)感謝閱讀OSTaskCreateHook()。該函數(shù)被調(diào)用的時候中斷是禁止的。因此用戶應(yīng)盡量減少該函數(shù)中的代碼以縮短中斷的響應(yīng)時間。感謝閱讀OSTaskCreateHook()被調(diào)用的時候,它會收到指向已建立任務(wù)的感謝閱讀OS_TCB的指針,這樣它就可以訪問所有的結(jié)構(gòu)成員了。函數(shù)原型:謝謝閱讀voidOSTaskCreateHook(OS_TCB*ptcb)感謝閱讀3)OSTaskDelHook當(dāng)任務(wù)被刪除的時候就會調(diào)用OSTaskDelHook()。該函數(shù)在把任務(wù)從μC/OS-Ⅱ的內(nèi)部任務(wù)鏈表中解開之前被調(diào)用。當(dāng)OSTaskDelHook()被調(diào)用的時候,它會收到指向正被刪除任務(wù)的OS_TCB的指針,這樣它就可以訪問所有的結(jié)構(gòu)成員了。OSTaskDelHook()可以來檢驗TCB擴(kuò)展是否被建立(一個非空指針)并進(jìn)行一些清除操作。精品文檔放心下載函數(shù)原型:voidOSTaskDelHook(OS_TCB*ptcb)感謝閱讀4.)OSTaskSwHook當(dāng)發(fā)生任務(wù)切換的時候就會調(diào)用OSTaskSwHook()。OSTaskSwHook()可以直接訪問OSTCBCur和OSTCBHighRdy,因為它們是全局變量。OSTCBCur指向被切換出去的任務(wù)OS_TCB,而OSTCBHighRdy指向新任務(wù)OS_TCB。注意在調(diào)用OSTaskSwHook()期間中斷一直是被禁止的。因此用戶應(yīng)盡量減少該函數(shù)中的代碼以縮短中斷的響應(yīng)時間。感謝閱讀函數(shù)原型:voidOSTaskSwHook(void).5)OSTaskStatHookOSTaskStatHook()每秒鐘都會被OSTaskStat()調(diào)用一次。用戶可以用精品文檔放心下載OSTaskStatHook()來擴(kuò)展統(tǒng)計功能。例如,用戶可以保持并顯示每個任務(wù)的執(zhí)謝謝閱讀行時間,每個任務(wù)所用的CPU份額,以及每個任務(wù)執(zhí)行的頻率等。精品文檔放心下載函數(shù)原型:voidOSTaskStatHook(void)謝謝閱讀6)OSTimeTickHookOSTimeTickHook()在每個時鐘節(jié)拍都會被OSTaskTick()調(diào)用。實(shí)際上,OSTimeTickHook()是在節(jié)拍被μC/OS-Ⅱ真正處理,并通知用戶的移植實(shí)例或應(yīng)用程序之前被調(diào)用的。函數(shù)原型:謝謝閱讀voidOSTimeTickHook(void)精品文檔放心下載后5個函數(shù)為鉤子函數(shù),可以不加代碼。只有當(dāng)OS_CFG.H中的OS_CPU_HOOKS_EN被置為1時才會產(chǎn)生這些函數(shù)的代碼。精品文檔放心下載(4).用匯編語言編寫4個與處理器相關(guān)的函數(shù)(OS_CPU.ASM)精品文檔放心下載1)OSStartHighRdy();運(yùn)行優(yōu)先級最高的就緒任務(wù)OSStartHighRdy精品文檔放心下載LDRr4,addr_OSTCBCur;得到當(dāng)前任務(wù)TCB地址感謝閱讀LDRr5,addr_OSTCBHighRdy;得到昀高優(yōu)先級任務(wù)TCB地址謝謝閱讀LDRr5,[r5];獲得堆棧指針LDRsp,[r5];轉(zhuǎn)移到新的堆棧中STRr5,[r4];設(shè)置新的當(dāng)前任務(wù)TCB地址謝謝閱讀.LDMFDsp!,{r4};MSRSPSR,r4;LDMFDsp!,{r4};從棧頂獲得新的狀態(tài)感謝閱讀MSRCPSR,r4;CPSR處于SVC32Mode模式LDMFDsp!,{r0-r12,lr,pc};運(yùn)行新的任務(wù)2)OS_TASK_SW();任務(wù)級的任務(wù)切換函數(shù)OS_TASK_SW謝謝閱讀STMFDsp!,{lr};保存pcSTMFDsp!,{lr};保存lrSTMFDsp!,{r0-r12};保存寄存器和返回地址MRSr4,CPSRSTMFDsp!,{r4};保存當(dāng)前的PSR謝謝閱讀MRSr4,SPSRSTMFDsp!,{r4};保存SPSR謝謝閱讀;OSPrioCur=OSPrioHighRdy謝謝閱讀LDRr4,addr_OSPrioCurLDRr5,addr_OSPrioHighRdy感謝閱讀LDRBr6,[r5]STRBr6,[r4];得到當(dāng)前任務(wù)TCB地址LDRr4,addr_OSTCBCurLDRr5,[r4]STRsp,[r5];保存sp在被占先的任務(wù)的TCB謝謝閱讀;得到最高優(yōu)先級任務(wù)TCB地址.LDRr6,addr_OSTCBHighRdyLDRr6,[r6]LDRsp,[r6];得到新任務(wù)堆棧指針;OSTCBCur=OSTCBHighRdySTRr6,[r4];設(shè)置新的當(dāng)前任務(wù)的TCB地址謝謝閱讀;保存任務(wù)方式寄存器LDMFDsp!,{r4}MSRSPSR,r4LDMFDsp!,{r4}MSRCPSR,r4;返回到新任務(wù)的上下文LDMFDsp!,{r0-r12,lr,pc}感謝閱讀3)OSIntCtxSw();中斷級的任務(wù)切換函數(shù)謝謝閱讀OSIntCtxSwaddr7,sp,#16;保存寄存器指針LDRsp,=IRQStack;FIQ_STACK精品文檔放心下載mrsr1,SPSR;得到暫停的PSRorrr1,r1,#0xC0;關(guān)閉IRQ,FIQ.msrCPSR_cxsf,r1;轉(zhuǎn)換模式(應(yīng)該是SVC_MODE)ldrr0,[r7,#52];從IRQ堆棧中得到IRQ'sLR(任務(wù)PC).subr0,r0,#4;當(dāng)前PC地址是(saved_LR-4)STMFDsp!,{r0};保存任務(wù)PCSTMFDsp!,{lr};保存LRmovlr,r7;保存FIQ堆棧ptrinLR(轉(zhuǎn)到nuker7)ldmfdlr!,{r0-r12};從FIQ堆棧中得到保存的寄存器STMFDsp!,{r0-r12};在任務(wù)堆棧中保存寄存器;在任務(wù)堆棧上保存PSR和任務(wù)PSRMRSr4,CPSRbicr4,r4,#0xC0;使中斷位處于使能態(tài)精品文檔放心下載STMFDsp!,{r4};保存任務(wù)當(dāng)前PSR謝謝閱讀MRSr4,SPSRSTMFDsp!,{r4};SPSR;OSPrioCur=OSPrioHighRdy//改變當(dāng)前程序LDRr4,addr_OSPrioCurLDRr5,addr_OSPrioHighRdy感謝閱讀LDRBr6,[r5]STRBr6,[r4];得到被占先的任務(wù)TCB感謝閱讀LDRr4,addr_OSTCBCurLDRr5,[r4]STRsp,[r5];保存sp在被占先的任務(wù)的TCB;得到新任務(wù)TCB地址感謝閱讀LDRr6,addr_OSTCBHighRdyLDRr6,[r6].LDRsp,[r6];得到新任務(wù)堆棧指針;OSTCBCur=OSTCBHighRdySTRr6,[r4];設(shè)置新的當(dāng)前任務(wù)的TCB地址精品文檔放心下載LDMFDsp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中政治專題51聯(lián)合國:最具普遍性的國際組織教案新人教版選修3
- 2024-2025學(xué)年高中物理第二章10第8節(jié)多用電表的原理練習(xí)含解析新人教版選修3-1
- 2025年中國汽車夜視儀行業(yè)市場評估分析及發(fā)展前景調(diào)研戰(zhàn)略研究報告
- 2025年淺析建筑工程管理的智能化
- 2025年協(xié)議分析器行業(yè)深度研究分析報告
- 中國廣告印刷行業(yè)市場運(yùn)行現(xiàn)狀及未來發(fā)展預(yù)測報告
- 2025年羊絨制品項目可行性研究報告
- 2025年手搖油泵項目可行性研究報告
- 盆角齒項目可行性研究報告評審方案設(shè)計2024年立項詳細(xì)標(biāo)準(zhǔn)+甲級
- 2025年中國供應(yīng)用儀表行業(yè)市場全景評估及發(fā)展前景預(yù)測報告
- 美團(tuán)外賣騎手服務(wù)合同(2025年度)
- 應(yīng)急預(yù)案解讀與實(shí)施
- 2025年春季學(xué)期團(tuán)委工作安排表
- 2025年《國有企業(yè)領(lǐng)導(dǎo)人員腐敗案例剖析》心得體會樣本(3篇)
- 廣告行業(yè)安全培訓(xùn)詳細(xì)介紹
- 2024-2029年全球及中國氨能源(綠氨)應(yīng)用可行性研究與投資戰(zhàn)略規(guī)劃分析報告
- 2025福南平市建武夷水務(wù)發(fā)展限公司招聘21人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年上半年工業(yè)和信息化部裝備工業(yè)發(fā)展中心應(yīng)屆畢業(yè)生招聘(第二批)易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年中遠(yuǎn)海運(yùn)物流有限公司招聘筆試參考題庫含答案解析
- 2024年廣州市海珠區(qū)衛(wèi)生健康系統(tǒng)招聘事業(yè)單位工作人員筆試真題
- 一科一品一骨科護(hù)理
評論
0/150
提交評論