![51單片機(jī)上移植ucosII_第1頁](http://file4.renrendoc.com/view/b2af275cda394985357c01f4b253aada/b2af275cda394985357c01f4b253aada1.gif)
![51單片機(jī)上移植ucosII_第2頁](http://file4.renrendoc.com/view/b2af275cda394985357c01f4b253aada/b2af275cda394985357c01f4b253aada2.gif)
![51單片機(jī)上移植ucosII_第3頁](http://file4.renrendoc.com/view/b2af275cda394985357c01f4b253aada/b2af275cda394985357c01f4b253aada3.gif)
![51單片機(jī)上移植ucosII_第4頁](http://file4.renrendoc.com/view/b2af275cda394985357c01f4b253aada/b2af275cda394985357c01f4b253aada4.gif)
![51單片機(jī)上移植ucosII_第5頁](http://file4.renrendoc.com/view/b2af275cda394985357c01f4b253aada/b2af275cda394985357c01f4b253aada5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、51單片機(jī)上移植ucos-II51單片機(jī)上移植ucos-II21/2151單片機(jī)上移植ucos-II適用標(biāo)準(zhǔn)文檔嵌入式及時(shí)操作系統(tǒng)實(shí)驗(yàn)報(bào)告單片機(jī)上移植C/OS-II系別計(jì)算機(jī)與電子系專業(yè)班級(jí)電子0901班學(xué)生姓名驕橫指導(dǎo)教師黃向宇提交日期2012年4月17日文案大全適用標(biāo)準(zhǔn)文檔一、實(shí)驗(yàn)?zāi)康睦斫庖浦睠/OS-II的一般原理及基本方法。掌握在51單片機(jī)上移植C/OS-II的方法及步驟,掌握在51單片機(jī)上鑒于C/OS-II系統(tǒng)建立應(yīng)用程序的基本源理及方法。二、實(shí)驗(yàn)內(nèi)容1.建立并熟習(xí)編譯及仿真調(diào)試環(huán)境(keil+proteus)。2.下載已移植好的軟件包,在開發(fā)環(huán)境下建立工程編譯并運(yùn)轉(zhuǎn)察看運(yùn)轉(zhuǎn)結(jié)果,使
2、用Keil自帶的仿真調(diào)試工具察看程序運(yùn)轉(zhuǎn)狀況(內(nèi)存的分派、變量及CPU存放器的動(dòng)向變化、任務(wù)的切換運(yùn)轉(zhuǎn)狀態(tài)等);比較移植前和移植后的有關(guān)文件,分析移植過程中做了哪些變動(dòng)工作。3.聯(lián)合前兩次實(shí)驗(yàn)內(nèi)容,在移植軟件包的基礎(chǔ)上試一試增添用戶任務(wù),并利用信號(hào)量、信息郵箱等建立任務(wù)之間的通訊聯(lián)系;同時(shí)試一試采納動(dòng)向內(nèi)存分派的方法為任務(wù)分派內(nèi)存,使用Keil仿真工具察看程序運(yùn)轉(zhuǎn)狀況并記錄運(yùn)轉(zhuǎn)結(jié)果。4.輸入課本P220的例子程序,編譯運(yùn)轉(zhuǎn)并察看運(yùn)轉(zhuǎn)結(jié)果。文案大全適用標(biāo)準(zhǔn)文檔將以上浮試好的軟件移植到proteus開發(fā)環(huán)境中去,利用proteus的硬件仿真環(huán)境創(chuàng)立幾個(gè)實(shí)質(zhì)任務(wù)(如鍵盤、顯示器、LED點(diǎn)陣、數(shù)碼管、
3、時(shí)鐘或溫度傳感器等)給每個(gè)賦以適合的優(yōu)先級(jí),配置適合的貨倉容量,編譯運(yùn)轉(zhuǎn)并察看運(yùn)轉(zhuǎn)狀況,顯示信息能夠用液晶顯示器或虛假終端來顯示。三實(shí)驗(yàn)原理移植的見解所謂移植,就是使一個(gè)及時(shí)內(nèi)核能在某個(gè)微辦理器或微控制器上運(yùn)轉(zhuǎn)。為了方便移植,大部分的C/OS-代碼是用C語言寫的;但仍需要用C和匯編語言寫一些與辦理器有關(guān)的代碼,這是因?yàn)?在讀C/OS寫辦理器存放器時(shí)只好經(jīng)過匯編語言來實(shí)現(xiàn)。因?yàn)?C/OS在設(shè)計(jì)時(shí)就已經(jīng)充分考慮了可移植性,因此C/OS-的移植相對(duì)來說是比較簡單的。要使C/OS-正常運(yùn)轉(zhuǎn),辦理器必然知足以下要求:辦理器的C編譯器能產(chǎn)生可重入代碼。用C語言就能夠翻開和封閉中止。3.辦理器支持中止,而且
4、能產(chǎn)生準(zhǔn)時(shí)中止(平常在10至100Hz之間)。辦理器支持能夠容納必然量數(shù)據(jù)(可能是幾千字節(jié))的硬件貨倉。辦理器有將貨倉指針和其余CPU存放器讀出和儲(chǔ)蓄到貨倉或內(nèi)存中的指令。假如用戶理解了辦理器和C編譯器的技術(shù)細(xì)節(jié),移植-C/OS的工作實(shí)質(zhì)上是特別簡單的。前提是您的辦理器和編譯器知足了-的要求,C/OS而且已經(jīng)有了必需工具。移植工作包含以下幾個(gè)內(nèi)容:用#define設(shè)置一個(gè)常量的值(OS_CPU.H)文案大全適用標(biāo)準(zhǔn)文檔申明10個(gè)數(shù)據(jù)種類(OS_CPU.H)用#define申明三個(gè)宏(OS_CPU.H)用C語言編寫六個(gè)簡單的函數(shù)(OS_CPU_C.C)編寫四個(gè)匯編語言函數(shù)(OS_CPU_A.AS
5、M)依據(jù)辦理器的不一樣樣,一個(gè)移植實(shí)例可能需要編寫或改寫50至300行的代碼,需要的時(shí)間從幾個(gè)小時(shí)到一禮拜不等。一旦代碼移植結(jié)束,下一步工作就是測(cè)試。測(cè)試一個(gè)象-相同的多C/OS任務(wù)及時(shí)內(nèi)核其實(shí)不復(fù)雜。甚至能夠在沒有應(yīng)用程序的狀況下測(cè)試。換句話說,就是讓內(nèi)核自己測(cè)試自己。這樣做有兩個(gè)利處:第一,防范使原來就復(fù)雜的事情更加復(fù)雜;第二,假如出現(xiàn)問題,能夠知道問題出在內(nèi)核代碼上而不是應(yīng)用程序。剛開始的時(shí)候能夠運(yùn)轉(zhuǎn)一些簡單的任務(wù)和時(shí)鐘節(jié)拍中止服務(wù)例程。一旦多任務(wù)調(diào)度成功地運(yùn)轉(zhuǎn)了,再增添應(yīng)用程序的任務(wù)就是特別簡單的工作了。2.開發(fā)工具移植C/OS-需要一個(gè)C編譯器,而且是針對(duì)用戶用的CPU的。因?yàn)镃/O
6、S-是一個(gè)可剝奪型內(nèi)核,用戶只有經(jīng)過C編譯器來產(chǎn)生可重入代碼;C編譯器還要支持匯編語言程序。絕大部分的C編譯器都是為嵌入式系統(tǒng)設(shè)計(jì)的,它包含匯編器、連結(jié)器和定位器。連結(jié)器用來將不一樣樣的模塊(編譯過和匯編過的文件)連結(jié)成目標(biāo)文件。定位器則贊成用戶將代碼和數(shù)據(jù)擱置在目標(biāo)辦理器的指定內(nèi)存照耀空間中。所用的C編譯器還必然供給一個(gè)系統(tǒng)來從C中翻開和封閉中止。一些編譯器贊成用戶在C源代碼中插入?yún)R編語言。這就使得插入適合的辦理器指令來贊成和嚴(yán)禁中止變得特別簡單了。還有一些編譯器實(shí)質(zhì)上包含了語言擴(kuò)展功能,能夠直接從C中贊成和嚴(yán)禁中止。文案大全適用標(biāo)準(zhǔn)文檔目錄和文件本書所付的磁盤中供給了-C/OS的安裝程序,
7、可在硬盤上安裝-C/OS和移植實(shí)例代碼(Intel80 x86實(shí)模式,大模式編譯)。我設(shè)計(jì)了一個(gè)連續(xù)的目錄構(gòu)造,使得用戶更簡單找到目標(biāo)辦理器的文件。假如想增添一個(gè)其余辦理器的移植實(shí)例,您能夠考慮采納相同的方法(包含目錄的建立和文件的命名等等)。全部的移植實(shí)例都應(yīng)放在用戶硬盤的COS-目錄下。各個(gè)微辦理器或微控制器的移植源代碼必然在以下兩個(gè)或三個(gè)文件中找到:OS_CPU.H,OS_CPU_C.C,OS_CPU_A.ASM。匯編語言文件OS_CPU_A.ASM是可選擇的,因?yàn)槟承〤編譯器贊成用戶在C語言中插入?yún)R編語言,因此用戶可以將所需的匯編語言代碼直接放到OS_CPU_C.C中。擱置移植實(shí)例的目
8、錄決定于用戶所用的辦理器,比方在下邊的表中所示的擱置不一樣樣移植實(shí)例的目錄構(gòu)造。注意,各個(gè)目錄固然針對(duì)完滿不一樣樣的目標(biāo)辦理器,但都包含了相同的文件名。Intel/AMDSOFTWAREuCOS-IIIx86S80186OS_CPU.HOS_CPU_A.ASMOS_CPU_C.CSOFTWAREuCOS-IIIx86LOS_CPU.HOS_CPU_A.ASM文案大全適用標(biāo)準(zhǔn)文檔OS_CPU_C.CMotorolaSOFTWAREuCOS-II68HC1168HC11OS_CPU.HOS_CPU_A.ASMOS_CPU_C.CINCLUDES.H在第一章中曾提到過,INCLUDES.H是一個(gè)頭文
9、件,它在全部.C文件的第一行被包含。#includeincludes.hINCLUDES.H使得用戶項(xiàng)目中的每個(gè).C文件不用分別去考慮它實(shí)質(zhì)上需要哪些頭文件。使用INCLUDES.H的獨(dú)一弊端是它可能會(huì)包含一些實(shí)質(zhì)不有關(guān)的頭文件。這意味著每個(gè)文件的編譯時(shí)間可能會(huì)增添。但因?yàn)樗訌?qiáng)了代碼的可移植性,因此我們還是決定使用這一方法。用戶能夠經(jīng)過編寫INCLUDES.H來增添自己的頭文件,但是用戶的頭文件必然增添在頭文件列表的最后。OS_CPU.HOS_CPU.H包含了用#defines定義的與辦理器有關(guān)的常量,宏和種類定義。OS_CPU.H的大概構(gòu)造如程序清單L8.1所示。程序清單L8.1OS_CP
10、U.H.文案大全適用標(biāo)準(zhǔn)文檔#ifdefOS_CPU_GLOBALS#defineOS_CPU_EXT#else#defineOS_CPU_EXTextern#endif/*數(shù)據(jù)種類*(與編譯器有關(guān))*/typedefunsignedcharBOOLEAN;typedefunsignedcharINT8U;/*無符號(hào)8位整數(shù)*/(1)typedefsignedcharINT8S;/*有符號(hào)8位整數(shù)*/typedefunsignedintINT16U;/*無符號(hào)16位整數(shù)*/typedefsignedintINT16S;/*有符號(hào)16位整數(shù)*/typedefunsignedlongINT32U;
11、/*無符號(hào)32位整數(shù)*/typedefsignedlongINT32S;/*有符號(hào)32位整數(shù)*/文案大全適用標(biāo)準(zhǔn)文檔typedeffloatFP32;/*單精度浮點(diǎn)數(shù)*/(2)typedefdoubleFP64;/*雙精度浮點(diǎn)數(shù)*/typedefunsignedintOS_STK;/*貨倉進(jìn)口寬度為16位*/*與辦理器有關(guān)的代碼*/#defineOS_ENTER_CRITICAL()?/*嚴(yán)禁中止*/(3)#defineOS_EXIT_CRITICAL()?/*贊成中止*/#defineOS_STK_GROWTH1/*定義貨倉的增添方向:1=向下,0=向上*/(4)#defineOS_TASK
12、_SW()?(5)文案大全適用標(biāo)準(zhǔn)文檔與編譯器有關(guān)的數(shù)據(jù)種類因?yàn)椴灰粯訕拥奈⑥k理器有不一樣樣的字長,因此C/OS-的移植包含了一系列的種類定義以保證其可移植性。特別是,OS-代碼C/從不使用C的short,int和long等數(shù)據(jù)種類,因?yàn)樗鼈兪桥c編譯器有關(guān)的,不能夠移植。相反的,我定義的整型數(shù)據(jù)構(gòu)造既是可移植的又是直觀的L8.1(2)。為了方便,固然-C/OS不使用浮點(diǎn)數(shù)據(jù),但我還是定義了浮點(diǎn)數(shù)據(jù)種類L8.1(2)。比方,INT16U數(shù)據(jù)種類老是代表16位的無符號(hào)整數(shù)。此刻,-C/OS和用戶的應(yīng)用程序就能夠預(yù)計(jì)出申明為該數(shù)據(jù)種類的變量的數(shù)值范圍是065535。將C/OS-移植到32位的辦理器上
13、也就意味著INT16U實(shí)質(zhì)被申明為無符號(hào)短整型數(shù)據(jù)構(gòu)造而不是無符號(hào)整型數(shù)據(jù)構(gòu)造。但是,-所辦理的C/OS仍舊是INT16U。用戶必然將任務(wù)貨倉的數(shù)據(jù)種類告訴給-。這C/OS個(gè)過程是經(jīng)過為OS_STK申明正確的C數(shù)據(jù)種類來完成的。假如用戶的辦理器上的貨倉成員是32位的,而且用戶的編譯文件指定整型為32位數(shù),那么就應(yīng)當(dāng)將OS_STK申明位無符號(hào)整型數(shù)據(jù)種類。全部的任務(wù)貨倉都必然用OS_STK來申明數(shù)據(jù)種類。用戶所必然要做的就是查察編譯器手冊(cè),并找到對(duì)應(yīng)于C/OS-的標(biāo)準(zhǔn)C數(shù)據(jù)種類。OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()與全部的及時(shí)內(nèi)核相同,-C/OS需要先嚴(yán)禁
14、中止再接見代碼的臨界段,而且在接見完成后從頭贊成中止。這就使得-能夠保C/OS護(hù)臨界段代碼免受多任務(wù)或中止服務(wù)例程(ISRs)的損壞。中止嚴(yán)禁時(shí)間是商業(yè)及時(shí)內(nèi)核企業(yè)提供的重要指標(biāo)之一,因?yàn)樗鼘⒂绊懙接脩舻南到y(tǒng)對(duì)及時(shí)勢(shì)件的響應(yīng)能力。固然文案大全適用標(biāo)準(zhǔn)文檔C/OS-盡量使中止嚴(yán)禁時(shí)間達(dá)到最短,但是C/OS-的中止嚴(yán)禁時(shí)間還主要依靠于辦理器構(gòu)造和編譯器產(chǎn)生的代碼的質(zhì)量。平常每個(gè)辦理器都會(huì)供給必然的指令來嚴(yán)禁/贊成中止,因此用戶的C編譯器必然要有必然的系統(tǒng)來直接從C中履行這些操作。有些編譯器能夠贊成用戶在C源代碼中插入?yún)R編語言申明。這樣就使得插入辦理器指令來贊成和嚴(yán)禁中止變得很簡單了。其余一些編譯器
15、實(shí)質(zhì)上包含了語言擴(kuò)展功能,能夠直接從C中贊成和嚴(yán)禁中止。為了隱蔽編譯器廠商供給的詳細(xì)實(shí)現(xiàn)方法,C/OS-定義了兩個(gè)宏來嚴(yán)禁和同意中止:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()L8.1(3)。OS_ENTER_CRITICAL();/*?C/OS-II臨界代碼段*/OS_EXIT_CRITICAL();方法1履行這兩個(gè)宏的第一個(gè)也是最簡單的方法是在OS_ENTER_CRITICAL()中調(diào)用辦理器指令來嚴(yán)禁中止,以及在OS_EXIT_CRITICAL()中調(diào)用贊成中止指令。但是,在這個(gè)過程中還存在著小小的問題。假如用戶在嚴(yán)禁中止的狀況下調(diào)用C/OS-函數(shù),在從
16、C/OS-返回的時(shí)候,中止可能會(huì)變?yōu)槭琴澇傻牧?!如果用戶?yán)禁中止就表示用戶想在從-函C/OS數(shù)返回的時(shí)候中止還是嚴(yán)禁的。在這類狀況下,光靠這類履行方法可能是不夠的。文案大全適用標(biāo)準(zhǔn)文檔方法2履行OS_ENTER_CRITICAL()的第二個(gè)方法是先將中止嚴(yán)禁狀態(tài)保留到貨倉中,此后嚴(yán)禁中止。而履行OS_EXIT_CRITICAL()的時(shí)候但是從貨倉中恢復(fù)中止?fàn)顟B(tài)。假如用這個(gè)方法的話,不論用戶是在中止嚴(yán)禁還是贊成的狀況下調(diào)用C/OS-服務(wù),在整個(gè)調(diào)用過程中都不會(huì)改變中止?fàn)顟B(tài)。假如用戶在中止嚴(yán)禁的時(shí)候調(diào)用C/OS-服務(wù),其適用戶是在延伸應(yīng)用程序的中止響應(yīng)時(shí)間。用戶的應(yīng)用程序還能夠用OS_ENTER_
17、CRITICAL()和OS_EXIT_CRITICAL()來保護(hù)代碼的臨界段。但是,用戶在使用這類方法的時(shí)候還得十分當(dāng)心,因?yàn)榧偃缬脩粼谡{(diào)用象OSTimeDly()之類的服務(wù)以前就嚴(yán)禁中止,很有可能用戶的應(yīng)用程序會(huì)崩潰。發(fā)生這類狀況的原由是任務(wù)被掛起直到時(shí)間期滿,而中止是嚴(yán)禁的,因此用戶不能夠能獲取節(jié)拍中止!很顯然,全部的PEND調(diào)用都會(huì)波及到這個(gè)問題,用戶得十分當(dāng)心。一個(gè)通用的方法是用戶應(yīng)當(dāng)在中止贊成的狀況下調(diào)用-的C/OS系統(tǒng)服務(wù)!問題是:哪一種方法更好一點(diǎn)?這就得看用戶想犧牲些什么。假如用戶并不關(guān)懷在調(diào)用C/OS-服務(wù)后用戶的應(yīng)用程序中中止是不是贊成的,那么用戶應(yīng)當(dāng)選擇第一種方法履行。假
18、如用戶想在調(diào)用OS-服務(wù)過C/程中保持中止禁止?fàn)顟B(tài),那么很顯然用戶應(yīng)當(dāng)選擇第二種方法。給用戶舉個(gè)例子吧,經(jīng)過履行STI命令在Intel80186上嚴(yán)禁中止,并用CLI命令來贊成中止。用戶能夠用下邊的方法來履行這兩個(gè)宏:#defineOS_ENTER_CRITICAL()asmCLI#defineOS_EXIT_CRITICAL()asmSTI文案大全適用標(biāo)準(zhǔn)文檔CLI和SCI指令都會(huì)在兩個(gè)時(shí)鐘周期內(nèi)被立刻履行(總合為四個(gè)周期)。為了保持中止?fàn)顟B(tài),用戶需要用下邊的方法來履行宏:#defineOS_ENTER_CRITICAL()asmPUSHF;CLI#defineOS_EXIT_CRITICA
19、L()asmPOPF在這類狀況下,OS_ENTER_CRITICAL()需要12個(gè)時(shí)鐘周期,而OS_EXIT_CRITICAL()需要其余的8個(gè)時(shí)鐘周期(總合有20個(gè)周期)。這樣,保持中斷嚴(yán)禁狀態(tài)要比簡單的嚴(yán)禁/贊成中止多花16個(gè)時(shí)鐘周期的時(shí)間(最少在80186上是這樣的)。自然,假如用戶有一個(gè)速度比較快的辦理器(如IntelPentium),那么這兩種方法的時(shí)間差異會(huì)很小。OS_STK_GROWTH絕大部分的微辦理器和微控制器的貨倉是從上往下長的。但是某些辦理器是用其余一種方式工作的。-被C/OS設(shè)計(jì)成兩種狀況都能夠辦理,只需在構(gòu)造常量OS_STK_GROWTHL8.1(4)中指定貨倉的生長
20、方式(以下所示)就能夠了。置OS_STK_GROWTH為0表示貨倉從下往上長。置OS_STK_GROWTH為1表示貨倉從上往下長。OS_TASK_SW()OS_TASK_SW()L8.1(5)是一個(gè)宏,它是在C/OS-從低優(yōu)先級(jí)任務(wù)切換到最高優(yōu)先級(jí)任務(wù)時(shí)被調(diào)用的。OS_TASK_SW()老是在任務(wù)級(jí)代碼中被調(diào)用文案大全適用標(biāo)準(zhǔn)文檔的。另一個(gè)函數(shù)OSIntExit()被用來在ISR使得更高優(yōu)先級(jí)任務(wù)處于就緒狀態(tài)時(shí),履行任務(wù)切換功能。任務(wù)切換但是簡單的將辦理器存放器保留到將被掛起的任務(wù)的貨倉中,而且將更高優(yōu)先級(jí)的任務(wù)從貨倉中恢復(fù)出來。在C/OS-中,處于就緒狀態(tài)的任務(wù)的貨倉構(gòu)造看起來就像剛發(fā)生過中
21、斷并將全部的存放器保留到貨倉中的狀況相同。換句話說,-要運(yùn)轉(zhuǎn)處C/OS于就緒狀態(tài)的任務(wù)必然要做的事就是將全部辦理器存放器從任務(wù)貨倉中恢復(fù)出來,而且履行中止的返回。為了切換任務(wù)能夠經(jīng)過履行OS_TASK_SW()來產(chǎn)生中斷。大部分的辦理器會(huì)供給軟中止或是騙局(TRAP)指令來完成這個(gè)功能。ISR或是騙局辦理函數(shù)(也叫做異樣辦理函數(shù))的向量地點(diǎn)必然指向匯編語言函數(shù)OSCtxSw()(參看8.04.02)。比方,在Intel或許AMD80 x86辦理器上能夠使用INT指令。但是中止處理向量需要指向OSCtxSw()。Motorola68HC11辦理器使用的是SWI指令,同樣,SWI的向量地點(diǎn)還是OS
22、CtxSw()。還有,Motorola680 x0/CPU32可能會(huì)使用16個(gè)騙局指令中的一個(gè)。自然,選中的騙局向量地點(diǎn)還是OSCtxSw()。一些辦理器如ZilogZ80其實(shí)不供給軟中止系統(tǒng)。在這類狀況下,用戶需要盡自己的所能將貨倉構(gòu)造設(shè)置成與中止貨倉構(gòu)造相同。OS_TASK_SW()只會(huì)簡單的調(diào)用OSCtxSw()而不是將某個(gè)向量指向OSCtxSw()。C/OS已經(jīng)被移植到了Z80辦理器上,C/OS-也相同能夠。OS_CPU_A.ASMC/OS-的移植實(shí)例要求用戶編寫四個(gè)簡單的匯編語言函數(shù):OSStartHighRdy()OSCtxSw()文案大全適用標(biāo)準(zhǔn)文檔OSIntCtxSw()OST
23、ickISR()假如用戶的編譯器支持插入?yún)R編語言代碼的話,用戶就能夠?qū)⑷颗c處理器有關(guān)的代碼放到OS_CPU_C.C文件中,而不用再擁有一些分其余匯編語言文件。四實(shí)驗(yàn)步驟1.安裝實(shí)驗(yàn)環(huán)境keiluV4安裝KeilC51V9.00版本,即uV4翻開uVision4,點(diǎn)擊FileLicenseManagement.,翻開LicenseManagement窗口,復(fù)制右上角的CID翻開注冊(cè)機(jī),在CID窗口里填上剛剛復(fù)制的CID,其余設(shè)置不變點(diǎn)擊Generate生成贊成號(hào),復(fù)制贊成號(hào)將贊成號(hào)復(fù)制到LicenseManagement窗口下部的NewLicenseIDCode,點(diǎn)擊右邊的AddLIC若上方的
24、Product顯示的是PK51Prof.DevelopersKit即注冊(cè)成功,SupportPeriod為有效期,一般能夠到30年左右,如有效期較短,可多次生成贊成號(hào)從頭注冊(cè)。翻開實(shí)驗(yàn)例程1)翻開51ucosii軟件包,查察所含文件信息,在keiluV4下新建工程并將51ucosii下所包含的文件都增添到工程里,選擇好有關(guān)工程配置項(xiàng),編譯生成調(diào)試文件及hex文件,利用keiluV4仿真器察看運(yùn)轉(zhuǎn)結(jié)果(使用串口1);文案大全適用標(biāo)準(zhǔn)文檔2)分析整個(gè)實(shí)驗(yàn)文件目錄構(gòu)造及實(shí)驗(yàn)參照程序。3)依據(jù)實(shí)驗(yàn)內(nèi)容要求編寫程序并編譯運(yùn)轉(zhuǎn)3.利用proteus進(jìn)行仿真五實(shí)驗(yàn)現(xiàn)象與結(jié)果分析1.建立并熟習(xí)編譯及仿真調(diào)試環(huán)
25、境(keil+proteus)下載已移植好的軟件包,在開發(fā)環(huán)境下建立工程編譯并運(yùn)轉(zhuǎn)察看運(yùn)轉(zhuǎn)結(jié)果,使用Keil自帶的仿真調(diào)試工具察看程序運(yùn)轉(zhuǎn)狀況(內(nèi)存的分派、變量及CPU存放器的動(dòng)向變化、任務(wù)的切換運(yùn)轉(zhuǎn)狀態(tài)等);比較移植前和移植后的有關(guān)文件,文案大全適用標(biāo)準(zhǔn)文檔析移植過程中做了哪些變動(dòng)工作。3.聯(lián)合前兩次實(shí)驗(yàn)內(nèi)容,在移植軟件包的基礎(chǔ)上試一試增添用戶任務(wù),并利用信號(hào)量、信息郵箱等建立任務(wù)之間的通訊聯(lián)系;同時(shí)試一試采納動(dòng)向內(nèi)存分派的方法為任務(wù)分派內(nèi)存,使用Keil仿真工具察看程序運(yùn)轉(zhuǎn)狀況并記錄運(yùn)轉(zhuǎn)結(jié)果。將以上浮試好的軟件移植到proteus開發(fā)環(huán)境中去,利用proteus的硬件仿真環(huán)境創(chuàng)立幾個(gè)實(shí)質(zhì)任
26、務(wù)(如鍵盤、顯示器、LED點(diǎn)陣、數(shù)碼管、時(shí)鐘或溫度傳感器等)給每個(gè)賦以適合的優(yōu)先級(jí),配置適合的貨倉容量,編譯運(yùn)轉(zhuǎn)并察看運(yùn)轉(zhuǎn)情文案大全適用標(biāo)準(zhǔn)文檔況,顯示信息能夠用液晶顯示器或虛假終端來顯示。1).Keil調(diào)試窗口和結(jié)果:2).移植到proteus開發(fā)環(huán)境中,利用proteus的硬件仿真。文案大全適用標(biāo)準(zhǔn)文檔參照源代碼:#includesbitled=P17;unsignedcharcodetable=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;unsignedinti=0;voidTaskStar
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級(jí)下冊(cè)數(shù)學(xué)聽評(píng)課記錄《 分?jǐn)?shù)加減法簡便運(yùn)算》人教新課標(biāo)
- 八年級(jí)道德與法治下冊(cè)第二單元理解權(quán)利義務(wù)第四課公民義務(wù)第二框依法履行義務(wù)聽課評(píng)課記錄(新人教版)
- 湘教版數(shù)學(xué)九年級(jí)上冊(cè)《4.4解直角三角形的應(yīng)用(1)》聽評(píng)課記錄
- 人教版歷史八年級(jí)下冊(cè)第15課《鋼鐵長城》聽課評(píng)課記錄
- 天天練習(xí)-四年級(jí)上冊(cè)口算練習(xí)
- 七年級(jí)下學(xué)期語文教學(xué)工作總結(jié)
- 蘇教版小學(xué)數(shù)學(xué)三年級(jí)上冊(cè)口算試題全套
- 蘇教版四年級(jí)數(shù)學(xué)下冊(cè)期末復(fù)習(xí)口算練習(xí)題三
- 滬科版八年級(jí)數(shù)學(xué)下冊(cè)聽評(píng)課記錄《第17章一元二次方程數(shù)17.2一元二次方程的解法(第3課時(shí))》
- LED屏幕安裝協(xié)議書范本
- 華為攜手深圳國際會(huì)展中心創(chuàng)建世界一流展館
- 2023版思想道德與法治專題2 領(lǐng)悟人生真諦 把握人生方向 第3講 創(chuàng)造有意義的人生
- 全過程工程咨詢服務(wù)技術(shù)方案
- 小報(bào):人工智能科技科學(xué)小報(bào)手抄報(bào)電子小報(bào)word小報(bào)
- GB/T 41509-2022綠色制造干式切削工藝性能評(píng)價(jià)規(guī)范
- 企業(yè)生產(chǎn)現(xiàn)場(chǎng)6S管理知識(shí)培訓(xùn)課件
- 五年級(jí)下冊(cè)數(shù)學(xué)課件 第10課時(shí) 練習(xí)課 蘇教版(共11張PPT)
- 三年級(jí)道德與法治下冊(cè)我是獨(dú)特的
- 土木工程畢業(yè)設(shè)計(jì)(論文)-五層宿舍樓建筑結(jié)構(gòu)設(shè)計(jì)
- 青年卒中 幻燈
- 典型倒閘操作票
評(píng)論
0/150
提交評(píng)論