久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

嵌入式總結(jié)報告

時間:2019-05-12 13:50:20下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《嵌入式總結(jié)報告》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《嵌入式總結(jié)報告》。

第一篇:嵌入式總結(jié)報告

嵌入式實驗報告

期末論文

學生姓名: 楊佳潔 學 號: 11570118 班 級: 11計算機2班 指導教師: 黃 靜

2014年5月20日

嵌入式程序設計與應用課程主要以理論與實驗結(jié)合的方式講授,包括設備驅(qū)動,信號轉(zhuǎn)換I、II,幀緩沖設備驅(qū)動和觸摸屏這五部分,通過學習,我逐漸加深了對linux的理解。

在模塊驅(qū)動部分,通過老師的講解,我了解了Linux驅(qū)動程序的結(jié)構(gòu),掌握了程序驅(qū)動的結(jié)構(gòu)體和操作函數(shù)這些基本知識,尤其知道了驅(qū)動程序負責將應用程序如讀、寫等操作正確無誤的傳遞給相關(guān)的硬件,并使硬件能夠做出正確反應的代碼。驅(qū)動程序隱藏了硬件的工作細節(jié),應用程序只需要通過一組標準化的接口實現(xiàn)對硬件的操作。

S3C2410X 芯片內(nèi)部集成了一個8 路10 位A/ D 轉(zhuǎn)換器,其中第5、第6 通道可用于支持觸摸屏接口,而AD轉(zhuǎn)換器的功能是將輸入的模擬信號轉(zhuǎn)換成數(shù)字信號,驅(qū)動程序主要依賴于ADC控制寄存器、ADC數(shù)據(jù)寄存器等進行讀寫操作。而實驗過程中涉及的驅(qū)動程序加載則是之前未曾接觸的知識,所以在知道了編譯方式分為動、靜兩種方式后,我掌握了如何對程序進行動態(tài)編譯方式。

系統(tǒng)有多個顯示卡時,Linux 下可支持多個幀緩沖設備,F(xiàn)rameBuffer是 Linux 為顯示設備提供的一個接口,把顯存抽象后的一種設備。課程中我主要理解了相關(guān)程序代碼的分析,尤其對FB程序中內(nèi)存的申請以及填充描點函數(shù)有了較為詳細的理解。

在觸摸屏驅(qū)動部分,理論方面我熟悉了解了觸摸屏的原理,即檢測觸摸點被壓下后的電壓值來返回坐標。通過代碼分析,掌握了觸摸屏進行輸出標定、與LED顯示器配合的過程。課程的最后一部分是AD轉(zhuǎn)換,與之前的轉(zhuǎn)換不同之處在于本次目的是將采集的數(shù)據(jù)呈現(xiàn)在html網(wǎng)頁中。所以在實驗過程中,我在掌握boa服務器的編譯和配置之外還掌握了制作網(wǎng)頁的基本結(jié)構(gòu)。

當然雖然基本理解了老師講解的理論知識但是在實驗中仍然遇到了很多問題。如在文件共享時由于忽略pc機與虛擬機必須在同一網(wǎng)段的條件導致無法使用提供的src;修改文件中涉及的路徑與實際情況不相符使程序編譯出現(xiàn)錯誤。還有一些尚未解決的為題,在觸摸屏實驗部分“消除默認路徑”部分,有時會出現(xiàn)“沒有此進程”的錯誤提示,通過重啟linux可避免這個錯誤,但是出現(xiàn)錯誤的原因不是很清楚。

8周的課程結(jié)束了,它拓展了我對嵌入式應用涉及的領(lǐng)域的認識,掌握了很多之前沒有接觸過的知識,也在老師和同學的幫助下比較順利地完成了實驗,尤其是對在linux系統(tǒng)及xshell下操作的基本命令有了很大的擴展和更加熟練的使用。但是老師在講解理論知識的時候主要關(guān)注的是程序代碼的解析,所以在做實驗時對比較復雜的實驗步驟理解的不夠透徹,希望自己日后可以在不斷的鍛煉中逐漸理解。相信無論是理論知識還是實驗中的實踐經(jīng)驗都對我日后深入學習嵌入式有很大的幫助。

第二篇:嵌入式行業(yè)調(diào)查總結(jié)報告

行業(yè)調(diào)查總結(jié)報告

一、嵌入式工程師個人基本情況

在“2012-2013中國嵌入式開發(fā)從業(yè)人員調(diào)查”活動中,針對行業(yè)內(nèi)嵌入式工程師個人基本情況的調(diào)查,除了延續(xù)前四屆調(diào)查問卷的專業(yè)角度和務實的關(guān)注點,對公眾普遍關(guān)注的工作經(jīng)驗、學歷、薪資范圍等關(guān)鍵項著手進行數(shù)據(jù)的匯總和分析之外,我們還增加了嵌入式工程師地域分布的調(diào)查。同時也綜合之前調(diào)查匯總的結(jié)果數(shù)據(jù),通過縱向的對比和分析,力求更全面地呈現(xiàn)出一個直觀的、在時間跨度上的變化趨勢。

1、工作經(jīng)驗

來自華清遠見2012-2013的行業(yè)調(diào)查數(shù)據(jù)的結(jié)果顯示,目前從事嵌入式開發(fā)“不到1年”和“1-2年”的工程師所占的比例依然是最大的,分別是29%和25%,占總參與調(diào)研人數(shù)的54%,對比去年增加了4個百分點,而具備相對豐富開發(fā)經(jīng)驗的嵌入式工程師(2年以上工作經(jīng)驗)則占總調(diào)研人數(shù)的46%。對比2008至2012年這幾年的調(diào)查數(shù)據(jù),我們不難得出這樣的結(jié)論:伴隨著整個嵌入式行業(yè)的快速穩(wěn)步發(fā)展,嵌入式專業(yè)領(lǐng)域內(nèi)技術(shù)研發(fā)人才分布已經(jīng)呈現(xiàn)出日趨合理的比例結(jié)構(gòu),過去的一年,有更多的一線研發(fā)工程師投身到嵌入式這一熱門行業(yè)中,并且繼續(xù)呈現(xiàn)出逐年增長的趨勢。結(jié)合本報告后面關(guān)于“企業(yè)人才需求現(xiàn)狀”的調(diào)查結(jié)果,我們也不難分析出,嵌入式企業(yè)的發(fā)展速度和專業(yè)人才的成長速度依然有一定的差距,行業(yè)內(nèi)專業(yè)研發(fā)工程師供不應求的狀態(tài)扔將會持續(xù)。嵌入式開發(fā)涉及領(lǐng)域極廣,嵌入式產(chǎn)品在日趨智能的工作和生活中也無處不在,巨大的市場發(fā)展空間將為更多投身嵌入式領(lǐng)域的工程師提供更為廣闊的職業(yè)發(fā)展平臺,我們相信,伴隨著未來幾年更多的專業(yè)嵌入式人才的加盟,這個行業(yè)將在堅實的步伐中高昂挺進全盛期。

2、學歷要求

來自2012-2013的調(diào)查統(tǒng)計數(shù)據(jù)顯示,嵌入式開發(fā)從業(yè)人員的學歷仍然以本科(60%)和碩士(23%)居多,占所有參與調(diào)查人員的 83%,和去年調(diào)查報告結(jié)果基本持平。從中可以看出:在整個嵌入式行業(yè)的從業(yè)人員中,本科生和研究生憑借其扎實的理論功底和良好的綜合素質(zhì),依然是嵌入式開發(fā)從業(yè)者的主要群體,并且在未來一段時間內(nèi)也將持續(xù)穩(wěn)居此項調(diào)查的前兩位。同時,我們也可以進一步得出結(jié)論:在社會生活壓力不斷增大、大學生就業(yè)率更低、難度更高的今天,高校專業(yè)學科建設和教學改革的步伐越來越快,嵌入式及相關(guān)專業(yè)在大學校園內(nèi)的普及和發(fā)展也達到了前所未有的速度。在高校更加貼近用人企業(yè)真實需求的實訓模式的引導下,越來越多的計算機、電子、自動化等相關(guān)專業(yè)及物理、數(shù)學、信息工程等基礎專業(yè)的本科生和研究生開始將自己的職業(yè)規(guī)劃定位到高薪誘人且發(fā)展前景極為廣闊的專業(yè)嵌入式開發(fā)領(lǐng)域。而作為一個具有龐大基數(shù)的群體,本科生勢必將成為未來解決嵌入式人才供不應求問題的一個巨大突破口,而對于這樣一個蓬勃發(fā)展的專業(yè)領(lǐng)域來說,也勢必將為更多大學生提供更高質(zhì)量的就業(yè)機會,從而有效推動相關(guān)專業(yè)的大學畢業(yè)生與企業(yè)人才真實需求的無縫對接。

3、地域分布

嵌入式行業(yè)從業(yè)人員的地域分布為本調(diào)查活動的新增調(diào)研項目,調(diào)查統(tǒng)計數(shù)據(jù)顯示,嵌入式開發(fā)從業(yè)人員主要集中在北京、深圳、上海、廣州、成都等一線城市,分別占總調(diào)研人數(shù)的18%、13%、11%、9%、8%,總計占59%。這一調(diào)研數(shù)據(jù)顯示,高新技術(shù)企業(yè)密集的大城市仍然是廣大嵌入式開發(fā)者獲取更多工作機會及長遠職業(yè)發(fā)展空間的首選。隨著國家中西部開發(fā)的不斷加強以及更多創(chuàng)新產(chǎn)業(yè)園和國際知名企業(yè)的入駐落戶,武漢、西安等中西部城市也將呈現(xiàn)越來越旺盛的嵌入式人才需求,相信這將為更多的嵌入式開發(fā)者提供更為廣闊的地域發(fā)展空間及就業(yè)機會,任何城市經(jīng)濟的發(fā)展,都離不開眾多專業(yè)人才的加入。

4、薪資水平

來自華清遠見2012-2013的調(diào)查統(tǒng)計數(shù)據(jù)顯示,嵌入式行業(yè)從業(yè)人員月薪為3000-8000元的比例占到69%,與去年保持一致,月薪3000以下的比例減少了一個百分點,8000元以上高薪部分的比例略有增加。結(jié)合本次調(diào)查在職工程師“工作經(jīng)驗”項目的統(tǒng)計結(jié)果可以看出,工作在 1-2年的工程師薪水基本會在3000-8000元的范圍,而隨著工作年限的增加,薪資水平也會有較明顯的提高。對于嵌入式工程師來說,“經(jīng)驗”會顯得尤為重要,相比其他IT從業(yè)人員,嵌入式工程師的開發(fā)經(jīng)驗將會使薪水增長更快。當然對于新入行的嵌入式工程師來說,也將面臨巨大的機遇,從個人職業(yè)發(fā)展角度來看,未來將會有更大的發(fā)展空間。該項調(diào)查通過客觀的數(shù)據(jù)分析結(jié)果,全面反映了嵌入式開發(fā)從業(yè)人員的一個整體薪資待遇情況,顯然由于整個嵌入式行業(yè)正處于高速發(fā)展期,必然使得專業(yè)人才的薪資發(fā)展空間與其個人專業(yè)技術(shù)經(jīng)驗的積累直接相關(guān)。人才永遠是企業(yè)發(fā)展的核心動力,而嵌入式工程師作為一個高薪誘人、極具成長空間及發(fā)展?jié)摿Φ膶I(yè)技術(shù)崗位,也必將成為推動整個嵌入式行業(yè)更加快速地向前邁進的中堅力量。

二、嵌入式行業(yè)公司的基本狀況

接下來的調(diào)查是針對與技術(shù)工程師息息相關(guān)的嵌入式行業(yè)中眾多產(chǎn)品研發(fā)企業(yè)的發(fā)展現(xiàn)狀,以期能夠幫助大家從另外一個角度,借助更廣闊的視野來分析了解整個嵌入式行業(yè)的現(xiàn)狀。結(jié)合嵌入式企業(yè)在研發(fā)產(chǎn)品應用及核心技術(shù)領(lǐng)域的特點,本部分調(diào)查內(nèi)容主要從“所屬行業(yè)分布情況、公司規(guī)模、軟件開發(fā)平臺、軟件開發(fā)調(diào)試工具、軟件開發(fā)語言、硬件開發(fā)平臺、處理器芯片、軟硬件人員安排、未來嵌入式操作系統(tǒng)首選”等方面展開,其中本調(diào)查中新增的項目包括:軟件開發(fā)調(diào)試工具、處理器芯片、未來嵌入式操作系統(tǒng)首選等項目,以幫助大家更加全面而有針對性地了解嵌入式行業(yè)內(nèi),專業(yè)研發(fā)企業(yè)的整體狀況及未來的技術(shù)發(fā)展趨勢。

1、所屬行業(yè)分布情況

作為智能設備及終端產(chǎn)品的核心基礎,嵌入式技術(shù)的應用已經(jīng)滲透到社會工作及生活的各個領(lǐng)域。由于嵌入式技術(shù)的成熟應用,也進一步加速了移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)及云計算的產(chǎn)業(yè)化進程。來自2012-2013的行業(yè)調(diào)查數(shù)據(jù)顯示,目前嵌入式產(chǎn)品應用最多的三大領(lǐng)域依然是“消費電子、通信設備、工業(yè)控制”,所占比例分別是23%、17%和13%,三大領(lǐng)域所占比例之和占53%,其中消費電子所占比例將相較去年有明顯增長,相信這與智能手機、平板電腦等移動設備的大面積普及有直接關(guān)系。而占據(jù)9%的“其他”一項選擇中,參與調(diào)查者主要選擇的是“電力設備、智能電網(wǎng)、物聯(lián)網(wǎng)、儀器儀表、教育”等行業(yè)。我們有理由相信,這些都充分表明,未來嵌入式系統(tǒng)將會走進IT產(chǎn)業(yè)的各個領(lǐng)域,成為推動整個產(chǎn)業(yè)發(fā)展的核心中堅力量。

2、公司規(guī)模

從“公司規(guī)模”調(diào)查項的統(tǒng)計結(jié)果可以看出,100人以內(nèi)的小型公司所占比例為49%,基本上接近一半,100-500人的中型公司所占比例為 29%,這和傳統(tǒng)的IT企業(yè)規(guī)模構(gòu)成差別還是比較大,這恰恰說明了嵌入式系統(tǒng)充分結(jié)合行業(yè)應用、具有靈活定制性的特點。嵌入式系統(tǒng)應用領(lǐng)域非常廣泛,在每個典型的應用領(lǐng)域內(nèi)都要求企業(yè)具備一定的專注性和專業(yè)性,這與傳統(tǒng)的IT行業(yè)經(jīng)常會在某個領(lǐng)域內(nèi)出現(xiàn)壟斷的大型企業(yè)的局面有所不同。

3、軟件開發(fā)平臺的選擇

來自華清遠見2012-2013的調(diào)查統(tǒng)計數(shù)據(jù)顯示,在嵌入式產(chǎn)品研發(fā)的軟件開發(fā)平臺的選擇上,嵌入式Linux仍以42%的市場份額遙遙領(lǐng)先于其他嵌入式開發(fā)軟件平臺,由此可見,Linux憑借其得天獨厚的優(yōu)勢和廣泛的應用領(lǐng)域,依然成為眾多嵌入式企業(yè)研發(fā)團隊的首選。而作為移動互聯(lián)網(wǎng)的重要切入點,智能手機操作系統(tǒng)平臺也吸引了越來越多的開發(fā)者加入,Android智能手機操作系統(tǒng)平臺以絕對的優(yōu)勢(16%)成為手機操作系統(tǒng)平臺首選,市場份額也在逐年提升,對比去年的調(diào)研數(shù)據(jù),雖然iOS操作系統(tǒng)在過去的一年增長幅度高于Android,但與Android操作系統(tǒng)的市場占有率仍然有一定的差距,以5%的比例屈居手機操作系統(tǒng)平臺第二。在對華清遠見老學員的回訪中,很多嵌入式linux就業(yè)班畢業(yè)的學員,目前也呈現(xiàn)出軟硬件各方向的多元發(fā)展趨勢,也有部分畢業(yè)學員直接進入Android移動開發(fā)領(lǐng)域,由此可見,嵌入式Linux的學習無疑給眾多學員提供了更為廣闊的職業(yè)發(fā)展空間,究其原因主要是在于Android手機操作系統(tǒng)是在Linux內(nèi)核基礎上開發(fā)的,尤其在底層部分,兩個系統(tǒng)基本是一樣的,對于之前一直從事Linux開發(fā)的工程師來說,轉(zhuǎn)向Android平臺開發(fā)是比較輕松的事。而在新興物聯(lián)網(wǎng)領(lǐng)域,嵌入式作為物聯(lián)網(wǎng)產(chǎn)品的核心技術(shù)之一,也將為嵌入式系統(tǒng)提供更為廣闊的產(chǎn)業(yè)發(fā)展空間。嵌入式Linux的長遠發(fā)展空間、Android、iOS等平臺智能設備的廣泛應用、物聯(lián)網(wǎng)的巨大產(chǎn)業(yè)發(fā)展空間,所有這些與嵌入式相關(guān)的行業(yè)新動向,無疑為更多邁入嵌入式開發(fā)的初學者提供更好的就業(yè)機會和職業(yè)發(fā)展前景。

4、軟件開發(fā)調(diào)試工具的選擇

軟件開發(fā)調(diào)試工具的選擇為本新增調(diào)研項目,調(diào)查統(tǒng)計的數(shù)據(jù)結(jié)果顯示,keil和IAR分別以37%、24%的比例成為嵌入式開發(fā)者的主要調(diào)試工具,總計占所有參與調(diào)研人數(shù)的61%。合適的調(diào)試工具的選擇使用,可以大大加快產(chǎn)品的開發(fā)進度。這也使得在調(diào)試工具層面的技術(shù)支持和發(fā)展成為研發(fā)過程中需要考慮的因素之一。同時,這個調(diào)查結(jié)果也為初學者如何選擇開發(fā)工具提供有價值的參考。

5、硬件開發(fā)平臺的選擇

從2012-2013的調(diào)查統(tǒng)計數(shù)據(jù)中可以看到,ARM處理器(包括ARM7/9/

11、Cortex-M系列、Cortex-A系列)毫無疑問地占據(jù)了嵌入式處理器絕大部分的市場份額(74%),在ARM及其合作伙伴的市場推動下,ARM7/9/11較前一年的統(tǒng)計結(jié)果,出現(xiàn)了非常明顯的下滑,市場份額下降了13個百分點,而最新ARMv7架構(gòu)的Cortex系列處理器成功布局嵌入式移動計算領(lǐng)域并取得了快速的發(fā)展,其中定位低端的Cortex-M系列處理器和定位高端的Cortex-A處理器較一年前的統(tǒng)計結(jié)果,分布有兩個百分點的增長,已毋庸置疑地成為ARM處理器應用的主流。隨著物聯(lián)網(wǎng)產(chǎn)業(yè)的快速發(fā)展,對低功耗微控制器的需求必然會更進一步地推動Cortex-M系列處理器的快速應用,而高性能智能手機、平板電腦及更多智能終端設備的開速普及則使得Cortex-A系列處理器獲得了快速發(fā)展的機會。

6、處理器芯片的選擇

處理器芯片的選擇為本新增的調(diào)研項目,據(jù)調(diào)查統(tǒng)計數(shù)據(jù)的結(jié)果顯示,TI(德州儀器)和SAMSUNG(三星),成為最受開發(fā)者歡迎的嵌入式處理器芯片提供商,占據(jù)了接近一半(47%)的市場份額,其他知名廠家處理器芯片所占市場份額分布為:Qualcomm(高通)10%、Intel(英特爾)8%、NXP(恩智浦)6%、Atmel(愛特梅爾)5%、Nvidia(英偉達)5%、Freescale(飛思卡爾)4%、Renesas(瑞薩)3%,除以上廠家之外的其他處理器則占總體市場份額的12%。

7、軟件開發(fā)語言的使用

來自2012-2013華清遠見的調(diào)查統(tǒng)計數(shù)據(jù)顯示,在嵌入式產(chǎn)品研發(fā)的軟件開發(fā)語言的使用上,C語言仍然是嵌入式開發(fā)過程中最普遍使用的語言,其市場份額繼續(xù)保持領(lǐng)先(70%),這一統(tǒng)計結(jié)果再一次表明,無論是在傳統(tǒng)的工業(yè)控制領(lǐng)域、通信領(lǐng)域,還是迅猛發(fā)展的消費電子,安防控制、信息家電等領(lǐng)域,C語言均是嵌入式開發(fā)語言的首選。對比去年的調(diào)研數(shù)據(jù),Java語言和Objective-C的使用比例有所上升,究其原因不難看出,Android智能手機操作系統(tǒng)的開發(fā)需求推動了java語言的廣泛使用,成為在嵌入式領(lǐng)域內(nèi)最受歡迎的高級語言,而iOS智能手機操作系統(tǒng)的開發(fā)則拓展了Objective-C語言的開發(fā)人群。C++所占比例為10%,位居第三。匯編語言所占比例3%,與去年持平。

8、軟硬件人員的安排

2012-2013的調(diào)查數(shù)據(jù)顯示,有一半從事嵌入式產(chǎn)品研發(fā)的企業(yè)都是采用軟硬件人員分工合作完成產(chǎn)品的開發(fā)方式(50%),與去年的調(diào)查數(shù)據(jù)(62%)橫向?qū)Ρ瓤矗@一選項所占的比例也呈現(xiàn)出下降的趨勢(下降了12個百分點)。而“人員不分開,要求員工同時具備硬件和軟件開發(fā)能力,可獨立完成項目”的公司所占比例,由去年的22%上升到今年的29%(上升了7個百分點)。從這一轉(zhuǎn)變,我們可以看到:嵌入式系統(tǒng)作為一個軟硬件結(jié)合的系統(tǒng),需要嵌入式開發(fā)工程師在軟件和硬件兩個方面都不斷深化學習,同時具備軟硬件開發(fā)能力的工程師,將在求職過程中擁有更多的選擇機會以及更大的成長空間。同時,從各大招聘網(wǎng)站的最新搜索數(shù)據(jù)中也可以看出,目前嵌入式軟件開發(fā)人才的需求量遠遠大于純硬件開發(fā)人才,嵌入式系統(tǒng)項目研發(fā)差不多80%以上的工作量都是在軟件部分,軟件是嵌入式系統(tǒng)最核心的部分,也是體現(xiàn)嵌入式系統(tǒng)優(yōu)勢的最關(guān)鍵部分,企業(yè)對嵌入式軟件開發(fā)人才的需求必將持續(xù)上漲。

9、未來嵌入式操作系統(tǒng)首選

在本新增調(diào)研項目中新增了對未來1-2年內(nèi)嵌入式行業(yè)會占主導地位的嵌入式操作系統(tǒng)的調(diào)查,調(diào)查統(tǒng)計數(shù)據(jù)顯示,嵌入式Linux仍然是未來幾年內(nèi),嵌入式工程師認可的最具發(fā)展?jié)摿Φ氖走x嵌入式操作系統(tǒng),所占比例接近一半(47%),而Android智能手機操作系統(tǒng),也受到了越來越多嵌入式工程師的關(guān)注,并對其在移動手機操作系統(tǒng)中廣闊的發(fā)展空間及發(fā)展?jié)摿Τ錆M了期待。由此可見,作為開源系列的兩款優(yōu)秀的嵌入式操作系統(tǒng)(嵌入式Linux及 Android),其開源的特性,無疑使其在市場競爭中,具備了最強大的競爭優(yōu)勢及用戶基礎,用戶就是王道。

獲取專業(yè)知識的途徑

1、首選搜索引擎

在嵌入式工程師對搜索引擎使用習慣的調(diào)查中,百度和Google的使用率依然是平分秋色,這和這兩個搜索引擎在國內(nèi)市場份額的實際占有率有很大差別,也與正打得火熱的國內(nèi)搜索引擎市場的實際狀況有很大的不同。究其原因,這與嵌入式工程師會經(jīng)常搜索國外的最新技術(shù)資料有直接關(guān)系,Google在搜索國外網(wǎng)站技術(shù)資料的廣度和深度上具有明顯的優(yōu)勢。嵌入式技術(shù)更新非常快,對于開發(fā)人員來說,必須具備較強的學習能力,善于通過各種渠道更新自身的知識體系,關(guān)注最新技術(shù)發(fā)展熱點,適應行業(yè)最新發(fā)展需求。

2、微博平臺

由于微博在發(fā)布信息及信息傳播上具備速度快的明顯優(yōu)勢,目前已成為主流的媒體平臺之一。以成為。通過2012-2013的調(diào)查數(shù)據(jù),我們可以看出,嵌入式工程師對微博的熱度雖然明顯低于大眾用戶,但關(guān)注微博的嵌入式工程師也在慢慢增多。對比去年的調(diào)研數(shù)據(jù),很少使用微博的用戶,下降了18個百分點(由去年的65%下降到今年的47%)。使用新浪和騰訊微博的用戶比例分別是35%和16%,也有更多的行業(yè)媒體與嵌入式企業(yè)通過微博手段發(fā)布行業(yè)資訊及企業(yè)動態(tài),吸引更多的嵌入式工程師關(guān)注,相信這對于企業(yè)品牌及產(chǎn)品形象的傳播將會提供更多的幫助。

四、嵌入式工程師對職業(yè)生涯的看法

作為一個正在高速發(fā)展的行業(yè),許多技術(shù)工程師和準備進入行業(yè)的技術(shù)愛好者都非常關(guān)注嵌入式領(lǐng)域未來的職業(yè)規(guī)劃和行業(yè)整體的發(fā)展狀況。本部分調(diào)查則主要從“企業(yè)人才需求現(xiàn)狀、對工作薪資的滿意度、未來一年薪資漲幅、如何看待培訓以及對未來職業(yè)人生的規(guī)劃”等方面進行問題設置,希望能從各個角度上展現(xiàn)嵌入式工程師對目前工作狀態(tài)的的滿意程度和真實需求。

1、企業(yè)人才需求現(xiàn)狀

來自2012-2013的調(diào)查數(shù)據(jù)顯示,在整個行業(yè)發(fā)展的過程中,嵌入式人才需求目前仍然是供不應求,74%左右參與調(diào)查的一線工程師均表示,自己所屬的公司目前都急缺嵌入式開發(fā)方面的專業(yè)技術(shù)人才。雖然人才缺口仍然很大,但連續(xù)4年的調(diào)查數(shù)據(jù)顯示,這一比例已在持續(xù)下降(2011年比2010年低了5個百分點,2012年比 2011年低了3個百分點,2013年比2012年低了1個百分點),這也表明,隨著國家政策的更加重視、市場的整體推動及多渠道的嵌入式人才培養(yǎng)體系的不斷完善,嵌入式開發(fā)人才需求瓶頸的問題,在逐步得到緩解,整個嵌入式專業(yè)人才市場的供求關(guān)系正在向更健康的方向發(fā)展和邁進。但是企業(yè)對專業(yè)人才需求量的缺口依然非常大,整個嵌入式行業(yè)的發(fā)展也需要更多專業(yè)嵌入式人才的加盟,而且越早進入這個行業(yè),優(yōu)勢越大。

2、對工作薪資的滿意度

本薪資滿意度的調(diào)查結(jié)果顯示,有63%的工程師對目前的薪資水平表示非常滿意或基本滿意,比去年同期有4個百分點的增長。另外有37%的人對目前薪資表示了不滿意。結(jié)合“薪資分布”調(diào)查項的結(jié)果,本的薪資水平與工程師的滿意度基本保持了同等比例的增長,工程師對自身能力的提升充滿了信心,對行業(yè)發(fā)展的整體趨勢表現(xiàn)出非常積極的態(tài)度。

3、未來一年薪資漲幅

來自華清遠見2012-2013的調(diào)查統(tǒng)計,針對“未來一年薪資漲幅”的調(diào)查結(jié)果顯示,幾乎所有在職工程師對未來一年薪資的增長都充滿了信心,其中接近68%的人預測漲幅會在40%以內(nèi),16%的預測漲幅會在41-60%之間,比去年上升了5個百分點,13%的人預測漲幅會在61%以上,比去年上升了5個百分點,以上數(shù)據(jù)要高于整個IT行業(yè)的平均水平,這充分說明在嵌入式領(lǐng)域,開發(fā)人員對自身的發(fā)展有更高的要求和更大的信心,對行業(yè)未來的發(fā)展也表示出積極樂觀的態(tài)度。嵌入式技術(shù)的成熟應用推動了很多產(chǎn)業(yè)的高速發(fā)展,例如物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)、云計算等,這也讓嵌入式工程師看到了未來自身的更高價值。對于用人企業(yè)來說,開發(fā)人員對未來薪資有更加的期望會增加企業(yè)開發(fā)成本,企業(yè)必須通過不斷推出有市場競爭力的產(chǎn)品,更高效的內(nèi)部管理,才能留住更多的人才,保證企業(yè)利潤的持續(xù)增長。

4、未來職業(yè)人生的規(guī)劃

在2012-2013的調(diào)查統(tǒng)計結(jié)果中,“對未來職業(yè)人生的規(guī)劃”一項,接近66%的工程師給予了肯定的評價,其中48%的工程師表示希望提升自己的層次,期待目前所在公司能給自己更大的成長空間。18%的工程師則表示喜歡自己現(xiàn)在的公司以及工作職位,短時間內(nèi)應該不會有較大的改變。考慮跳槽的工程師所占比例為23%,比去年上升了4個百分點,打算自己創(chuàng)業(yè)的為7%,其他選項均占較小比例。對比去年同期的數(shù)據(jù),我們不難看出,由于行業(yè)內(nèi)專業(yè)人才的持續(xù)緊缺,嵌入式研發(fā)工程師在職業(yè)發(fā)展上擁有更多的主動選擇權(quán)。

第三篇:《嵌入式技術(shù)》學習總結(jié)報告

《嵌入式技術(shù)》學習總結(jié)報告

目錄

一、嵌入式系統(tǒng)簡介............................................................................................2

1.1 嵌入式系統(tǒng)的定義和特點....................................................................2 1.2 嵌入式系統(tǒng)的構(gòu)成.................................................................................3 1.3 嵌入式系統(tǒng)的應用.................................................................................5 1.4 嵌入式系統(tǒng)的工具鏈.............................................................................6 1.5 嵌入式系統(tǒng)的發(fā)展趨勢.........................................................................7

二、嵌入式系統(tǒng)的學習實踐................................................................................8

三、實驗內(nèi)容........................................................................................................9

3.1ZedBoard-Zynq7000介紹........................................................................9 3.2 軟件的安裝設置...................................................................................10 3.3 main函數(shù)分析.......................................................................................10 3.4 任務管理...............................................................................................12

3.4.1 任務優(yōu)先級.........................................................................................13 3.4.2 任務的堆棧.........................................................................................13 3.4.3 任務的狀態(tài).........................................................................................14

3.5 就緒任務的管理...................................................................................15 3.6 任務調(diào)度...............................................................................................17

3.6.1 任務搶占.............................................................................................17 3.6.2 輪轉(zhuǎn)調(diào)度.............................................................................................18 3.6.3 調(diào)度時機.............................................................................................19 3.6.4 調(diào)度實現(xiàn).............................................................................................19

3.7 上下文切換...........................................................................................20

四、工作總結(jié)......................................................................................................2

21/ 22

《嵌入式技術(shù)》學習總結(jié)報告

一、嵌入式系統(tǒng)簡介 1.1嵌入式系統(tǒng)的定義和特點

嵌入式操作系統(tǒng)(Embedded Operation System,EOS)是一種“嵌入機械或電氣系統(tǒng)內(nèi)部、具有專屬功能的計算機系統(tǒng)”,通常要求實時計算性能。被嵌入的系統(tǒng)通常是包含硬件和機械部件的完整設備。相反,通用計算機如個人計算機則設計靈活,以滿足廣大終端用戶的需求。現(xiàn)在常見的很多設備都采用嵌入式系統(tǒng)控制。EOS負責嵌入系統(tǒng)的全部軟、硬件資源的分配、任務調(diào)度,控制、協(xié)調(diào)并發(fā)活動。它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過裝卸某些模塊來達到系統(tǒng)所要求的功能。嵌入式系統(tǒng)與對象系統(tǒng)密切相關(guān),其主要技術(shù)發(fā)展方向是滿足嵌入式應用要求,不斷擴展對象系統(tǒng)要求的外圍電路(如ADC、DAC、PWM、日歷時鐘、電源監(jiān)測、程序運行監(jiān)測電路等),形成滿足對象系統(tǒng)要求的應用系統(tǒng)。因此,嵌入式系統(tǒng)作為一個專用計算機系統(tǒng),要不斷向計算機應用系統(tǒng)發(fā)展。因此,可以把定義中的專用計算機系統(tǒng)引伸成,滿足對象系統(tǒng)要求的計算機應用系統(tǒng)。“嵌入性”、“專用性”與“計算機系統(tǒng)”是嵌入式系統(tǒng)的三個基本要素。對象系統(tǒng)則是指嵌入式系統(tǒng)所嵌入的宿主系統(tǒng)。另外,在理解嵌入式系統(tǒng)定義時,不要與嵌入式設備相混淆。嵌入式設備是指內(nèi)部有嵌入式系統(tǒng)的產(chǎn)品、設備,例如,內(nèi)含單片機的家用電器、儀器儀表、工控單元、機器人、手機、PDA等。

嵌入式系統(tǒng)的特點與定義不同,它是由定義中的三個基本要素衍生出來的。不同的嵌入式系統(tǒng)其特點會有所差異。與“嵌入性”的相關(guān)特點:由于是嵌入到對象系統(tǒng)中,必須滿足對象系統(tǒng)的環(huán)境要求,如物理環(huán)境(小型)、電氣/氣氛環(huán)境(可靠)、成本(價廉)等要求的特點。與“專用性”的相關(guān)特點:軟、硬件的裁剪性。滿足對象要求的最小軟、硬件配置等。與“計算機系統(tǒng)”的相關(guān)特點:嵌入式系統(tǒng)必須是能滿足對象系統(tǒng)控制要求的計算機系統(tǒng)。與上兩個特點相呼應,這樣的計算機必須配置有與對象系統(tǒng)相適應的接口電路。

目前,已推出一些應用比較成功的EOS產(chǎn)品系列。隨著Internet技術(shù)的發(fā)展、信息家電的普及應用及EOS的微型化和專業(yè)化,EOS開始從單一的弱功能向高專業(yè)化的強功能方向發(fā)展。嵌入式操作系統(tǒng)在系統(tǒng)實時高效性、硬件的相關(guān)依賴性、軟件固化以及應用的專用性等方面具有較為突出的特點。EOS是相對于一般操作系統(tǒng)而言的,它除具備了一般操作系統(tǒng)最基本的功能,如任務調(diào)度、同步機制、中斷處理、文件功能等外,還有以下特點:

(1)可裝卸性。開放性、可伸縮性的體系結(jié)構(gòu)。

(2)強實時性。EOS實時性一般較強,可用于各種設備控制當中。(3)統(tǒng)一的接口。提供各種設備驅(qū)動接口。

(4)操作方便、簡單、提供友好的圖形GUI,圖形界面,追求易學易用。

2/ 22

《嵌入式技術(shù)》學習總結(jié)報告

(5)提供強大的網(wǎng)絡功能,支持TCP/IP協(xié)議及其它協(xié)議,提供TCP/UDP/IP/PPP協(xié)議支持及統(tǒng)一的MAC訪問層接口,為各種移動計算設備預留接口.(6)強穩(wěn)定性,弱交互性。嵌入式系統(tǒng)一旦開始運行就不需要用戶過多的干預,這就要負責系統(tǒng)管理的EOS具有較強的穩(wěn)定性。嵌入式操作系統(tǒng)的用戶接口一般不提供操作命令,它通過系統(tǒng)調(diào)用命令向用戶程序提供服務。

(7)固化代碼。在嵌入系統(tǒng)中,嵌入式操作系統(tǒng)和應用軟件被固化在嵌入式系統(tǒng)計算機的ROM中。輔助存儲器在嵌入式系統(tǒng)中很少使用,因此,嵌入式操作系統(tǒng)的文件管理功能應該能夠很容易地拆卸,而用各種內(nèi)存文件系統(tǒng).(8)更好的硬件適應性,也就是良好的移植性.1.2嵌入式系統(tǒng)的構(gòu)成

嵌入式系統(tǒng)按形態(tài)可分為設備級(工控機)、板級(單板、模塊)、芯片級(MCU、SoC)。嵌入式系通常由嵌入式處理器、外圍設備、嵌入式操作系統(tǒng)和應用軟件等幾大部分組成。嵌入式系統(tǒng)與對象系統(tǒng)密切相關(guān),其主要技術(shù)發(fā)展方向是滿足嵌入式應用要求,不斷擴展對象系統(tǒng)要求的外圍電路(如ADC、DAC、PWM、日歷時鐘、電源監(jiān)測、程序運行監(jiān)測電路等),形成滿足對象系統(tǒng)要求的應用系統(tǒng)。因此,嵌入式系統(tǒng)作為一個專用計算機系統(tǒng),要不斷向計算機應用系統(tǒng)發(fā)展。

(1)嵌入式處理器

嵌入式處理器是嵌入式系統(tǒng)的核心部件。嵌入式處理器與通用處理器的最大不同點在于其大多工作在為特定用戶群設計的系統(tǒng)中。它通常把通用計算機中許多由板卡完成的任務集成在芯片內(nèi)部,從而有有利于嵌入式系統(tǒng)設計趨于小型化,并具有高效率、高可靠性等特征。嵌入式處理器大概可分為兩類。一類是普通微處理器:使用獨立的集成電路存儲器和外設。另一類是單片機:具有片上外設,降低了功耗、尺寸和成本。嵌入式系統(tǒng)的軟件是為某種應用定制的,而不是像個人計算機那樣的由終端用戶安裝的商品,因此可以使用各種不同的基本CPU架構(gòu):既有范紐曼型架構(gòu)也有不同程度的哈佛結(jié)構(gòu);既有RISC也有非精簡指令集處理器;字長從4位到64位甚至更高,當然最典型的仍然是8/16位。多數(shù)架構(gòu)由幾家不同的公司生產(chǎn),使用了大量不同的變量和類型。嵌入式系統(tǒng)也會使用通用型微處理器,但比單片機需要更多外圍電路。大的硬件廠商會推出自己的嵌入式處理器,因而現(xiàn)今市面上有1000多種嵌入式處理器芯片,其中使用最為廣泛的有ARM、MIPS、PowerPC、MC6800等。

SoC是一種常見的為超大批量嵌入式系統(tǒng)設計的可配置陣列。它在單個芯片內(nèi)包含了多處理器、乘法器、緩存和接口,形成一個完整的系統(tǒng);通過特定用途集成電路或現(xiàn)場可編程門陣列來實現(xiàn)。

(2)嵌入式主板

3/ 22

《嵌入式技術(shù)》學習總結(jié)報告

嵌入式主板一般理解為嵌入在設備里面做控制、數(shù)據(jù)處理使用的CPU板,也就是設備的“大腦”。嵌入式到設備里面,當然就會對主板的體積以及功耗(嵌入式主板的散熱問題)有比較嚴格的要求。所以一般來講嵌入式主板會具備尺寸小、高集成度、低功耗等特性。目前嵌入式主板比較常見的一般有兩大類:基于X86的嵌入式主板(一般使用INTEL、威盛、AMD或其他產(chǎn)家的X86芯片如:臺灣RDC、臺灣ICOP等等);基于RISC的ARM 嵌入式主板(由ARM公司授權(quán)生產(chǎn),每個芯片產(chǎn)家各有自己特殊的功能)。嵌入式的ARM板一般都是板載CPU,而基于x86 CPU的主板則不一定。基于RISC 的ARM板一般都是根據(jù)產(chǎn)品的要求做具體設計,所以主板在尺寸外觀上面通常沒有做定義。

PC/104和PC/104+是小型、小批量嵌入式強固系統(tǒng)的標準之一,大多基于x86架構(gòu);通常比標準PC要小,而比多數(shù)簡單的8/16位嵌入式系統(tǒng)要大;使用MSDOS、Linux、NetBSD,或?qū)崟r嵌入式操作系統(tǒng)如MicroC/OS-II、QNX、VxWorks。有時這些主板也會使用非x86處理器。在某些應用中,小巧、高效并非主要關(guān)注點,因而可以使用與x86型PC主板兼容的部件。VIA EPIA系列板卡則可以彌補這個空缺,它兼容PC但是高度集成、體積較小,或提供其他對嵌入式工程師很有吸引力的特性。這種方法的好處是低成本商品也可以使用通用的軟件開發(fā)工具。用這種方法構(gòu)建的系統(tǒng)仍然是嵌入式系統(tǒng),因為它嵌入在較大的設備中、用于滿足單一用途。例如ATM和電子游戲機,它們都包含了針對各自應用的代碼。

多數(shù)嵌入式主板都不是圍繞PC設計的,也不使用ISA或PCI總線。如果采用SoC處理器,用標準總線連接分立組件就不是上策,此外軟硬件開發(fā)環(huán)境都可能會很不一樣。一種常用的設計模式是采用小型系統(tǒng)模塊——也許只有商務卡片大小,容納高密度的BGA芯片如ARM處理器和外設、用于存儲的外部閃存、作為內(nèi)存的DRAM。模塊廠商通常會提供引導軟件和操作系統(tǒng)選項,一般包括Linux和一些實時操作系統(tǒng)。這些模塊由熟悉專業(yè)測試方法的組織大批量生產(chǎn),配合較小批量的、帶特殊應用外設的定制主板使用。

(3)外圍設備

外圍設備是指在一個嵌入式系統(tǒng)中,除了嵌入式處理器以外用于完成存儲、通信、調(diào)試、顯示等輔助功能的其它部件。根據(jù)外圍設備的功能可以分為存儲器、接口和人機交互。嵌入式系統(tǒng)通過外設與外部通信串行,包括通信接口:RS-232、RS-

422、RS-485等;同步串行通信接口:I2C、SPI、ESSI等;USB;多媒體卡:SD卡、CF卡等;網(wǎng)絡:以太網(wǎng)、LonWorks等;現(xiàn)場總線:CAN總線、LIN總線、PROFIBUS等;定時器:PLL、捕獲比較模塊和時間處理單元;分立IO:GPIO;模擬-數(shù)字/數(shù)字-模擬轉(zhuǎn)換(ADC/DAC);調(diào)試接口:JTAG、ISP、ICSP、BDM端口、BITP、DP9端口等。

(4)嵌入式操作系統(tǒng)

4/ 22

《嵌入式技術(shù)》學習總結(jié)報告

在大型嵌入式應用系統(tǒng)中,為了使嵌入式開發(fā)更方便、快捷,需要具備一種穩(wěn)定、安全的軟件模塊集合,用以管理存儲器分配、中斷處理、任務間通信和定時器響應,以及提供多任務處理等,即嵌入式操作系統(tǒng)。嵌入式操作系統(tǒng)的引入大大的提高了嵌入式系統(tǒng)的功能,方便了應用軟件的設計,但同時占用了寶貴的嵌入式系統(tǒng)資源。一般在比較大型或需要多任務的應用場合才考慮使用嵌入式系統(tǒng)。嵌入式系統(tǒng)常常需要有實時要求,所以嵌入式操作系統(tǒng)往往又是“實時操作系統(tǒng)”。早期的嵌入式系統(tǒng)幾乎都用于控制目的,從而或多或少都有些實時要求,所以從前“嵌入式操作系統(tǒng)”實際上是“實時操作系統(tǒng)”的代名詞。今年來由于手持式計算機和掌上電腦等設備的出現(xiàn),也有了不帶實時要求的嵌入式系統(tǒng)。另外一方面,由于CPU速度的提高,一些原先認為是“實時”的反應速度現(xiàn)在已經(jīng)很普遍了。這樣,一些原先需要在“實時”操作系統(tǒng)上才能實現(xiàn)的應用,現(xiàn)在已不難在常的操作系統(tǒng)上實現(xiàn)。在這樣的背景下,“嵌入式操作系統(tǒng)”和“實時操作系統(tǒng)”就成了不同的概念名詞。

常見的嵌入式操作系統(tǒng)有: Android、Firefox OS、iPhone OS、uC/OS、uCLinux、VxWorks、pSOS、Nucleus、PalmOS、Windows CE、Windows XP Embedded、Windows Vista Embedded、嵌入式Linux、ECOS、QNX、Lynx、Symbian、Arm-Linux等。

(5)應用軟件

嵌入式系統(tǒng)的應用軟件是針對特定的實際專業(yè)領(lǐng)域,基于相應的嵌入式硬件平臺,并能完成用戶的預期任務的計算機軟件。用戶的任務可能有時間和精度的要求。有些應用軟件需要嵌入操作系統(tǒng)的支持,但在簡單的場合下不需要專門的操作系統(tǒng)。由于嵌入式應用軟件對成本十分敏感,因此,為減少系統(tǒng)成本,除了精簡每個硬件單元的成本外,應盡可能的減少應用軟件的資源消耗,盡可能的優(yōu)化。

1.3嵌入式系統(tǒng)的應用

嵌入式計算機在應用數(shù)量上遠遠超過了各種通用計算機,一臺通用計算機的外部設備中就包含了5-10個嵌入式微處理器。嵌入式系統(tǒng)技術(shù)具有非常廣闊的應用前景,其應用領(lǐng)域可以包括:工業(yè)控制:業(yè)過程控制、數(shù)字機床、電力系統(tǒng)、電網(wǎng)安全、電網(wǎng)設備監(jiān)測、石油化工系統(tǒng);交通管理:在車輛導航、流量控制、信息監(jiān)測與汽車服務方面,嵌入式系統(tǒng)技術(shù)已經(jīng)獲得了廣泛的應用,內(nèi)嵌GPS模塊,GSM模塊的移動定位終端已經(jīng)在各種運輸行業(yè)獲得了成功的使用;信息家電:這將稱為嵌入式系統(tǒng)最大的應用領(lǐng)域,冰箱、空調(diào)等的網(wǎng)絡化、智能化將引領(lǐng)人們的生活步入一個嶄新的空間。即使你不在家里,也可以通過電話線、網(wǎng)絡進行遠程控制。在這些設備中,嵌入式系統(tǒng)將大有用武之地。家庭智能管理系統(tǒng):水、電、煤氣表的遠程自動抄表,安全防火、防盜系統(tǒng),其中嵌有的專用控

5/ 22

《嵌入式技術(shù)》學習總結(jié)報告

制芯片將代替?zhèn)鹘y(tǒng)的人工檢查,并實現(xiàn)更高,更準確和更安全的性能;POS網(wǎng)絡及電子商務:公共交通無接觸智能卡(Contactless Smartcard, CSC)發(fā)行系統(tǒng),公共電話卡發(fā)行系統(tǒng),自動售貨機,各種智能ATM終端將全面走入人們的生活,到時手持一卡就可以行遍天下。環(huán)境工程與自然:水文資料實時監(jiān)測,防洪體系及水土質(zhì)量監(jiān)測、堤壩安全,地震監(jiān)測網(wǎng),實時氣象信息網(wǎng),水源和空氣污染監(jiān)測。在很多環(huán)境惡劣,地況復雜的地區(qū),嵌入式系統(tǒng)將實現(xiàn)無人監(jiān)測。軍事領(lǐng)域:戰(zhàn)機、火控系統(tǒng)、導彈、火箭。

1.4嵌入式系統(tǒng)的工具鏈

工具對工程師設計開發(fā)的成功所起的決定性因素也在提高。應用越來越復雜,工具的選擇也越來越重要。現(xiàn)在市場上有些工具是免費的,也有很多商業(yè)工具。無論是免費的還是商業(yè)的,工具的好壞往往會影響整個工程的最終結(jié)果。現(xiàn)在的嵌入式系統(tǒng)開發(fā)工具非常多樣化,市場分散。目前據(jù)不完全統(tǒng)計,全世界嵌入式處理器的品種數(shù)已經(jīng)超過1000多種,流行體系結(jié)構(gòu)有30多個系列,在其上運行的操作系統(tǒng)環(huán)境也非常多樣化,包括VxWorks、QNX、Linux、Nuclears、WinCE等等。不僅各種操作系統(tǒng)有各自的開發(fā)工具,在同一系統(tǒng)下不同的開發(fā)階段也有不同的開發(fā)工具。如在用戶的目標板開發(fā)初期,需要硬件仿真器來調(diào)試硬件系統(tǒng)和基本的驅(qū)動程序,在調(diào)試應用程序階段使用交互式的開發(fā)環(huán)境進行軟件調(diào)試,在測試階段需要專門的測試軟件進行功能和性能的測試等等。對于設計人員來說,要掌握、駕馭這樣龐大的開發(fā)體系是一件非常困難的事情,而且編程的復雜度相當大。

在選擇工具時,主要需要注意以下幾個方面:編譯器的性能和穩(wěn)定性、代碼覆蓋、仿真(不僅是對CPU的仿真,還有對其他硬件和設備的仿真)。工具鏈,一般由編譯器、連接器、解釋器和調(diào)試器組成,在嵌入式開發(fā)中一般指交叉工具鏈。在嵌入式開發(fā)中,往往在機器A中使用工具鏈生成可執(zhí)行程序,而在機器B中執(zhí)行程序。而機器A和機器B的指令系統(tǒng)往往不同,常見的是利用x86機器上的工具鏈開發(fā)基于ARM或MIPS的嵌入式系統(tǒng)。工具鏈的構(gòu)成往往與目標對象和使用工具鏈的操作系統(tǒng)平臺有關(guān)。通常構(gòu)建交叉工具鏈有如下三種方法:(1)分步編譯和安裝交叉編譯工具鏈所需要的庫和源代碼,最終生成交叉編譯工具鏈。該方法相對比較困難,適合想深入學習構(gòu)建交叉工具鏈的讀者。如果只是想使用交叉工具鏈,建議使用下列的方法二構(gòu)建交叉工具鏈。(2)通過諸如Crosstool等腳本工具來實現(xiàn)一次編譯,生成交叉編譯工具鏈。該方法相對要簡單許多,并且出錯的機會也非常少,建議大多數(shù)情況下使用該方法構(gòu)建交叉編譯工具鏈。(3)直接通過網(wǎng)上下載已經(jīng)制作好的交叉編譯工具鏈。該方法的優(yōu)點不用多說,當然是簡單省事,但該方法有一定的弊端就是局限性太大,因為畢竟是別人構(gòu)建好的,也就是固定的,沒有靈活性,所以構(gòu)建所用的庫以及編譯器的版本也許并不適合6/ 22

《嵌入式技術(shù)》學習總結(jié)報告

你要編譯的程序,同時也許會在使用時出現(xiàn)許多莫名其妙的錯誤,建議慎用此方法。

對于新手而言,直接下載一些廠商提供的集成開發(fā)環(huán)境(IDE),能夠快速入手嵌入式開發(fā)。常用的IDE有Keil MDK、Xilinx ISE、Xilinx EDK、TKStudioIDE、Atmel的AVR Studio(for AVR以及AVR32)、Microchip的MPLab(for PIC、PIC18與dsPIC等)、Aiji的EDS(for ARM),南京萬利的MedWin(for 8051)、IAR Embedded Workbench等。“整體解決方案是毒藥”,我們使用IDE但是不要迷信整體解決方案。

嵌入式系統(tǒng)開發(fā)工具的發(fā)展已經(jīng)有二十多年的歷史,目前開放性和開放源碼成為一股強大的潮流,推動嵌入式系統(tǒng)設計技術(shù)向前發(fā)展,傳統(tǒng)的嵌入式系統(tǒng)開發(fā)工具已不能適應這一潮流。最新的發(fā)展趨勢是,使用Eclipse開放源碼集成化開發(fā)環(huán)境(IDE)平臺,采用插件技術(shù),在這樣的平臺基礎上擴展許多開發(fā)工具套件。越來越多的嵌入式系統(tǒng)軟件供應商將Eclipse平臺作為自身工具的基礎,推出個性化的開發(fā)工具套件,除提供標準的編譯器、編輯器、調(diào)試器,還提供增強的操作系統(tǒng)內(nèi)核級調(diào)試手段和高級的系統(tǒng)分析工具,如內(nèi)存泄漏檢測、系統(tǒng)性能監(jiān)控等。總之,嵌入式開發(fā)工具將向高度集成、編譯優(yōu)化、具有系統(tǒng)設計、可視化建模、仿真和驗證功能方向發(fā)展。

1.5嵌入式系統(tǒng)的發(fā)展趨勢

在嵌入式系統(tǒng)開發(fā)領(lǐng)域,技術(shù)發(fā)展的最新趨勢可以從企業(yè)層面、平臺層面和部件層面分別觀察,其核心是以盡可能快的速度、盡可能低的成本來滿足迅速變化的市場需求。(1)以往,嵌入式軟件開發(fā)的技術(shù)問題主要是在工程師和開發(fā)團隊的層面來解決。不同的工程師和開發(fā)項目之間可以共享的資源并沒有得到足夠的重視和利用,這是業(yè)界經(jīng)常說的一個問題—制造每輛汽車都必須從輪子開始。共享資源、提高軟件部件的可重用性,這是整個軟件業(yè)界幾十年來的普遍趨勢,只是這個趨勢在嵌入式軟件領(lǐng)域的步伐比企業(yè)軟件慢了不少。隨著DSO(Device Software Optimization,設備軟件優(yōu)化)概念的提出,嵌入式軟件的可重用性將會得到快速提高。這就是嵌入式軟件在企業(yè)層面的主流趨勢。(2)從開發(fā)平臺層面來看,開放已經(jīng)成為一種主流思想,對于開放系統(tǒng)首先會讓人想到的就是Linux。不過,開放本身不是一種技術(shù),而是一種包容先進技術(shù)的思路和方法。新技術(shù)往往是從封閉開始,通過走向開放而發(fā)揮更大的價值。(3)從部件層面來看,最主流的趨勢是多核技術(shù)的興起。這個趨勢從處理器芯片巨頭的動向可以一目了然。對于嵌入式軟件工程師來講,采用開放、高效并且能夠讓自己不斷積累開發(fā)成果的開發(fā)平臺與工具,讓自己能夠?qū)W⒂诋a(chǎn)品功能特性的開發(fā),而不是花費太多精力去做維護工具和基礎性、重復性的功能開發(fā)。

7/ 22

《嵌入式技術(shù)》學習總結(jié)報告

二、嵌入式系統(tǒng)的學習實踐

目前從事嵌入式開發(fā)的主要有兩類人。一類是學電子工程、通信工程等偏硬件專業(yè)出身的人,他們主要是搞硬件設計,需要開發(fā)一些與硬件關(guān)系最密切的最底層軟件:BootLoader、Board SupportPackage(像PC的BIOS一樣,往下驅(qū)動硬件,往上支持操作系統(tǒng)),最初級的硬件驅(qū)動程序等。他們的優(yōu)勢是對硬件原理非常清楚,不足是他們更擅長定義各種硬件接口,但對復雜軟件系統(tǒng)往往力不從心(例如嵌入式操作系統(tǒng)原理和復雜應用軟件等)。另一類是學軟件、計算機專業(yè)出身的人,主要從事嵌入式操作系統(tǒng)和應用軟件的開發(fā)。如果我們學軟件的人對硬件原理和接口有較好的掌握,我們完全也可寫B(tài)SP和硬件驅(qū)動程序。嵌入式硬件設計完后,各種功能就全靠軟件來實現(xiàn)了,嵌入式設備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統(tǒng)的最主要工作。目前有很多公司將硬件設計包給了專門的硬件公司,稍復雜的硬件都交給臺灣或國外公司設計,國內(nèi)的硬件設計力量很弱,很多嵌入式公司自己只負責開發(fā)軟件,因為公司都知道,嵌入式產(chǎn)品的差異很大程度在軟件上,在軟件方面是最有“花頭”可做的,所以搞軟件的人完全不用擔心我們在嵌入式市場上的用武之地,越是智能設備越是復雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢。

中國的學生能夠在大學相關(guān)課程中充分對MCU基礎知識進行學習,這已經(jīng)走在了很多國家(甚至包括日本)的前面。但中國新一代工程師面對的主要問題是如何去積累經(jīng)驗。嵌入式系統(tǒng)的開發(fā)通常是硬件和軟件同時進行的,其在開發(fā)過程中出現(xiàn)不良狀況的原因有可能是硬件或是軟件,有時甚至可能是兩者同時發(fā)生故障。在這樣的狀況下,就要求從事硬件的技術(shù)人員要相當程度的懂得軟件,從事軟件的技術(shù)開發(fā)人員也要在一定程度上懂得硬件。另外,目前該行業(yè)存在最終產(chǎn)品的壽命較短的情況,這就意味著每年都有必要開發(fā)新的產(chǎn)品。但是從初級階段進行開發(fā),需要花費大量的開發(fā)成本及開發(fā)時間。因此,有效地歸納總結(jié)現(xiàn)有的開發(fā)成果,并有效地投入新開發(fā)中加以利用是十分重要的。

很多工程師在設計嵌入式系統(tǒng)的時候往往選擇最底層的工具,把絕大部分的時間都花在了底層的細節(jié),而往往忽視了創(chuàng)新性和系統(tǒng)級的把握。工程師無論是為了自身的發(fā)展還是為了所設計產(chǎn)品的競爭力,這兩點其實都是至關(guān)重要的。

首先是“工欲善其事,必先利其器”,若有條件要盡可能采用更快更強的工具進行開發(fā)。其次是“磨刀不誤砍柴工”,要盡可能挖掘集成開發(fā)軟件中的資源,如花些時間去了解許多實用輔助軟件,如DMA、Cache和片內(nèi)帶寬分析工具等。同時,在至少一個領(lǐng)域中具有深入的技術(shù)知識。工程師能夠分析問題或是編寫程序是遠遠不夠的,他們還要能夠利用自己的知識完成獨特創(chuàng)新的設計。所以,工程師要體現(xiàn)自身價值,必須有系統(tǒng)性的眼光,能夠進行有創(chuàng)新性的設計。在這種情況下,工程師們更多的應該從底層的編程細節(jié)中脫身,讓工具去處理那些“常

8/ 22

《嵌入式技術(shù)》學習總結(jié)報告

規(guī)”事務,而工程師本身就可以專注于自己的設計或研究領(lǐng)域,從更高的角度來看待自己在設計的系統(tǒng),而不是只見樹木,不見森林。

三、實驗內(nèi)容

我所在的小組的實驗任務,基于ZedBoard-Zynq7000的μC/OS-III代碼的分析和調(diào)試,重點分析μC/OS-III操作系統(tǒng)的任務調(diào)度機制。

3.1ZedBoard-Zynq7000介紹

ZedBoard是一款基于賽靈思Zynq-7000可擴展處理平臺(EPP)的低成本開發(fā)板,也是行業(yè)首款面向廣大開源小區(qū)的Zynq-7000 EP可擴展處理平臺開發(fā)工具包。開發(fā)板為基于Linux、安卓、Windows或其它操作系統(tǒng)/實時操作系統(tǒng)的設計開發(fā)提供了所需的一切。另外,該平臺提供數(shù)款擴展連接器,便于用戶訪問處理系統(tǒng)和可編程邏輯。Zynq-7000 EPP緊密集成了ARM?處理系統(tǒng)和7系列可編程邏輯,充分利用它們的優(yōu)勢,并結(jié)合ZedBoard可以開發(fā)出獨樹一幟且功能強大的設計。

圖一:ZedBoard-Zynq7000 Zynq7000系列是基于Xilinx的可編程SOC架構(gòu),集成了一個雙核的ARM? Cortex?-A9 處理器,一個Xilinx可編程邏輯(PL)。Zynq7000集成有仿真芯片,提供了板載USB-JTAG編程、USB-UART,方便開發(fā)者進行調(diào)試。

9/ 22

《嵌入式技術(shù)》學習總結(jié)報告

圖二:Zynq-7000 AP SoC系統(tǒng)框架

3.2軟件的安裝設置

(1)安裝UART驅(qū)動。目前只有32位版本的,在windows 7以下可安裝。在windows 8安裝失敗。

(2)安裝Vivado Design Suite.選擇默認安裝即可。

(3)uCOS-III項目的構(gòu)建。Micrium-ZC702-uCOS-III源碼壓縮包中有“Micrium ZC702 uCOS-III Readme.pdf”說明書。打開Xilinx SDK,安裝說明書里面的步驟一步一步進行配置即可完成uCOS-III 項目的構(gòu)建。

3.3main函數(shù)分析

結(jié)合《Micrium-uCOS-III-UserManual》對代碼進行靜態(tài)分析,最好的方法是找到程序入口函數(shù)main(ZC702_uCOSIIIApplicationapp.c),然后在main函數(shù)內(nèi)逐行代碼分析從而對程序的流程有一個大體的了解。在分析過程中碰到關(guān)鍵或感興趣的函數(shù)或結(jié)構(gòu)可以進一步跟入分析。

intmain(void){ OS_ERR os_err;

10/ 22

《嵌入式技術(shù)》學習總結(jié)報告

Xil_DCacheDisable();//關(guān)數(shù)據(jù)cache

Xil_ICacheDisable();//關(guān) instruction cache

Reset_Handler();/* Scatter loading is complete.*/ /* Now the caches can be activated.*/

BSP_BranchPredictorEn();/* Enable branch prediction.*/

BSP_L2C310Config();/* Configure the L2 cache controller.*/

BSP_CachesEn();/* Enable L1 I&D caches + L2 unified cache.*/

CPU_Init();/* Initialize the uC/CPU services */

BSP_Init();

OSInit(&os_err);/* Initialize uC/OS-III.*/

OSTaskCreate((OS_TCB *)&AppTaskStartTCB,//任務控制塊 /* Create the start task */(CPU_CHAR *)“Startup Task”,(OS_TASK_PTR)AppTaskStart,//任務地址(void *)0,(OS_PRIO)APP_CFG_TASK_START_PRIO,(CPU_STK *)&AppTaskStartStk[0],(CPU_STK_SIZE)APP_CFG_TASK_START_STK_SIZE / 10u,(CPU_STK_SIZE)APP_CFG_TASK_START_STK_SIZE,(OS_MSG_QTY)0u,(OS_TICK)0u,(void *)0,(OS_OPT)(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),(OS_ERR *)&os_err);

OSStart(&os_err);/* Start multitasking(i.e.give control to uC/OS-III).*/

for(;;){

11/ 22

《嵌入式技術(shù)》學習總結(jié)報告

} } 對main函數(shù)內(nèi)調(diào)用的一些函數(shù)和結(jié)構(gòu)做進一步分析,可知OS_TCB(ZC702_uCOSIIIuCOS-IIISourceos.h)是系統(tǒng)用于表示一個任務的結(jié)構(gòu),是系統(tǒng)的核心數(shù)據(jù)結(jié)構(gòu)之一。OSInit(ZC702_uCOSIIIuCOS-IIISourceos_core.c)函數(shù)是值得重點看的函數(shù)。main->OSInit->OS_IdleTaskInit,通過調(diào)用OS_IdleTaskInit的調(diào)用創(chuàng)建了系統(tǒng)的一個名叫“uC/OS-III Idle Task”的任務,其優(yōu)先級值為31。這個任務相應執(zhí)行的函數(shù),基本沒有做任何操作,簡單對OSIdleTaskCtr、OSStatTaskCtr兩個系統(tǒng)計數(shù)進行增加。OSIdleTaskHook()是用戶可以自定義的函數(shù),uCOS-III代碼中有大量這種Hook函數(shù),方便用戶進行功能擴展。當然用戶也可直接對任意代碼進行修改,但是對系統(tǒng)Hook函數(shù)進行重寫能夠很好地保持原有uCOS-III系統(tǒng)的完整性。

void OS_IdleTask(void *p_arg){ ??

while(DEF_ON){

CPU_CRITICAL_ENTER();

OSIdleTaskCtr++;#if OS_CFG_STAT_TASK_EN > 0u

OSStatTaskCtr++;#endif

CPU_CRITICAL_EXIT();

OSIdleTaskHook();/* Call user definable HOOK */

} } main->OSInit->OS_TickTaskInit創(chuàng)建了一個名叫“uC/OS-III Tick Task”的任務(優(yōu)先級為10),任務的創(chuàng)建都得通過OSTaskCreate來創(chuàng)建,main函數(shù)中又創(chuàng)建“Startup Task”任務。這三個任務對應的運行函數(shù)內(nèi)都包含了while死循環(huán),因此系統(tǒng)運行起來后至少有三個任務,分別是Idle任務、Tick任務、Startup任務。

3.4任務管理

12/ 22

《嵌入式技術(shù)》學習總結(jié)報告

μC/OS-III支持多任務,理論上可以支持任意多個任務,但實際通常受限于系統(tǒng)內(nèi)存的多少。所有任務管理都是基于OS_TCB結(jié)構(gòu)來進行的,接下來我們詳細分析OS_TCB的定義(uCOS-IIISourceos.h),可知一個任務有優(yōu)先級、狀態(tài)、堆棧,下面分別予以介紹。

3.4.1 任務優(yōu)先級

μC/OS-III的優(yōu)先級共有32個(0-31),數(shù)值越小優(yōu)先級越高,一般地優(yōu)先級0和31保留給系統(tǒng)使用。中斷處理任務的優(yōu)先級最高,空閑任務的優(yōu)先級最低。

圖三:μC/OS-III任務優(yōu)先級

3.4.2 任務的堆棧

在利用OSTaskCreate創(chuàng)建新任務前,必須先創(chuàng)建好任務堆棧,如Startup任務就用如下代碼來分配堆棧:

13/ 22

《嵌入式技術(shù)》學習總結(jié)報告

static CPU_STK

AppTaskStartStk[APP_CFG_TASK_START_STK_SIZE]; 堆棧主要的大小是可以由用戶自己定義(需考慮任務里函數(shù)的嵌套層數(shù)和局部變量占用空間多少。另外在嵌入式開發(fā)中,應盡可能避免遞歸的調(diào)用),堆棧是向下增長的。堆棧溢出(這里的溢出是指堆棧空間不夠用)是操作系統(tǒng)必須考慮的問題,μC/OS-III有三種解決方法:(1)利用內(nèi)存管理單元(MMU)或內(nèi)存保護單位(MPU);(2)利用某些CPU提供的堆棧溢出檢測功能;(3)基于軟件實現(xiàn)的堆棧溢出檢測。前兩者都依賴于硬件提供該功能。

圖四:μC/OS-III堆棧結(jié)構(gòu)

3.4.3 任務的狀態(tài)

OS_TCB結(jié)構(gòu)中的TaskState表示任務的狀態(tài)。在μC/OS-III中,從用戶的角度來看任務有五個狀態(tài):靜止(Dormant)、就緒(Ready)、運行(Running)、掛起(Pending)、中斷(Inrerrupted)。任務的狀態(tài)是動態(tài)轉(zhuǎn)換的,構(gòu)造好OS_TCB結(jié)構(gòu)后,此時任務處于靜止狀態(tài),OSTaskCreate函數(shù)中調(diào)用OS_TaskInitTCB函數(shù)將任務狀態(tài)設為OS_TASK_STATE_RDY并調(diào)用OS_RdyListInsertTail將任務插入相應優(yōu)先級的就緒隊列中。

14/ 22

《嵌入式技術(shù)》學習總結(jié)報告

圖五:任務狀態(tài)的轉(zhuǎn)換

3.5就緒任務的管理

任務在運行前都處于就緒狀態(tài)或中斷狀態(tài),CPU的調(diào)度基本上就是以某種策略從所有就緒任務中挑選一個任務運行。μC/OS-III利用一個就緒優(yōu)先級位圖和一個就緒隊列表來管理就緒任務。

OSInit->OS_PrioInit()中對任務優(yōu)先級位圖表進行了初始化。μC/OS-III 有OS_CFG_PRIO_MAX優(yōu)先級(見os_cfg.h),優(yōu)先級值越小表示優(yōu)先級越高。優(yōu)先級0表示最高級別,優(yōu)先級OS_CFG_PRIO_MAX-1最低(在本實驗中OS_CFG_PRIO_MAX=32).如果某個優(yōu)先級上存在就緒的任務,那么就在位圖表中相應的位設置為1,否則設置為0.位圖寬度可以是8bit、16bit、32bit,這樣依賴于CPU_DATA的值即依賴所用CPU的特性(本實驗中是32bit,優(yōu)先級總數(shù)為

15/ 22

《嵌入式技術(shù)》學習總結(jié)報告

32,因此位圖大小為32*1)。查找最高就緒的優(yōu)先級,只需在優(yōu)先級位圖中找第一不為0的bit。

OS_PRIO OS_PrioGetHighest(void){ CPU_DATA *p_tbl;OS_PRIO prio;prio =(OS_PRIO)0;p_tbl = &OSPrioTbl[0];while(*p_tbl ==(CPU_DATA)0){

prio += DEF_INT_CPU_NBR_BITS;)p_tbl++;} prio +=(OS_PRIO)CPU_CntLeadZeros(*p_tbl);return(prio);}

圖六:就緒優(yōu)先級位圖

就緒列表實際上是一包含OS_CFG_PRIO_MAX個OS_RDY_LIST(見os.h)類型實體的數(shù)組(OSRdyList[])。OS_RDY_LIST實體包含三個成員:Entries、TailPtr、HeadPtr。Entries表示該優(yōu)先級別上任務個數(shù),TailPtr和HeadPt用于創(chuàng)建包含該所有優(yōu)先級別上的就緒任務的雙向鏈表。代碼中包含了OS_RdyListInit()、16/ 22

《嵌入式技術(shù)》學習總結(jié)報告

OS_RdyListInsert()、OS_RdyListInsertHead()、OS_RdyListInsertTail()、OS_RdyListMoveHeadToTail()、OS_RdyListRemove()等函數(shù)用于操作就緒列表。

圖七:任務創(chuàng)建后加入就緒列表

3.6 任務調(diào)度

3.6.1 任務搶占

在μC/OS-III中,任務調(diào)度器(scheduler)即分發(fā)器(dispatcher)負責任務的調(diào)度。μC/OS-III使用基于優(yōu)先級、搶占式的調(diào)度策略。搶占是指當由于某種原因使更高優(yōu)先級任務變成就緒狀態(tài)(較當前任務),那么調(diào)度器立即將CPU分別給該更高優(yōu)先級任務,而當前任務變成掛起狀態(tài)。類似地,當中斷服務程序(ISR)將一個處于掛起狀態(tài)的更高優(yōu)先級任務喚醒時,當前被中斷的任務保持掛起狀態(tài),被喚醒的那個更高優(yōu)先級任務得到執(zhí)行。如圖八,是一種直接的搶占方式,μC/OS-III還支持一種較Post Defferd即延時的搶占方式(圖九)。延時搶占方式,多一步ISR Handler(在操作系統(tǒng)中被稱為中斷軟處理,主要目的是減少關(guān)中斷的時間)用于處理在ISR(中斷硬處理)中來不及處理事情。

17/ 22

《嵌入式技術(shù)》學習總結(jié)報告

圖八:任務搶占

圖九:帶延遲處理的任務搶占

3.6.2輪轉(zhuǎn)調(diào)度

如果未開啟輪轉(zhuǎn)策略,正在執(zhí)行的任務除非主動放棄執(zhí)行(包括等待某些時間、或者調(diào)用睡眠函數(shù))或者被搶占,那么同級別的任務得等到該任務執(zhí)行完采用機會執(zhí)行。當同一個優(yōu)先級上有兩個以上就緒任務時,μC/OS-III 采用時間片策略使得該優(yōu)先級上所有任務得到依次輪轉(zhuǎn)執(zhí)行。當然如果一個任務的時間片未

18/ 22

《嵌入式技術(shù)》學習總結(jié)報告

用完,也可主動放棄CPU使得下個任務得到執(zhí)行。輪轉(zhuǎn)調(diào)度策略不是必須的,μC/OS-III允許用戶開啟或關(guān)閉該策略。

圖九:時間片調(diào)度

3.6.3 調(diào)度時機

調(diào)度可能發(fā)生時機包括:(1)一個任務給其他任務發(fā)送(send)消息或信號時;(2)任務OSTimeDly()或者OSTimeDlyHMSM();(3)任務調(diào)用等待函數(shù)OS???Pend()等待尚未發(fā)生的任務;(4)任務放棄掛起:其它任務調(diào)用OS???PendAbort()改變該任務狀態(tài);(5)任務創(chuàng)建時:創(chuàng)建的任務可能擁有比當前任務較高優(yōu)先級;(6)任務被刪除時:如果該任務就是當前任務;(7)內(nèi)核對象被刪除時;(7)任務優(yōu)先級發(fā)生改變時;(8)任務調(diào)用OSTaskSuspend()掛起自己;(9)任務調(diào)用OSTaskResume()喚醒了其它任務;(10)所有嵌套的ISR退出時:調(diào)度由OSIntExit()發(fā)起而不是OSSched();(11)調(diào)度器被解鎖;(12)任務調(diào)用OSSchedRoundRobinYield()主動放棄時間片;(12)用戶調(diào)用了OSSched();(13)任務時間片用完了。

3.6.4 調(diào)度實現(xiàn)

調(diào)度器的實現(xiàn)在函數(shù)OSSched()和OSIntExit()中。其中,OSSched()由任務級別代碼發(fā)起而OSIntExit()是有中斷服務程序發(fā)起。任務的調(diào)度是基于前面提及的就緒任務的相關(guān)數(shù)據(jù)結(jié)構(gòu):就緒優(yōu)先級位圖和就緒隊列。

19/ 22

《嵌入式技術(shù)》學習總結(jié)報告

圖十:調(diào)度時主要用到的數(shù)據(jù)結(jié)構(gòu)

3.7 上下文切換

上下文切換:當μC/OS-III要執(zhí)行另一任務時,需要將當前任務使用的那些CPU寄存器值保存當前任務堆棧中,同時加載要執(zhí)行的任務的上下文給CPU的寄存器進而開始另一任務的執(zhí)行。上下文切換存在一些開銷,通常CPU寄存器越多(任務用到的寄存器越多),開銷就會越大。上下文切換的時間開銷取決于有多少個CPU寄存器需要被存儲和載入。

圖十一:上下文在堆棧中的存儲

20/ 22

《嵌入式技術(shù)》學習總結(jié)報告

存在兩種上下文的切換:普通任務的上下文切換、中斷服務程序的上下文切換。前者在函數(shù)OSCtxSw()中實現(xiàn)(其實是由宏OS_TASK_SW()調(diào)用,后者在函數(shù)OSIntCtxSw()中實現(xiàn)。這兩個函數(shù)都是采用匯編語言實現(xiàn),因此是CPU相關(guān)的(見uCOS-IIIPortsARM-Cortex-AGenericGNU os_cpu_a_vfp-d32.S)。這里只介紹OSCtxSw()的實現(xiàn)。

OSIntCtxSw:

BL OSTaskSwHook@ OSTaskSwHook()@

MOVW R0, #:lower16:OSPrioCur@ OSPrioCur = OSPrioHighRdy@ MOVT R0, #:upper16:OSPrioCur MOVW R1, #:lower16:OSPrioHighRdy MOVT R1, #:upper16:OSPrioHighRdy LDRB R2, [R1] STRB R2, [R0]

MOVW R0, #:lower16:OSTCBCurPtr@ OSTCBCurPtr = OSTCBHighRdyPtr@ MOVT R0, #:upper16:OSTCBCurPtr MOVW R1, #:lower16:OSTCBHighRdyPtr MOVT R1, #:upper16:OSTCBHighRdyPtr LDR R2, [R1] STR R2, [R0] LDR SP, [R2] @ SP = OSTCBHighRdyPtr->OSTCBStkPtr@

OS_CPU_ARM_FP_REG_POP R0 @ RESTORE NEW TASK'S CONTEXT: LDMFD SP!, {R0} @ Pop new task's CPSR, MSR SPSR_cxsf, R0 LDMFD SP!, {R0-R12, LR, PC}^ @ Pop new task's context.如圖,當有更高優(yōu)先級就緒任務需要被執(zhí)行,任務調(diào)度器就會調(diào)用OSCtxSW()。主要有以下步驟:

(1)OSTCBCurPtr指向當前正運行的任務對應的OS_TCB,然后任務級調(diào)度器調(diào)用OSSched().(2通過OSTCBHighRdyPt指針,可以找到即將要運行的任務的OS_TCB;(3)OSTCBHighRdyPtr->StkPtr指向?qū)⒁粓?zhí)行的任務的堆棧的頂部;(4)執(zhí)行任務上下文切換,將CPU的相關(guān)寄存器存儲到當前任務(即將被調(diào)出CPU的任務)的堆棧。由于保存了上下文(以棧幀形式存儲),將來該任務可以被恢復現(xiàn)場,以便繼續(xù)運行。

(5)調(diào)用OSSched()后,CPU堆棧指針TSP會指向任務的堆棧。

21/ 22

《嵌入式技術(shù)》學習總結(jié)報告

圖十二:OSCtxSw()所執(zhí)行操作

四、工作總結(jié)

學習嵌入式,顯然應偏重于嵌入式軟件,特別是嵌入式操作系統(tǒng)方面。對于搞嵌入式軟件的人,最重要的技術(shù)顯然是:(1)掌握主流嵌入式微處理器的結(jié)構(gòu)與原理。(2)必須掌握一個嵌入式操作系統(tǒng)。(3)必須熟悉嵌入式軟件開發(fā)流程并至少做過一個嵌入式軟件項目。

通過本門課程的學習,我對嵌入式系統(tǒng)有了較直觀的理解,并加深了操作系統(tǒng)一些概念的理解。但畢竟時間有限,希望可以在后續(xù)的進一步學習中加強實踐,希望早日能在嵌入式領(lǐng)域做一些開發(fā)工作。

22/ 22

第四篇:嵌入式工程師的社會實踐總結(jié)報告

實踐報告摘要:

學習嵌入式是我的夢想,我很羨慕能夠在嵌入式方面獨檔一面的高手,希望有一天我也能像他們那樣自信自如的在嵌入式這片熱土上揮灑著自己的青春和浪漫。帶著無比豪邁的心情和繽紛的夢想來到易嵌學習嵌入式,在新的老師、新的同學和新的環(huán)境中,我開始了我的嵌入式學習,開始了新一輪的拼搏。

在易嵌短暫的兩個月,我們從LINUX基礎入手,強化了C語言編程,學習了LINUX系統(tǒng)編程和網(wǎng)絡編程。時間雖短,但成長很快,無論是理論知識還是實踐能力都得到了大幅度的提高。在這里將理論和實踐相結(jié)合,相互促進,相互補充,使得學習更加透徹。通過用不同方法實現(xiàn)同一個項目,不斷深入,層層推進,學以致用!

在易嵌的這個暑假,我過得充實而快樂。在這里有著同學間的探討、師生間的互動和魔鬼般的訓練!在我豐富多彩的人生路上留下了永遠亮麗與難忘的記憶!

關(guān)鍵字:

易嵌 嵌入式 LINUX C語言 難忘的記憶

實踐報告正文:

看著四年的大學生活就快要結(jié)束了,心中隱隱有一種傷感與失落,我陷入了沉思:該挺直腰桿走自己的路了!學習嵌入式是我的夢想,我很羨慕能夠在嵌入式方面獨檔一面的高手,希望有一天我也能像他們那樣自信自如的在嵌入式這片熱土上揮灑著自己的青春和浪漫。

當我決定好好利用這個暑假,學習我一直都想去學的嵌入式的時候,就注定要在我豐富多彩的人生路上留下永遠亮麗與難忘的記憶!算算畢業(yè)的時間,我已經(jīng)聞到了離別的氣息,在這即將遠離大學時代的時刻,才真正懂得回眸的意義。想想走過的路,想想現(xiàn)在的路,想想來時的路,不知道未來能否成功,既然選擇了遠方,就注定要風雨兼程!帶著無比豪邁的心情和繽紛的夢想來到易嵌學習嵌入式,希望在這嶄新的一頁留下人生的美好!在新的老師、新的同學和新的環(huán)境中,我開始了我的嵌入式學習,開始了新一輪的拼搏。

無論現(xiàn)在多么努力都無法追回失去的金色年華,所以在開班典禮的時候,我便為自己制定了目標!我將好好利用最后一個暑假,多學些知識鍛煉自己,為自己儲備一些精神食糧并不斷開拓視野和提升自己的能力,讓自己能夠在畢業(yè)的時候成為學校的驕傲!

在易嵌短暫的兩個月,我們從LINUX基礎入手,強化了C語言編程,學習了LINUX系統(tǒng)編程和網(wǎng)絡編程。時間雖短,但成長很快,無論是理論知識還是實踐能力都得到了大幅度的提高。

通過對Linux操作系統(tǒng)的學習,我初步掌握了Linux基礎。剛開始我對Linux只是有一點兒了解,但并沒有真正的去接觸。在這段時間里,從Linux系統(tǒng)安裝開始著手,了解Linux的發(fā)展,相比其他系統(tǒng),它有很多優(yōu)點。在安裝好系統(tǒng)后,學習了Linux的分區(qū)命名、Linux的常用命令、文本編輯器Vi、Shell的使用、源代碼的編譯和調(diào)試、多模塊的編譯和鏈接以及管理工具。通過這些學習,我基本能夠在Linux系統(tǒng)下通過Vi編輯器編寫C語言程序,通過一些常用命令來調(diào)試、查看程序。

能夠在這么短的時間內(nèi)初步掌握Linux,與在學校學習一門課程意義完全不同,通過老師的講解,自己的練習,同學之間的交流,能夠加深印象,熟練操作。

學習Linux基礎只是我嵌入式學習歷程的一個開始,雖然有好多命令還不太熟悉,有好多命令都還沒有去嘗試過,但我相信隨著后期的學習,我將逐漸熟練掌握。

在C語言學習階段,我學到了很多新的知識,變量、函數(shù)、數(shù)組、指針、指針函數(shù)、函數(shù)指針、指針數(shù)組、數(shù)組指針、結(jié)構(gòu)體、結(jié)構(gòu)體指針數(shù)組、關(guān)鍵字……,從模塊到整體,從寫代碼的風格到代碼優(yōu)化……,通過這段時間的學習,我感覺自己寫出的代碼比以前更直觀,更注重細節(jié),BUG也更少了!

在半個月時間的C語言學習中,我從剛開始的重溫C語言到后來的位運算、堆棧、單向鏈表、雙向鏈表以及List_head。新知識以及注意點漸漸增多,在這段時間,我創(chuàng)造了很多個記錄,比如8小時完成30道編程題,獨自完成一個功能比較齊全的學生選課管理系統(tǒng)等,特別是剛接觸到鏈表和List_head的時候,不在像前面那樣輕松了,還記得那段時間,每到晚上熱醒的時候,又想起了我的學生管理系統(tǒng),本來就少的可憐的睡覺時間,又被……,真可謂苦我心志矣!

不過,等我美美的睡上一覺,醒來回想起這段時間的學習,真是一個大豐收!雖然不能說是很精通C語言,至少可以說真的`入門了……,我又向自己的目標邁出了堅實的一步!這段時間,我時常會想,如果一切可以重來,我會選擇另外一種學習方式,從一開始就夯實基礎!可是這是不現(xiàn)實的,經(jīng)歷了無數(shù)次的風雨后,柔弱的我早已學會了堅強。通過不斷的交流與學習,我懂得了生活,懂得了學習,懂得了時間,懂得了成長,懂得了奮斗和拼搏。現(xiàn)在知道,為時不晚,從現(xiàn)在開始,我將為自己開辟一條適合自己的道路。

伴隨著烈日,我們又開始了新的征程,開始深入學習LINUX系統(tǒng)程序設計,在這個階段,我們學習了操作系統(tǒng)基礎、并發(fā)性、LINUX系統(tǒng)接口、進程和線程以及進程間的通信。通過這階段的學習,我對LINUX有了更加深入的了解,能夠熟練進行多線程多進程的操作。

緊接著就進入了網(wǎng)絡編程學習階段,從網(wǎng)絡基礎到LINUX網(wǎng)絡編程,我更加深入的學習了TCP/IP協(xié)議和OSI模型,理解了數(shù)據(jù)報的傳輸過程,對網(wǎng)絡在嵌入式方面的應用進行了深入的學習,學會了Socket編程。學完后重新對學生選課管理系統(tǒng)進行了改寫,用C/S模型改寫成多用戶登錄,利用線程實現(xiàn)資源共享。在項目改寫中,不僅融合了前面的C語言知識,還充分的應用了LINUX系統(tǒng)編程和Socket編程,將理論和實踐相結(jié)合,相互促進,相互補充,使得學習更加透徹。通過用不同方法實現(xiàn)同一個項目,不斷深入,層層推進,學以致用!

在易嵌的這個暑假,我過得充實而快樂。在這里有著同學間的探討、師生間的互動和魔鬼般的訓練!軍隊通過扎實的訓練培養(yǎng)出來的,相信不久的將來,我也會成為一名優(yōu)秀的嵌入式工程師!

譚崇剛

20xx年8月28日

【嵌入式工程師的社會實踐總結(jié)報告】相關(guān)文章:

1.關(guān)于銷售員的社會實踐總結(jié)報告

2.學生的社會實踐活動總結(jié)報告

3.關(guān)于大學的社會實踐的總結(jié)報告

4.嵌入式應用實踐總結(jié)

5.修車的社會實踐總結(jié)

6.暑期的社會實踐總結(jié)

7.我的社會實踐日記

8.醫(yī)院的社會實踐總結(jié)

第五篇:嵌入式系統(tǒng)原理實驗總結(jié)報告

嵌入式系統(tǒng)原理實驗總結(jié)報告

車輛座椅控制系統(tǒng)實驗

2014/5/23

嵌入式系統(tǒng)原理實驗總結(jié)報告

一、技術(shù)性總結(jié)報告

(一)題目:車輛座椅控制系統(tǒng)實驗

(二)項目概述:

1.為了實現(xiàn)車輛座椅控制的自動化與智能化。

2.方便用戶通過智能手機與車載傳感器之間的聯(lián)動。3.使車輛作為當今物聯(lián)網(wǎng)中重要的一個節(jié)點發(fā)揮作用。

4.通過車輛座椅控制系統(tǒng)實驗實現(xiàn)對嵌入式系統(tǒng)原理課程的熟練掌握與對嵌入式系統(tǒng)原理知識的深化記憶。

5.加強本組學生對嵌入式系統(tǒng)原理的更深層次的理解與運用。

(三)技術(shù)方案及原理

本次試驗分為軟件、硬件兩個部分。1.軟件部分。

A.智能手機部分,包括通過智能手機對座椅的控制部分、手機所攜帶的身份信息部分。

本部分軟件使用Java編寫,其程序部分為: 主程序:

package com.example.seat;

import android.support.v7.app.ActionBarActivity;import android.support.v7.app.ActionBar;import android.support.v4.app.Fragment;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.os.Build;

import java.io.BufferedReader;import java.io.IOException;

import java.io.InputStreamReader;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.net.InetAddress;import java.net.Socket;

import java.net.UnknownHostException;

import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;

import android.view.KeyEvent;import android.view.View;import android.widget.Button;

public class MainActivity extends ActionBarActivity { private Button Up = null;private Button Left = null;private Button Dowm = null;private Button Right = null;private Socket socket = null;

private static final String HOST = “192.168.1.142”;

private static final int PORT = 10007;

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initControl();

}

private void initControl(){

Up =(Button)findViewById(R.id.button1);

Up.setOnClickListener(new ReceiverListener());

}

class ReceiverListener implements OnClickListener {

protected String line;

@Override

public void onClick(View v){

// TODO Auto-generated method stub

new Thread(){

@Override

public void run(){

try {

Socket socket = new Socket(HOST, PORT);

BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

line = br.readLine();

br.close();

} catch(UnknownHostException e){

// TODO Auto-generated catch block

e.printStackTrace();

} catch(IOException e){

// TODO Auto-generated catch block

e.printStackTrace();

}

handler.sendEmptyMessage(0);

}

}.start();

}

}

private Handler handler = new Handler(){

@Override

public void handleMessage(Message msg){

super.handleMessage(msg);

}

};

@Override

public boolean onCreateOptionsMenu(Menu menu){

// Inflate the menu;this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item){

// Handle action bar item clicks here.The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();

if(id == R.id.action_settings){

return true;

}

return super.onOptionsItemSelected(item);

}

/**

* A placeholder fragment containing a simple view.*/

public static class PlaceholderFragment extends Fragment {

public PlaceholderFragment(){

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){

View rootView = inflater.inflate(R.layout.fragment_main, container, false);

return rootView;

}

} } 界面代碼:

package=“com.example.seat”

android:versionCode=“1”

android:versionName=“1.0” >

android:name=“android.permission.ACCESS_NETWORK_STATE”/>

android:minSdkVersion=“8”

android:targetSdkVersion=“19” />

android:allowBackup=“true”

android:icon=“@drawable/ic_launcher”

android:label=“@string/app_name”

android:theme=“@style/AppTheme” >

android:name=“com.example.seat.MainActivity”

android:label=“@string/app_name” >

B.車載座椅控制部分,包括控制系統(tǒng)對座椅的控制部分、對智能手機發(fā)出的控制信息的識別部分和對手機所攜帶身份信息的校驗與儲存部分。本部分軟件使用Python編寫,其程序部分為: #!/usr/bin/python #encoding=utf-8 from Raspi_PWM_Servo_Driver import PWM import time, socket

host = '' port = 10007

pwm = PWM(0x6F, debug=True)

servoMin = 125 # Min pulse length out of 4096 , 0.5 servoMax = 575 # Max pulse length out of 4096 , 2.3

def setServoPulse(channel, pulse):

pulseLength = 1000000

# 1,000,000 us per second

pulseLength /= 60

# 60 Hz

print “%d us per period” % pulseLength

pulseLength /= 4096

# 12 bits of resolution

print “%d us per bit” % pulseLength

pulse *= 1000

pulse /= pulseLength

if(pulse>servoMax): pulse = servoMax

if(pulse

pwm.setPWM(channel, 0, int(pulse))

pwm.setPWMFreq(60)

# Set frequency to 60 Hz pwm.setPWM(0, 0, servoMax)

if __name__ == '__main__':

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

s.bind((host, port))

s.listen(3)

print 'Server is running on port %d, press Ctrl-C to terminate it.' % port

pulse_ud = 1.9

pulse_lr = 1.9

setServoPulse(0,pulse_ud)

setServoPulse(1,pulse_lr)

while True:

clientsock, clientaddr = s.accept()

clientfile = clientsock.makefile('rw', 0)

ctrlinfo = clientfile.readline().strip()

print 'Control info is %s.n' % ctrlinfo

if ctrlinfo == “up”:

pulse_ud += 0.1

elif ctrlinfo == “down”:

pulse_ud-= 0.1

elif ctrlinfo == “l(fā)eft”:

pulse_lr += 0.1

elif ctrlinfo == “right”:

pulse_lr-= 0.1

else:

print “ERRORn”

setServoPulse(0,pulse_ud)

setServoPulse(1,pulse_lr)

clientfile.close()

clientsock.close()

2.硬件部分。

對車載座椅控制部分發(fā)出的信息的接受、識別、執(zhí)行部分。本次試驗使用的硬件設備包括:智能手機一部、“樹莓派”一臺、小舵機兩臺、舵機驅(qū)動板一個、無線網(wǎng)卡一個、杜邦線若干、5V電源一個、無線路由器一個

智能手機

樹莓派(外)

樹莓派(內(nèi))

小舵機

舵機驅(qū)動板

無線網(wǎng)卡

杜邦線

5V電源

無線路由器

(四)實驗流程及結(jié)果

1.打開智能手機上的控制軟件。

2.向車載座椅控制臺發(fā)送信息。(發(fā)送信息分別為上、下、左、右)3.車載座椅控制臺接受、識別并執(zhí)行信息。4.通過小舵機的動作驗證該實驗是否成功。(詳細見視頻)

二、工作進度自評表

本次試驗完成。

本次試驗計劃分為三個階段。

第一階段:智能手機部分、車載座椅控制部分和硬件部分的分別完成。本階段完成。

第二階段:智能手機部分、車載座椅控制部分和硬件部分的整合階段。本階段完成。

第三階段:車輛座椅控制系統(tǒng)實驗的驗收調(diào)試階段。本階段完成。

三、組內(nèi)人員自評

本次試驗打到預期的實驗目的。雖然在實驗進行過程中遇到了不少的麻煩,但是通過我們成員自身的努力學習掌握了實驗所要求的知識。最后實驗的成功與組員之間的互相幫助與緊密配合是分不開的。

四、個人學習心得

本人通過此次實驗,對于嵌入式系統(tǒng)原理有了更加深層次的了解。對于設計嵌入式系統(tǒng)原理的實驗也有了較為高程度的提高。為了以后更進一步的學習并掌握嵌入式系統(tǒng)打下了堅實的一步。對于了解車輛座椅控制的自動化與智能化;了解用戶通過智能手機與車載傳感器之間的聯(lián)動;了解車輛作為當今物聯(lián)網(wǎng)中重要的一個節(jié)點都發(fā)揮了重要作用。通過車輛座椅控制系統(tǒng)實驗實現(xiàn)對嵌入式系統(tǒng)原理課程的熟練掌握與對嵌入式系統(tǒng)原理知識的深化記憶。加強本組學生對嵌入式系統(tǒng)原理的更深層次的理解與運用。

下載嵌入式總結(jié)報告word格式文檔
下載嵌入式總結(jié)報告.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔相關(guān)法律責任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    嵌入式系統(tǒng)設計基礎總結(jié)報告

    嵌入式系統(tǒng)設計基礎 嵌入式系統(tǒng)設計基礎 結(jié)題報告 學生1: 學生2: 學生3: 組長: 組長電話: 指導老師: 完成時間: 嵌入式系統(tǒng)設計基礎 目錄 目錄 ........................................

    嵌入式實時操作系統(tǒng) 項目開發(fā)總結(jié)報告

    項目開發(fā)總結(jié)報告 分 類:軟件項目計劃 使用者:E-fanciers Version: 1.0 項 目 承 擔 隊伍:煙臺大學 計算機學院 E-fanciers小組撰 寫 人(簽名): 許超 于歌 完 成 日 期: 2009-7-1......

    計算機專業(yè)暑期學習嵌入式社會實踐總結(jié)報告

    實踐報告摘要:學習嵌入式是我的夢想,我很羨慕能夠在嵌入式方面獨檔一面的高手,希望有一天我也能像他們那樣自信自如的在嵌入式這片熱土上揮灑著自己的青春和浪漫。帶著無比豪邁......

    嵌入式實驗報告

    目錄 實驗一 跑馬燈實驗 ......................................................................... 1 實驗二 按鍵輸入實驗 ...............................................

    嵌入式學習心得

    LPC2136是ARM7架構(gòu),是32位地址總線和數(shù)據(jù)總線,可以尋址的范圍為2的32次方=4GB(0x00000000~0xFFFFFFFF)我們的程序在哪里運行?還記得我們在做“跑馬燈”和“蜂鳴器”兩個實驗,用......

    嵌入式實驗報告

    嵌入式系統(tǒng)及應用課 程設計報告姓名:陳宥祎 班級:14級計算機01班 學號:1255010116 指導老師:黃衛(wèi)紅 按鍵輸入實驗 一.實驗簡介 在實驗一的基礎上,使用按鍵控制流水燈速度,及使用......

    嵌入式學習心得

    嵌入式學習心得 當今社會,嵌入式系統(tǒng)已經(jīng)滲透到人們工作、生活中的各個領(lǐng)域,嵌入式處理器已占分散處理器市場份額的94%。而嵌入式Linux系統(tǒng)也蓬勃發(fā)展,不僅繼承了Linux源碼開放......

    嵌入式心得體會

    這學期才接觸嵌入式系統(tǒng)感覺還稱不上入門,我通過學習知道了嵌入式的發(fā)展前景很大,各個領(lǐng)域都用到了嵌入式,學好嵌入式不愁沒飯吃。 廣義上講,凡是帶有微處理器的專用軟硬件系統(tǒng)......

主站蜘蛛池模板: 国产亚洲精品美女久久久m| 嫖妓丰满肥熟妇在线精品| 激情爆乳一区二区三区| 亚洲中文字幕无码久久2018| 新版天堂资源中文8在线| 国产98色在线 | 国产| 亚洲精品国偷拍自产在线| 日日摸夜夜添无码无码av| 亚洲av日韩精品久久久久久a| 成av人电影在线观看| 曰批免费视频播放免费| 欧美性开放情侣网站| 老子影院午夜伦不卡无码| 精品熟人妻一区二区三区四区不卡| 少妇粗大进出白浆嘿嘿视频| 玩弄白嫩少妇xxxxx性| 国产成人精品日本亚洲专区61| 巨爆乳无码视频在线观看| 亚洲久热无码av中文字幕| 国产在线视频福利资源站| 亲近乱子伦免费视频无码| 无码内射成人免费喷射| 四川老熟女下面又黑又肥| 大学生被内谢粉嫩无套| 国产香蕉视频在线播放| 中文字幕久久波多野结衣av不卡| 国产精品美脚玉足脚交欧美| 久久久国产精品| 男插女高潮一区二区| 国产成人a人亚洲精品无码| 99久久综合精品五月天| 国产乱码字幕精品高清av| 人人妻人人添人人爽欧美一区| 精品国精品国产自在久国产应用男| 色综合久久久久无码专区| 日本免费一区二区三区在线播放| 国产丰满麻豆videossexhd| 亚洲亚洲精品av在线动态图| 久久精品av一区二区免费| 任我爽橹在线视频精品583| 又黄又爽又色的视频|