2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  學號: 4110008032 </p><p>  泰山醫(yī)學院畢業(yè)設計(論文)</p><p>  題目: 基于ARM Cortex-M3的雙以太網口通信的實現(xiàn) </p><p>  2014年 6 月 10 日</p><p> 院(部)系信息工程學院</p><p> 所 學 專 業(yè)計

2、算機科學與技術</p><p> 年級、班級2010級本科1班</p><p> 完成人姓名</p><p> 指導教師姓名專業(yè)技術職稱副教授</p><p><b>  摘要</b></p><p>  隨著嵌入式系統(tǒng)技術的發(fā)展,嵌入式系統(tǒng)技術與以太網技術融合的也越來越緊密,雖然嵌入式系統(tǒng)的應用

3、程序完全可以在ARM裸機上運行,但是隨著測控設備功能的增強,嵌入式系統(tǒng)所需完成的任務越來越復雜,需要管理的外設越來越多,傳統(tǒng)的軟件開發(fā)模式已經顯得力不從心。而采用嵌入式操作系統(tǒng)作為軟件開發(fā)平臺,就可以由操作系統(tǒng)來完成任務的管理和系統(tǒng)資源的分配,開發(fā)工作的重點才能集中于實際應用系統(tǒng)性能的提高。此外,在操作系統(tǒng)基礎上可實現(xiàn)統(tǒng)一規(guī)范的編程,使程序具有良好的可讀性和可移植性,并可提高開發(fā)的效率。</p><p>  AR

4、M Cortex-M3處理器結合了多種突破性技術,令芯片供應商提供超低費用的芯片。該處理器還集成了許多緊耦合系統(tǒng)外設,令系統(tǒng)能滿足下一代產品的控制需求。</p><p>  本論文是基于ARM Cortex-M3微處理器MB9F618和近來比較流行RT-Thread操作系統(tǒng)的雙以太網口通信的研制過程為主要內容,闡述了其具體使用的技術和各模塊的實現(xiàn)方法,區(qū)別于一般的TCP/IP協(xié)議,本系統(tǒng)采用了LwIP的通信協(xié)議,

5、LwIP實現(xiàn)的重點是在保持TCP協(xié)議主要的功能的基礎上減少對RAM的占用,它只需要十幾KB的RAM和40K左右的ROM就可以運行,這使LwIP協(xié)議棧適合在低端的嵌入式系統(tǒng)中使用。在以上的硬件和軟件的共同支持下,最終完成了雙以太網口之間通信的研究。</p><p>  關鍵詞: ARM Cortex-M3;RT-Thread;LwIP;雙以太網的通信</p><p><b>  A

6、bstract</b></p><p>  With the development of embedded systems technology,embedded system technology and the integration of Ethernet technology is also more closely,though embedded systems applications

7、can run on ARM bare metal , but with enhanced functionality and control devices , embedded systems needed to complete the task more complex, the need to manage more and more peripherals , traditional software development

8、 model has appeared to be inadequate . The focus on distribution development of embedded operating s</p><p>  In addition, the operating system can be realized on the basis of a standardized programming, the

9、 program has good readability and portability , and improve development efficiency.</p><p>  ARM Cortex-M3 processor combines multiple breakthrough technologies enable chip vendors to provide ultra-low cost

10、of the chip . The processor also integrates a number of tightly-coupled system peripherals , so that the control system can meet the needs of the next generation of products.</p><p>  This thesis is based on

11、 the development process of dual Ethernet port communication ARM Cortex-M3 microprocessor MB9F618 and recently more popular RT-Thread operating system as the main content , technology and describes the implementati

12、on of each module of its specific use , the difference in general TCP / IP protocol , the system uses a communication protocol LwIP focus LwIP achieve is to reduce the occupancy of RAM on the basis of maintaining the ma

13、in features of the TCP protocol on , </p><p>  Keywords : ARM Cortex-M3 ;RT-Thread ;LwIP ;dual Ethernet communication</p><p><b>  目錄</b></p><p><b>  前言1</b>

14、</p><p>  第一章 相關技術背景介紹3</p><p>  1. 嵌入式系統(tǒng)的定義3</p><p>  2. 嵌入式處理器分類與現(xiàn)狀4</p><p>  3. 嵌入式操作系統(tǒng)6</p><p>  4. 網絡協(xié)議棧6</p><p><b>  5. 本章小結

15、7</b></p><p>  第二章 系統(tǒng)硬件平臺8</p><p>  1. ARM Cortex-M3處理器8</p><p>  2. 系統(tǒng)任務要求9</p><p>  2.1 硬件方面9</p><p>  2.1 軟件方面9</p><p>  3. 開發(fā)板M

16、B9F618簡介9</p><p>  3.2 開發(fā)板外觀9</p><p>  3.2 配置說明10</p><p>  4. 本章小結11</p><p>  第三章 軟件的設計12</p><p>  1. 嵌入式操作系統(tǒng)的選擇12</p><p>  1.1 RT-Threa

17、d操作系統(tǒng)的簡介1錯誤!未定義書簽。</p><p>  1.2 虛擬文件系統(tǒng)13</p><p>  1.3 shell系統(tǒng)13</p><p>  1.4 圖形用戶界面13</p><p>  1.5 支持的平臺13</p><p>  1.6 RT-Thread的內核對象模型14</p>

18、<p>  1.7 內核對象管理工作模式14</p><p>  1.8 線程狀態(tài)15</p><p>  2. LwIP協(xié)議棧錯誤!未定義書簽。</p><p>  2.1 LwIP協(xié)議棧簡介16</p><p>  2.2 LwIP的以太網數(shù)據接收18</p><p>  3. LwIP協(xié)議棧

19、的初始化21</p><p>  4. MB9F618網口設置22</p><p>  5. 主要函數(shù)功能的簡介25</p><p>  6. 本章小結25</p><p>  第四章 系統(tǒng)功能模塊調試27</p><p>  1. 程序燒寫27</p><p>  2. 程序燒寫后

20、27</p><p>  3. 雙網卡測試27</p><p>  4. 網口的通信29</p><p>  5. 本章小結31</p><p><b>  結論32</b></p><p><b>  參考文獻33</b></p><p>

21、;<b>  致謝34</b></p><p><b>  前言</b></p><p>  最近幾年,嵌入式系統(tǒng)產品日臻完善,并在全世界各行業(yè)得到廣泛應用。嵌入式系統(tǒng)產品的研制和應用已經成為我國信息化帶動工業(yè)化、工業(yè)化促進信息化發(fā)展的新的國民經濟增長點。</p><p>  隨著信息化、智能化、網絡化的發(fā)展,嵌入式技術

22、將全面展開,現(xiàn)在嵌入式已經成為通信和消費類產品的共同發(fā)展方向??傮w來說,嵌入式系統(tǒng)分別在硬件和軟件方面獲得發(fā)展。嵌入式系統(tǒng)必將成為當今IT界的又一焦點,開發(fā)自主知識產權的嵌入式處理器和嵌入式操作系統(tǒng),對于我們國家的民族IT產業(yè)來講具有十分重要的戰(zhàn)略意義。從國內IT市場來看,嵌入式系統(tǒng)及其產品在由家電產品和Internet衍生出來的新型市場中占有主導地位和獨特份額。</p><p>  在消費家電的智能化的今天,嵌

23、入式更顯重要。像我們平常見到的手機、PDA、電子字典、可視電話、VCD/DVD/MP3Player、數(shù)字相機(DC)、數(shù)字攝像機(DV)、U-Disk、機頂盒(Set Top Box)、高清電視(HDTV)、游戲機、智能玩具、交換機、路由器、數(shù)控設備或儀表、汽車電子、家電控制系統(tǒng)、醫(yī)療儀器、航天航空設備等等,都是典型的嵌入式系統(tǒng)。據預測,隨著Internet的迅速發(fā)展和廉價微處理器的出現(xiàn),嵌入式系統(tǒng)將在日常生活里形成更大的應用領域。&l

24、t;/p><p>  新的微處理器層出不窮,嵌入式操作系統(tǒng)自身結構的設計更加便于移植,能夠在短時間內支持更多的微處理器。嵌入式系統(tǒng)的開發(fā)成了一項系統(tǒng)工程,開發(fā)廠商不僅要提供嵌入式軟硬件系統(tǒng)本身,同時還要提供強大的硬件開發(fā)工具和軟件支持包。各類嵌入式Linux操作系統(tǒng)迅速發(fā)展,由于具有源代碼開放、系統(tǒng)內核小、執(zhí)行效率高、網絡結構完整等特點,很適合信息家電等嵌入式系統(tǒng)的需要,目前已經形成了能與Windows CE、Pal

25、m OS等嵌入式操作系統(tǒng)進行有力競爭的局面。網絡化、信息化的要求隨著Internet技術的成熟和帶寬的提高而日益突出,以往功能單一的設備如電話、手機、冰箱、微波爐等功能不再單一,結構變得更加復雜,網絡互聯(lián)成為必然趨勢。精簡系統(tǒng)內核,優(yōu)化關鍵算法,降低功耗和軟硬件成本。提供更加友好的多媒體人機交互界面。</p><p>  21世紀無疑將足一個網絡的時代,將嵌入式系統(tǒng)應用到各種網絡環(huán)境中去的呼聲自然也越來越高。目前

26、大多數(shù)嵌入式系統(tǒng)還孤立于Internet之外,隨著Internet的進一步發(fā)展,以及Internet技術與信息家電、工業(yè)控制技術等的結合日益緊密,嵌入式設備與Internet的結合才是嵌入式技術的真正未來。信息時代和數(shù)字時代的到來,為嵌入式系統(tǒng)的發(fā)展帶來了巨大的機遇,同時也對嵌入式系統(tǒng)廠商提出,新的挑戰(zhàn)。目前,嵌入式技術與Internet技術的結合正在推動著嵌入式技術的飛速發(fā)展,嵌入式系統(tǒng)的研究和應用產生了如下新的顯著變化;</p

27、><p>  隨著ARM及其合作伙伴在嵌入式領域不斷努力,芯片的成本不斷降低,多種智能設備將通過互聯(lián)網得以聯(lián)動,形成一個體系。在這個網絡中,所有的日常事物都將內置芯片,從而具備處理信息并與網絡交流的能力,這就是所謂的物聯(lián)網。與應用處理器(AP)相比,微控制器(MCU)應用和嵌入式系統(tǒng)開發(fā)領域無疑具有相當?shù)亩鄻有院蛷碗s性。</p><p>  2012年23日,中國農歷年的除夕這一天, LSI公

28、司今天宣布擴大與ARM的長期的戰(zhàn)略合作伙伴關系。新聞明確的提出,LSI將借此合作進軍網絡應用。根據新授權許可, LSI不但可以訪問包括包括了支持虛擬化的ARM Cortex-A15處理器的一系列ARM處理器,而且可以訪問對于多核應用至關重要的ARM芯片的互連技術。</p><p>  回顧2013,10月份,AppliedMicro 的獲得v8架構授權,8月份,海思半導體獲ARM技術授權,用于新一代的3G/4G基

29、站網絡基礎架構。2月份, Broadcom和ARM擴展了戰(zhàn)略合作伙伴,1月份,Cavium的進行一代SoC的新聞,再算上一直有ARM架構Marvell,ARM越來越多的和網絡聯(lián)系在一起。</p><p>  在國內,越來越多的開源軟件,讓一直倍受封閉系統(tǒng)折磨的電信OEM,開始從ARM強大的生態(tài)系統(tǒng)的受益。 當然,最重要的是,ARM的處理器不僅僅是在低功耗表現(xiàn)出色,它們在性能方面的優(yōu)勢逐步顯現(xiàn)。因為網絡應用永遠都是

30、性能饑渴的。</p><p>  將嵌入式系統(tǒng)技術與以太網技術集成在一起很早之前就產生了,但是有很多的客觀因素制約了它的發(fā)展。早期的嵌入式系統(tǒng)中的處理器大部分是以8位、16位MCU微控制器為主,無論是運算速度還是存儲容量都比較低。而且早期的以太網技術還不成熟,所以TCP/IP協(xié)議棧未能在嵌入式系統(tǒng)中得到廣泛的運用。但是隨著半導體微電子技術和以太網技術的高速發(fā)展,以上的問題正在逐步得到解決,32位MCU微處理器也逐

31、步得到廣泛的應用。</p><p>  本文以ARM處理結構的嵌入式硬件系統(tǒng)為基礎,實現(xiàn)了具有網絡通信的實時操作系統(tǒng),該應用可以廣泛的在工業(yè)控制,通訊設備,家用電器等領域推廣,使得更多的設備能夠被遠程控制和管理,改變傳統(tǒng)的模式,進入互聯(lián)網通信的世界。除此之外,本文是采用MB9F618這開發(fā)板,TR-Thread的操作系統(tǒng),以及嵌入式的LwIP協(xié)議,最終來實現(xiàn)本系統(tǒng)的測試。</p><p>

32、  第一章 相關技術背景介紹</p><p>  1. 嵌入式系統(tǒng)的定義</p><p>  嵌入式系統(tǒng)(Embedded System)是一種包括硬和軟件的完整的計算機系統(tǒng),它的定義是:“嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,并且軟硬件可剪裁,適用于應用系統(tǒng)對功能、可靠性、成本、體積和功耗有嚴格要求的專用計算機系統(tǒng)。”嵌入式系統(tǒng)所用的計算機是嵌入到被控對象的專用微處理器,但是功能

33、比通用計算機專門化,具有通用計算機所不能具備的針對某個方面特別設計的、合適的運算速度、高可靠性和較低比較成本的專用計算機系統(tǒng)。</p><p>  嵌入式系統(tǒng)一般指非PC系統(tǒng),它包括硬件和軟件兩部分。硬件包括處理器微處理器、存儲器及外設器件和I/O端口、圖形控制器等。軟件部分包括操作系統(tǒng)軟件(OS)(要求實時和多任務操作)和應用程序編程。有時設計人員把這兩種軟件組合在一起。應用程序控制著系統(tǒng)的運作和行為;而操作系

34、統(tǒng)控制著應用程序編程與硬件的交互作用。</p><p>  嵌入式系統(tǒng)的核心是嵌入式微處理器。嵌入式微處理器一般就具備以下4個特點:</p><p>  (1)對實時多任務有很強的支持能力,能完成多任務并且有較短的中斷響應時間,從而使內部的代碼和實時內核心的執(zhí)行時間減少到最低限度。</p><p>  (2)具有功能很強的存儲區(qū)保護功能。這是由于嵌入式系統(tǒng)的軟件結構

35、已模塊化,而為了避免在軟件模塊之間出現(xiàn)錯誤的交叉作用,需要設計強大的存儲區(qū)保護功能,同時也有利于軟件診斷。</p><p>  (3)可擴展的處理器結構,以能最迅速地開展出滿足應用的最高性能的嵌入式微處理器。</p><p>  (4)嵌入式微處理器必須功耗很低,尤其是用于便攜。</p><p>  下面對嵌入式計算機系統(tǒng)的組成進行介紹。</p>&l

36、t;p><b>  (1)硬件層</b></p><p>  硬件層中包含嵌入式微處理器、存儲器(SDRAM、ROM、Flash等)、通用設備接口和I/O接口(A/D、D/A、I/O等)。在一嵌入式處理器基礎上添加電源電路、時鐘電路和存儲器電路,就構成了一個嵌入式核心控制模塊。其中操作系統(tǒng)和應用程序都可以固化在ROM中。</p><p><b>  (

37、2)中間層</b></p><p>  硬件層與軟件層之間為中間層,也稱為硬件抽象層(Hardware Abstract Layer,HAL)</p><p>  或者版級支持包(Board Support Package,BSP),它半系統(tǒng)上層軟件與底層硬件分離開來,使系統(tǒng)的底層驅動程序與硬件無關,上層軟件開發(fā)人員無需關心底層硬件的具體情況,根據BSP層提供的接口即可進行開發(fā)

38、。該層一般包含相關底層硬件的初始化、數(shù)據的輸入/輸出操作和硬件設備的配置功能。</p><p>  實際上,BSP是一個介于操作系統(tǒng)和底層硬件之間的軟件層次,包括了系統(tǒng)中大部分與硬件聯(lián)系緊密的軟件模塊。設計一個完整的BSP需要完成兩部分工作:嵌入工系統(tǒng)的硬件初始化的BSP功能,設計硬件相關的設備驅動。</p><p><b>  (3)系統(tǒng)軟件層</b></p&

39、gt;<p>  系統(tǒng)軟件層由實時多任務操作系(Real-time Operation System,RTOS)、文件系統(tǒng)、圖形用戶接口(Graphic User Interface,GUI)、網絡系統(tǒng)及通用組件模塊組成。RTOS是嵌入式應用軟件的基礎和開發(fā)平臺。</p><p>  2. 嵌入式處理器分類與現(xiàn)狀</p><p>  圖1-1 嵌入式處理器分類</p&

40、gt;<p>  嵌入式微處理器(MPU):微機中的中央處理器(CPU)稱為微處理器(MPU),是構成微機的核心部件,也可以說是微機的心臟。它起到控制整個微型計算機工作的作用,產生控制信號對相應的部件進行控制,并執(zhí)行相應的操作。在微機中,CPU被集成在一片超大規(guī)模集成電路芯片上,稱為微處理器(MPU),微處理器插在主板的cpu插槽中。通常所說的16位機、32位機是指該計算機中微處理器內部數(shù)據總線的寬度,也就是CPU可同時操

41、作的</p><p>  二進制數(shù)的位數(shù)。目前常用的CPU都是64位的,即一次可傳送64位二進制數(shù)。</p><p>  嵌入式微控制器(MCU):(嵌入式微控制器(Embedded Microcontroller Unit,EMCU)嵌入式微控制器的典型代表是單片機,單片機從誕生之日起,就稱為嵌入式微控制器。它體積小,結構緊湊,作為一個部件埋藏于所控制的裝置中,主要完成信號控制的功能。就

42、是將整個計算機系統(tǒng)集成到一塊芯片中。但這種8位的電子器件目前在嵌入式設備中仍然有著極其廣泛的應用。單片機芯片內部集成ROM/EPROM、RAM、總線、總線邏輯、定時/計數(shù)器、看門狗、I/O、串行口、脈寬調制輸出、A/D、D/A、Flash RAM、EEPROM等各種必要功能和外設。和嵌入式微處理器相比,微控制器的最大特點是單片化,體積大大減小,從而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系統(tǒng)工業(yè)的主流。由于微控制器的片上外設資

43、源一般比較豐富,適合于控制,因此稱微控制器。為了適應不同的應用需求,一般一個系列的單片機具有多種衍生產品,每種衍生產品的處理器內核都是一樣的名不同的是存儲器和外設的配置極封裝。這樣可以最大限度地與應用需求相匹配,從而減小功耗和成本。由于MCU低廉的價格,優(yōu)良的功能,所以擁有的品種和數(shù)量最多</p><p>  嵌入式DSP處理器(DSP):DSP是一門涉及許多學科而又廣泛應用于許多領域的新興學科。20世紀60年代

44、以來,隨著計算機和信息技術的飛速發(fā)展,數(shù)字信號處理技術應運而生并得到迅速的發(fā)展。數(shù)字信號處理是一種通過使用數(shù)學技巧執(zhí)行轉換或提取信息,來處理現(xiàn)實信號的方法,這些信號由數(shù)字序列表示。在過去的二十多年時間里,數(shù)字信號處理已經在通信、消費電子等領域得到廣泛的應用。DSP處理器經過單片化、EMC改造、增加片上外設,或在通用單片機或SOC中增加DSP協(xié)處理器,從而發(fā)展成為嵌入式DSP處理器(Embedded Digital Signal Proc

45、essor, EDSP),推動嵌入式DSP處理器發(fā)展的因素主要是嵌入式系統(tǒng)的智能化。目前TI、ADI、Freescale、CEVA等半導體廠商在這一領域擁有很強的實力。</p><p>  嵌入式片上系統(tǒng)(system on chip):SoC定義的基本內容主要表現(xiàn)在兩方面:其一是它的構成,其二是它形成過程。系統(tǒng)級芯片的構成可以是系統(tǒng)級芯片控制邏輯模塊、微處理器/微控制器CPU 內核模塊、數(shù)字信號處理器DSP模塊

46、、嵌入的存儲器模塊、和外部進行通訊的接口模塊、含有ADC/DAC的模擬前端模塊、電源提供和功耗管理模塊,對于一個無線SoC還有射頻前端模塊、用戶定義邏輯(它可以由FPGA 或ASIC實現(xiàn))以及微電子機械模塊,更重要的是一個SoC 芯片內嵌有基本軟件(RDOS或COS以及其他應用軟件)模塊或可載入的用戶軟件等。系統(tǒng)級芯片形成或產生過程包含以下三個方面:(1) 基于單片集成系統(tǒng)的軟硬件協(xié)同設計和驗證;(2) 再利用邏輯面積技術使用和產能

47、占有比例有效提高即開發(fā)和研究IP核生成及復用技術,特別是大容量的存儲模塊嵌入的重復應用等;(3) 超深亞微米(UDSM) 、納米集成電路的設計理論和技術。</p><p>  3. 嵌入式操作系統(tǒng)</p><p>  圖1-2 嵌入式設備網絡化</p><p><b>  地址資源</b></p><p>  物聯(lián)網

48、的實現(xiàn)需要給每個物體分配唯一的標識或地址。最早的可尋址性想法是基于RFID標簽和電子產品唯一編碼來實現(xiàn)的。另一個來自語義網的想法是,用現(xiàn)有的命名協(xié)議,如統(tǒng)一資源標志符來訪問所有物品(不僅限于電子產品,智能設備和帶有RFID標簽的物品)。這些物品本身不能交談,但通過這種方式它們可以被其他節(jié)點訪問,例如一個強大的中央服務器。下一代互聯(lián)網將使用IPv6協(xié)議,它擁有極大數(shù)量的地址資源,使用IPv6的程序能夠和幾乎所有接入設備進行通信。這個系統(tǒng)將

49、能夠識別任何一種物品GS1/EPCglobal Information Services (EPCIS) 是這些想法的一個綜合實踐。 這個系統(tǒng)被用來標識從航天、交通到消費電子領域的物品。</p><p><b>  人工智能</b></p><p>  環(huán)境智能和自主控制并不是物聯(lián)網最初概念的一部分。環(huán)境智能和自主控制也并不依賴于網絡架構。但目前的研究趨勢是將自主控制

50、和物聯(lián)網結合在一起,在未來物聯(lián)網可能是一個非決定性的、開放的網絡,其中自組織的或智能的實體和虛擬物品能夠和環(huán)境交互并基于它們各自的目的自主運行。</p><p><b>  4. 網絡協(xié)議棧</b></p><p>  (1)嵌入式微處理器和嵌入式操作系統(tǒng)為特征的嵌入式計算平臺使計算進入了后PC時代。嵌入式系統(tǒng)的小體積、高可靠能夠滿足實現(xiàn)野戰(zhàn)和惡劣環(huán)境下的便攜虛擬儀器

51、的需要?;谇度胧接嬎闫脚_,設計虛擬儀器系統(tǒng)成為構建測試系統(tǒng)的新思路。</p><p>  (2)與通用型計算機系統(tǒng)相比,嵌入式系統(tǒng)功耗低、可靠性高;功能強大、性能價格比高;實時性強,支持多任務;占用空間小,效率高;面向特定應用,可根據需要靈活定制。</p><p>  (3)操作方便、簡單、提供友好的圖形GUI和圖形界面,追求易學易用。提供強大的網絡功能,支持TCP/IP協(xié)議及其他協(xié)議,

52、提供TCP/UDP/IP/PPP協(xié)議支持及統(tǒng)一的MAC訪問層接口,為各種移動計算設備預留接口。強穩(wěn)定性,弱交互性。嵌入式系統(tǒng)一旦開始運行就不需要用戶過多的干預、這就要負責系統(tǒng)管理的EOS具有較強的穩(wěn)定性。</p><p>  (4)嵌入式操作系統(tǒng)的用戶接口一般不提供操作命令,它通過系統(tǒng)的調用命令向用戶程序提供服務。固化代碼。在嵌入式系統(tǒng)中,嵌入式操作系統(tǒng)和應用軟件被固化在嵌入式系統(tǒng)計算機的ROM中。</p&

53、gt;<p>  (5)更好的硬件適應性,也就是良好的移植性。</p><p><b>  5. 本章小結</b></p><p>  從技術的角度定義:嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,軟件硬件可剪裁,適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。</p><p>  從系統(tǒng)的角度定義:嵌入式

54、系統(tǒng)是設計完成復雜功能的硬件和軟件,并使其緊密耦合在一起的計算機系統(tǒng)。</p><p>  第二章 系統(tǒng)硬件平臺</p><p>  1. ARM Cortex-M3處理器</p><p>  圖2-1 Cortex-M3的一個簡化示意圖 </p><p>  CM3擁有R0~R15的寄存器組,其中R13作為堆棧指針SP。SP有兩個,但在同

55、一時刻只能看到一個,這就是所謂的"banked"寄存器。1.R0~R12是32位通用寄存器,用于數(shù)據操作。絕大多數(shù)16位的thumb指令只能訪問R0~R7,而32位的thumb指令可以訪問全部寄存器。2.banked R13:兩個堆棧指針 主堆棧指針(MSP):復位后默認使用進程堆棧指針(PSP):由用戶的應用程序代碼使用堆棧指針的最低兩位永遠是0,這意味著堆棧總是4字節(jié)對齊的。實際上,R13的最低兩位被硬線連接到

56、0。</p><p>  圖2-2 Cortex-M3內部寄存器示意圖</p><p><b>  2. 系統(tǒng)任務要求</b></p><p><b>  2.1 硬件方面</b></p><p>  (1)實現(xiàn)1個串口,1個RS232或1個Rs232和1個Rs485,通過跳線選擇,串口波特率可選

57、,最大波特率為115200bps</p><p>  (2)實現(xiàn)2個網口,網口A與網口B可以同時工作,通訊方式下實際速率至少100l(B/s)</p><p>  (3)雙以太網口通信的實現(xiàn)</p><p><b>  2.2 軟件方面</b></p><p>  在運行RT-Thread前,我們需要安裝RealView

58、 MDK(正式版或評估版) 3.5+,它不僅是軟件仿真工具,也是編譯器鏈接器。</p><p>  先從Keil官方網站下載RealView MDK評估版。會需要先填一些個人基本信息即可進行下載。下載完畢后,在Windows環(huán)境下運行它就行了。</p><p>  3. 開發(fā)板MB9F618簡介</p><p><b>  3.1 開發(fā)板外觀</b&

59、gt;</p><p>  圖2-3 MB9F618外觀</p><p><b>  3.2 配置說明</b></p><p><b>  處理器</b></p><p>  Fujitsu MB9BF618S(ARM CortexM3 核心)主頻可達144M。128K內部SRAM、1M內部Fla

60、sh。多功能串口可按UART、SPI等多方式通信。雙USB控制器,雙以太網控制器。八通道DMA,兩種看門狗定時器,12位A/D轉換器等。</p><p><b>  外設資源</b></p><p>  ? 1個DB9串口(UART0)</p><p>  ? 1個SD卡插座</p><p>  ? 1個Mini-

61、B USB Host接口</p><p>  ? 1個B型USB Slave接口</p><p><b>  4個用戶LED</b></p><p>  ? 1個SPI接口</p><p>  ? 1個電源接口(5V )</p><p>  ? 1個JTAG接口</p>&l

62、t;p><b>  ? 1個復位按鍵</b></p><p>  ? 1個4M系統(tǒng)時鐘晶振</p><p>  ? 1個50M以太網控制器時鐘晶振</p><p>  ? 1個32.767K用于低功耗晶振</p><p>  ? 2個RJ45 + DP83848 PHY</p>&l

63、t;p><b>  4. 本章小結</b></p><p>  ARM Cortex-M3處理器是行業(yè)領先的3位處理器,適用于具有較高確定性的實時應用,它經過專門開發(fā),可使合作伙伴針對廣泛的設備(包括微控制器、汽車車身系統(tǒng)、工業(yè)控制系統(tǒng)以及無線網絡和傳感器)開發(fā)高性能低成本平臺。此處理器具有出色的計算性能以及對事件的優(yōu)異系統(tǒng)響應能力,同時可應實際中對低動態(tài)和靜態(tài)功率需求的挑戰(zhàn)。此處理器

64、配置十分靈活,從而支持廣泛的實現(xiàn)形式(從需要內存保護和強大trace技術的實現(xiàn)形式,直至需要極小面積的成本敏感型設備)。</p><p><b>  第三章 軟件的設計</b></p><p>  1. 嵌入式操作系統(tǒng)的選擇</p><p>  1.1 RT-Thread操作系統(tǒng)的簡介</p><p>  RT-Thre

65、ad是一個開放源代碼的實時操作系統(tǒng),并且商業(yè)許可證非常寬松的實時操作系統(tǒng)。RT-Thread的變革因為Cortex-M3 而來,因為ST的STM32 使用的人太廣了,當然還有非常重要的一點。RT-Thread已經開始支持Keil MDK,armcc編譯器了。GNU GCC確實好,并且也由衷的推崇它,使用它,只是調試確實麻煩,阻礙了更多人使用它(ARM平臺上)。當RT-Thread + Cortex-M3 + Keil MDK碰撞在一起的

66、時候,火花因它而生,越來越多人使用RT-Thread了,當然這和RT-Thread厚積薄發(fā)是離不開的,因為這個時候,RT-Thread已經有一個穩(wěn)定的內核,shell方式的調試利器?nsh,DFS虛擬設備文件系統(tǒng),LwIP協(xié)議棧以及自己從頭開發(fā)的圖形用戶界面GUI。RT-Thread/GUI成型于2008年底,但為了Cortex-M3分支,這個組件停下來很多,但這種停留是值得的。</p><p>  在Corte

67、x-M3這個平臺上(當然也包括其他一些ARM平臺),已經有多家企業(yè)開始使用RT-Thread實時操作系統(tǒng)作為他們的軟件平臺,其中也包括一家國內A股上市企業(yè),他們把RT-Thread應用于電力,監(jiān)控,RFID,數(shù)據采集等數(shù)個領域中,RT-Thread實時操作系統(tǒng)涵蓋了實時內核,文件系統(tǒng),LwIP網絡協(xié)議棧,?nsh shell等組件。RT-Thread/GUI因為出道時間比較晚,還處于試用期。</p><p>  

68、圖3-1 RT-Thread及外圍組件的基本框架圖</p><p>  RT-Thread Kernel內核部分包括了RT-Thread的核心代碼,包括對象管理器,線程管理及調度,線程間通信等的微小內核實現(xiàn)(最小能夠到達4k ROM,1k RAM體積占用)。內核庫是為了保證內核能夠獨立運作的一套小型類似C庫實現(xiàn)(這部分根據編譯器自帶C庫的情況會有些不同,使用GCC編譯器時,攜帶更多的標準C庫實現(xiàn))。CPU及板級

69、支持包包含了RT-Thread支持的各個平臺移植代碼,通常會包含兩個匯編文件,一個是系統(tǒng)啟動初始化文件,一個是線程進行上下文切換的文件,其他的都是C源文件。</p><p>  1.2 虛擬文件系統(tǒng)</p><p>  RT-Thread提供的文件系統(tǒng)稱為設備文件系統(tǒng),它主要包含了一個非常輕型的虛擬文件系統(tǒng)。虛擬文件系統(tǒng)的好處就是,不管下層采用了什么文件系統(tǒng),例如內存虛擬文件系統(tǒng),F(xiàn)AT3

70、2文件系統(tǒng)還是YAFFS2閃存文件系統(tǒng),對上層應用程序提供的接口都是統(tǒng)一的。</p><p>  1.3 shell系統(tǒng)</p><p>  RT-Thread的shell系統(tǒng)——FinSH,提供了一套供用戶在命令行操作的接口,主要用于調試、查看系統(tǒng)信息。由于系統(tǒng)程序大多數(shù)采用C語言來編寫,F(xiàn)inSH命令行的設計被設計成類似C語言表達式的風格:它能夠解析執(zhí)行大部分C語言的表達式,也能夠使用

71、類似于C語言的函數(shù)調用方式(或函數(shù)指針方式)訪問系統(tǒng)中的函數(shù)及全局變量。</p><p>  1.4 圖形用戶界面</p><p>  RT-Thread/GUI組件是一套完全針對嵌入式系統(tǒng)而進行優(yōu)化的圖形用戶界面,它在保留通常意義的多窗口的前提下,提出了面板,工作臺,視圖的概念,通過一個個視圖的渲染展現(xiàn)出圖形用戶界面絢麗的外觀。它同樣也包括了基本控件的支持、中文顯示的支持、多線程的支持;

72、針對嵌入式系統(tǒng)計算能力不足的特點,它會自動對界面區(qū)域進行可視區(qū)域的剪切,該重繪顯示的地方進行重繪,被覆蓋的地方則不進行重復繪圖。</p><p><b>  1.5 支持的平臺</b></p><p>  圖3-2 RT-Therad支持的平臺</p><p>  1.6 RT-Thread的內核對象模型</p><p&g

73、t;  RT-Thread的內核對象模型是一種非常有趣的面向對象實現(xiàn)方式。由于C語言更為面向系統(tǒng)底層,操作系統(tǒng)核心通常都是采用C語言和匯編語言混合編寫而成。C語言作為一門高級計算機編程語言,一般被認為是一種面向過程的編程語言:程序員按照特定的方式把要處理事物的過程一級級分解成一個個子過程。 </p><p>  面向對象源于人類對世界的認知多偏向于類別模式,根據世界中不同物品的特性分門別類的組織在一起抽象并歸納,

74、形成各個類別的自有屬性。在計算機領域一般采用一門新的,具備面向對象特征的編程語言實現(xiàn)面向對象的設計,例如常見的編程語言C++,Java,Python等。那么RT- Thread既然有意引入對象系統(tǒng),為什么不直接采用C++來實現(xiàn)?這個需要從C++的實現(xiàn)說起,用過C++的開發(fā)人員都知道,C++的對象系統(tǒng)中會引入很多未知的東西,例如虛擬重載表,命名粉 碎,模板展開等。</p><p>  面向對象有它非常優(yōu)越的地方,取

75、其精華(即面向對象思想,面向對象設計),也就是RT-Thread內核對象模型的來源。RT-Thread實時操作系統(tǒng)中包含一個小型的,非常緊湊的對象系統(tǒng),這個對象系統(tǒng)完全采用C語言實現(xiàn)。在了解RT-Thread內部或采用RT-Thread編程時有必要先熟悉它,它是RT-Thread實現(xiàn)的基礎。</p><p>  1.7 內核對象管理工作模式</p><p>  圖3-3 RT-Threa

76、d內核對象管理工作模式</p><p>  RT-Thread采用內核對象管理系統(tǒng)來訪問/管理所有內核對象。內核對象包含了內核中絕大部分設施,而這些內核對象可以是靜態(tài)分配的靜態(tài)對象,也可以是從系統(tǒng)內存堆中分配的動態(tài)對象。通過內核對象系統(tǒng),RT-Thread做到了不依賴于具體的內存分配方式,系統(tǒng)的靈活性得到極大的提高。</p><p>  RT-Thread內核對象包括:線程,信號量,互斥鎖

77、,事件,郵箱,消息隊列和定時器,內存池,設備驅動等。對象容器中包含了每類內核對象的信息,包括對象類型,大小等。對象容器給每類內核對象分配了一個鏈表,所有的內核對象都被鏈接到該鏈表上。</p><p>  下圖顯示了RT-Thread中各類內核對象的派生和繼承關系。對于每一種具體內核對象和對象控制塊,除了基本結構外,還有自己的擴展屬性(私有屬性),例如,對于線程控制塊,在基類對象基礎上進行擴展,增加了線程狀態(tài)、優(yōu)先

78、級等屬性。這些屬性在基類對象的操作中不會用到,只有在與具體線程相關的操作中才會使用。因此從面向對象的觀點,可以認為每一種具體對象是抽象對象的派生,繼承了基本對象的屬性并在此基礎上擴展了與自己相關的屬性。</p><p>  圖3-4 RT-Thread中各類內核對象的派生和繼承關系</p><p>  在對象管理模塊中,定義了通用的數(shù)據結構,用來保存各種對象的共同屬性,各種具體對象只需要

79、在此基礎上加上自己的某些特別的屬性,就可以清楚的表示自己的特征。這種設計方法的優(yōu)點:</p><p>  (1)提高了系統(tǒng)的可重用性和擴展性,增加新的對象類別很容易,只需要繼承通用對象的屬性再加少量擴展即可。</p><p>  (2)提供統(tǒng)一的對象操作方式,簡化了各種具體對象的操作,提高了系統(tǒng)的可靠性。</p><p><b>  1.8 線程狀態(tài)<

80、;/b></p><p>  線程運行的過程中,在一個時間內只允許一個線程在處理器中運行,即線程會有多種不同的線程狀態(tài),如運行態(tài),非運行態(tài)等。在RT-Thread實時操作系統(tǒng)中,線程包含四種狀態(tài),操作系統(tǒng)會自動根據它運行的情況而動態(tài)調整它的狀態(tài)。</p><p>  RT-Thread中的四種線程狀態(tài):</p><p>  (1) RT THREAD INIT

81、/CLOSE</p><p>  線程初始狀態(tài)。當線程剛開始創(chuàng)建還沒開始運行時就處于這個狀態(tài);當線程運行結束時也處于這個狀態(tài)。在這個狀態(tài)下,線程不參與調度。</p><p>  (2)RT THREAD SUSPEND</p><p>  掛起態(tài)。線程此時被掛起:它可能因為資源不可用而等待掛起;或主動延時一段時間而被掛起。在這個狀態(tài)下,線程不參與調度。</p&

82、gt;<p>  (3)RT THREAD READY</p><p>  就緒態(tài)。線程正在運行;或當前線程運行完讓出處理機后,操作系統(tǒng)尋找最高優(yōu)先級的就緒態(tài)線程運行。</p><p>  (4) RT THREAD RUNNING</p><p>  運行態(tài)。線程當前正在運行,在單核系統(tǒng)中,只有rt thread self()函數(shù)返回的線程處于這個狀

83、態(tài);在多核系統(tǒng)中則不受這個限制。</p><p>  RT-Thread實時操作系統(tǒng)提供一系列的操作系統(tǒng)調用接口,使得線程的狀態(tài)在這四個狀態(tài)之間來回的變換。例如一個就緒態(tài)的線程由于申請一個資源(例如使用rt sem take),而有可能進入阻塞態(tài)。又如,一個外部中斷發(fā)生,轉入中斷處理函數(shù),中斷處理函數(shù)釋放了某個資源,導致了當前運行任務的切換,喚醒了另一阻塞態(tài)的任務,改變其狀態(tài)為就緒態(tài)等等。</p>

84、<p>  線程通過調用函數(shù)rt thread create/init調用進入到初始狀態(tài)(RT THREAD INIT/RT THREAD CLOSE),通過函數(shù)rt thread startup調用后進入到就緒狀態(tài)(RT THREAD READY)。當這個線程調用rt thread delay,rt sem take,rt mb recv等函數(shù)時,將主動掛起或由于獲取不到資源進入到掛起狀態(tài)。在掛起狀態(tài)的線程,如果它等待超時依

85、然未獲得資源或由于其他線程釋放了資源,它將返回到就緒狀態(tài)。</p><p><b>  LwIP協(xié)議棧</b></p><p>  2.1 LwIP協(xié)議棧簡介</p><p>  LwIP是Light Weight (輕型)IP協(xié)議,有無操作系統(tǒng)的支持都可以運行。LwIP實現(xiàn)的重點是在保持TCP協(xié)議主要功能的基礎上減少對RAM 的占用,它只需十

86、幾KB的RAM和40K左右的ROM就可以運行,這使LwIP協(xié)議棧適合在低端的嵌入式系統(tǒng)中使用。</p><p>  lwIP協(xié)議棧主要關注的是怎么樣減少內存的使用和代碼的大小,這樣就可以讓lwIP適用于資源有限的小型平臺例如嵌入式系統(tǒng)。為了簡化處理過程和內存要求,lwIP對API進行了裁減,可以不需要復制一些數(shù)據。</p><p>  lwip提供三種API:</p><

87、;p><b>  RAW API</b></p><p><b>  lwip API</b></p><p><b>  BSD API</b></p><p>  RAW API把協(xié)議棧和應用程序放到一個進程里邊,該接口基于函數(shù)回調技術,使用該接口的應用程序可以不用進行連續(xù)操作。不過,這會使

88、應用程序編寫難度加大且代碼不易被理解。為了接收數(shù)據,應用程序會向協(xié)議棧注冊一個回調函數(shù)。該回調函數(shù)與特定的連接相關聯(lián),當該關聯(lián)的連接到達一個信息包,該回調函數(shù)就會被協(xié)議棧調用。這既有優(yōu)點也有缺點。優(yōu)點是既然應用程序和TCP/IP協(xié)議棧駐留在同一個進程中,那么發(fā)送和接收數(shù)據就不再產生進程切換。主要缺點是應用程序不 能使自己陷入長期的連續(xù)運算中,這樣會導致通訊性能下降,原因是TCP/IP處理與連續(xù)運算是不能并行發(fā)生的。這個缺點可以通過把應用

89、程序分為兩部分來克 服,一部分處理通訊,一部分處理運算。</p><p>  lwip API把接收與處理放在一個線程里面。這樣只要處理流程稍微被延遲,接收就會被阻塞,直接造成頻繁丟包、響應不及時等嚴重問題。因此,接收與協(xié)議處理必須分開。LwIP顯然已經考慮到了這一點,他為我們提供了tcpip_input()函數(shù)來處理這個問題,雖然他并沒有在rawapi一文中說明。我們都應該知道tcpip_input()函數(shù),它

90、們來自于由底層網絡驅動組成的接收線程。我們在編寫網絡驅動時,其接收部分以任務的形式創(chuàng)建。數(shù)據包到達后,去掉以太網包頭得到IP包,然后直接調用tcpip_input()函數(shù)將其投遞到mbox郵箱。投遞結束,接收任務繼續(xù)下一個數(shù)據包的接收,而被投遞得IP包將由TCPIP線程繼續(xù)處理。這樣,即使某個IP包的處理時間過長也不會造成頻繁丟包現(xiàn)象的發(fā)生。這就是lwip API。</p><p>  BSD API提供了基于o

91、pen-read-write-close模型的UNIX標準API,它的最大特點是使應用程序移植到其它系統(tǒng)時比較容易,但用在嵌入式系統(tǒng)中效率比較低,占用資源多。這對于我們的嵌入式應用有時是不能容忍的。</p><p>  圖3-5 LwIP示意圖</p><p>  2.2 LwIP的以太網數(shù)據接收</p><p>  圖3-6 LwIP數(shù)據的接收示意圖</

92、p><p>  LWIP使用了一個eth_hdr的數(shù)據結構來描述以太網數(shù)據包包頭的14個字節(jié)。如下,</p><p>  PACK_STRUCT_BEGIN </p><p>  struct eth_hdr { </p><p>  PACK_STRUCT_FIELD(struct eth_addr dest); //目標 MAC 地址&

93、lt;/p><p>  PACK_STRUCT_FIELD(struct eth_addr src); //源 MAC 地址</p><p>  PACK_STRUCT_FIELD(u16_t type); //類型</p><p>  } PACK_STRUCT_STRUCT; </p><p>  PACK_ST

94、RUCT_END </p><p>  其中PACK_STRUCT_xxx 都是與編譯器字對齊相關的宏定義,</p><p>  上面的dest、src和type三個字段分別和上圖中的目的MAC地址、源MAC地址和類型域</p><p>  數(shù)據包接收進程,源代碼如下:</p><p>  void ethernetif_input(vo

95、id *arg) //創(chuàng)建該進程</p><p><b>  {</b></p><p>  struct eth_hdr *ethhdr;</p><p>  struct pbuf *p;</p><p>  struct netif *netif = (struct netif *)arg;</p>

96、;<p><b>  while (1)</b></p><p><b>  {</b></p><p>  p = low_level_input (netif);</p><p>  if (p == NULL)</p><p><b>  continue;</b

97、></p><p>  ethhdr = p->payload; //取得數(shù)據包內數(shù)據</p><p>  switch (htons(ethhdr->type)) //判斷數(shù)據包類型</p><p>  { //只對IP數(shù)據包和ARP數(shù)據包進行處理</p><p>  

98、case ETHTYPE_IP: //IP數(shù)據包</p><p>  case ETHTYPE_ARP: //ARP數(shù)據包</p><p>  if (netif->input(p, netif)!=ERR_OK) //將數(shù)據包發(fā)送到上層應用函數(shù)</p><p><b>  {</b></p>&

99、lt;p>  pbuf_free(p);</p><p><b>  p = NULL;</b></p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  default:</b></

100、p><p>  pbuf_free(p);</p><p><b>  p = NULL;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b><

101、/p><p><b>  }</b></p><p>  在數(shù)據包接收進程中,有三個需要注意的地方。一是數(shù)據包接收的方法是查詢方式,即處理器不斷向網卡芯片中讀取數(shù)據,如果讀不到數(shù)據,則控制器會重新啟動一個讀取時序;如果能夠成功讀取到數(shù)據,則將數(shù)據通過網卡注冊的input函數(shù)交往上層進行處理。使用查詢方式實現(xiàn)的數(shù)據包接收進程其優(yōu)先級必須低于系統(tǒng)中其他進程的優(yōu)先級,否則它會阻

102、塞比它優(yōu)先級低的進程的運行。上面的程序有個可以改進的地方,即在讀取到的數(shù)據包為空時,接收進程調用系統(tǒng)函數(shù)將自己延時一段時間再啟動下一個讀取過程,這樣可以使其不能阻止優(yōu)先級更低的進程的運行,缺點是數(shù)據包的接收得不到及時的響應。其實數(shù)據包的接收可以采用中斷的方式來實現(xiàn),這種方式是一種比較好的方式。一般的網卡芯片都有中斷功能,即當網卡接收到一個數(shù)據包后,它可以產生中斷信號告訴控制器自己接收到一個數(shù)據包??刂破鞔藭r啟動一個讀取數(shù)據包時序,就能有

103、效的讀取到非空數(shù)據包。所以可以這樣來實現(xiàn)一個接收數(shù)據包進程:在無數(shù)據包收到時,數(shù)據包接收進程阻塞在一個信號量下,當有數(shù)據包到來時,網卡芯片產生一個中斷信號,處理器進入中斷處理,并釋放一個信號量。中斷退出后,數(shù)據包接收進程得到信號量,并從網卡芯片</p><p>  第二個需要注意的地方是htons(ethhdr->type)函數(shù)的使用,htons函數(shù)的功能是將一個半字長的數(shù)據從網絡字節(jié)順序轉換到我們的處理器

104、支持的字節(jié)順序。解釋一下,在計算機體系結構和計算機通信領域中,對于半字、字等的存儲機制有可能不同。目前通常采用的存儲機制主要有兩種:big-endian和little-endian,即大端和小端。對于大端模式,某個半字或字數(shù)據的高位字節(jié)被在內存的低地址端,低位字節(jié)排放在內存的高地址端。對于小端模式,則恰好相反。由于我們使用的ARM處理器使用的是小端模式,而接收到的網絡字節(jié)數(shù)據用的是大端模式,所以這里調用函數(shù)htons實現(xiàn)大端與小端的轉換

105、,實際就是將兩個字節(jié)交換順序即可。在調用htons(ethhdr->type)后,ethhdr->type的值就為0x0800或0x0806等。最后需要注意的地方,netif->input在結構enc28j60初始化時已經被設置為指向tcpip_input函數(shù),所以實際上上面是調用tcpip_input函數(shù)往上層遞交數(shù)據包。tcpip_input屬于IP層函數(shù),從這里我們可以看出LWIP的一個很大的特點,即各層之<

106、;/p><p>  3. LwIP協(xié)議棧的初始化</p><p>  在在使用LwIP 協(xié)議棧之前,需要初始化協(xié)議棧。協(xié)議棧本身會啟動一個TCP的線程,和協(xié)議相關的處理都會放在這個線程中完成。</p><p>  #include rtthread.h</p><p>  #ifdef RT USING LWIP</p><

107、;p>  #include lwip/sys.h</p><p>  #include netif/ethernetif.h</p><p><b>  #endif</b></p><p>  void rt init thread entry(void *parameter)</p><p><b&

108、gt;  {</b></p><p>  #ifdef RT USING LWIP</p><p>  { extern void lwip sys init(void); /*初始化以太網線程*/</p><p>  eth system device init(); /*注冊以太網接口驅動*/</p><p&g

109、t;  rt hw stm32 eth init(); /*初始化注冊的設備驅動*/</p><p>  rt device init all(); /*初始化LwIP系統(tǒng)*/</p><p>  lwip sys init();</p><p>  rt kprintf("TCP/IP initialized!\n");&l

110、t;/p><p><b>  }</b></p><p><b>  #endif</b></p><p><b>  }</b></p><p>  int rt application init()</p><p><b>  {</b

111、></p><p>  rt thread t init thread;</p><p>  init thread = rt thread create("init", rt init thread entry, RT NULL,2048, 10, 5);</p><p>  if (init thread != RT N

溫馨提示

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

評論

0/150

提交評論