freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

科技學院本科畢業(yè)論文畢業(yè)設計學位論文范文模板參考資料-電能智能采集終端器設計-wenkub.com

2024-11-29 17:28 本頁面
   

【正文】 獲取 OsEnterSum (13) LDR R2,[R1](14) STMFD SP!,{R2, R3} 。保存 R4R12 (7) MSR CPSR_c,R0(8) LDMFD SP!,{R4R7} 。下面為保存任務環(huán)境 LDR R2,[SP,20] 。同時, R3 保存著 SPSR。另一個函數(shù) OSIntExit()被用來在 ISR 使得更高優(yōu)先級任務處于就緒狀態(tài)時,執(zhí)行任務切換功能,它最終調(diào)用 OSIntCtxSw()執(zhí)行任務切換。當功能號等于 1 時,就跳轉到第一次任務切換處(程序清單 (12)) ,也就是_OSStartHighRdy。由于ARM 處理器核具有兩個指令集,兩個指令集的指令的長度不同, SWI 指令的功能號的位段也不同,所以程序先判斷在進入軟中斷前處理器是在什么指令集狀態(tài)(程序清單(4)、 (5))。然后獲取任務的任務控制塊 (tcb)的地址(程序清單 (26)、 (31)),接著判斷指針是否有效(程序清單 (27)、(32)),有效則改變指定任務的堆棧中存儲的 CPSR 的 T位 (程序清單 (28)、 (33)),至于為 何這樣寫參考 小節(jié)和 ARM 相關文檔,這兩個函數(shù)僅在任務建立時使用。此時,解決的方法有三種: (1) 高優(yōu)先級任務使用默認的指令集; (2) 改變函數(shù) OSTaskCreateHook()使任務默認不是處于就緒狀態(tài),建立任務后調(diào)用函數(shù) OSTaskResume()來使任務進入就緒狀態(tài); (3) 建立任務時禁止任務切換,調(diào)用函數(shù) TaskIsARM()或 TaskIsTHUMB()后再允許任務切換。如果任務使用的第一條指令與默認的指令集不同,則程序運行錯誤。它們都是通過軟件中斷指令 SWI 轉換到系統(tǒng)模式,通過軟件中斷服務程序實現(xiàn)的(參考 小節(jié))。 } 由 小節(jié)可知,這是調(diào)用軟中斷的 1 號功能。改變這些位使用嵌入?yún)R編實現(xiàn),代碼很簡單,不再說明。關中斷和開中斷是為了保護臨界段代碼。 (31) if (ptcb != NULL) (32) { ptcb OSTCBStkPtr[1] |= (1 5)。(26) if (ptcb != NULL) (27) { ptcb OSTCBStkPtr[1] amp。 (6) case 0x03: if (OsEnterSum == 0) (7) { __asm (8) { MRS R0,SPSR (9) BIC R0,R0,NoInt (10) MSR SPSR_c,R0 (11) } } break。它在 中實現(xiàn),具體請參考 小節(jié)。這樣,各個任務開關中斷的狀態(tài)可以不同,任務不必過分考慮關中斷對別的任務的影響。 } 堆棧中有一個程序 OsEnterSum 比較特別,它不是 CPU 的寄存器,而是筆者定義的一個全局變量,主要是用它來保存關中斷的次數(shù),這樣關中斷和開中斷就可以嵌套了。 /* r1*/ *stk = (unsigned int) pdata。 /* r5*/ *stk = 0。 /* r9*/ *stk = 0。 /* lr*/ *stk = 0。 沒有使用。 程序清單 函數(shù) OSTaskStkInt()代碼 OS_STK *OSTaskStkInit (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT16U opt) { OS_STK *stk。 雖然 ARM 處理器核對于兩種方式均支持,但 ADS 的 C語言編譯器僅支持一種方式,即從上往下長,并且必須是滿遞減堆棧,所以 OS_STK_GROWTH 的值為 1,代碼見 程序清單。 /* 任務切換到用戶模式 */ __swi(0x82) void TaskIsARM(INT8U prio)。 /* 運行優(yōu)先級最高的任務 */ __swi(0x02) void OS_ENTER_CRITICAL(void)。其代碼見 程序清單 。軟中斷功能號分配如 表 ,未列出的為保留功能。 Typedef double FP64。 Typedef signed short INT16S。 程序清單 不依賴于編譯器的數(shù)據(jù)類型 Typedef unsigned char BOOLEAN。這樣,μ C/OSII 的系統(tǒng)文件需要編譯的次數(shù)大大減少,編譯時間隨之減少。使用 的缺點是它可能會包含一些實際不相關的頭文件,這意味著每個文件的編譯時間可能會增加,但卻增強了代碼的可移植性。實際上,還有一個文件很重要,它就是 ,它定義了一個匯編宏,它是 μ C/OSII for ARM7 通用的中斷服務程序的匯編 與 C 函數(shù)接口代碼。由 表 可以看出,移植μ C/OSII 需要在 包含幾個類型的定義和幾個常數(shù)的定 義;在 OS_CPU_C 和 中包含幾個函數(shù)的定義和時鐘節(jié)拍中斷服務程序的代碼。 μ C/OSII中要移植的部分見 表 。關于第 3 點需要參考 ADS 自帶的編譯器和連接器的手冊,安 裝 時都附帶了它們的電子版。 因此,在移植μ C/OSII 到 ARM7 時,我們必須先把上面幾個方面的知識了解得比較透徹。為了盡量減少任務代碼錯誤對整個程序的影響,缺省的任務模式定為用戶模式,可選為系統(tǒng)模式,同時提供接口使 任務可以在這兩種模式間切換。 任務模式的取舍 ARM7 處理器核具有用戶、系統(tǒng)、管理、中止、未定義、中斷和快中斷七種模式,其中除用戶模式外其它均為特權模式。 C/OSII 移植到 LPC2214 編譯器的選擇 目前,針對 ARM 處理器核的 C 語言編譯器有很多,如 SDT、 ADS、 IAR、 TASKING和 GCC 等。 5) 與 CPU 的接口部分 是指μ C/OSII針對所使用的 CPU 的移植部分。因為μ C/OSII 是以任務為基本單位調(diào)度的,所以這部分內(nèi)容也相當重要。 1) 核心部分 () 是操作系統(tǒng)的處理核心,包括操作系統(tǒng)初始化、操作系統(tǒng)運行、中斷進出的前導、時鐘節(jié)拍、任務調(diào)度、事件處理等多部分。其最高優(yōu)先級任務的尋找是通過建立就緒任務表來實現(xiàn)的。 2) 高優(yōu)先級的任務因為時鐘節(jié)拍到來,在時鐘中斷的處理程序中,內(nèi)核發(fā)現(xiàn)高優(yōu)先級任務獲得了執(zhí)行條件 (如休眠的時鐘到時 ),則在中斷態(tài)直接切換到高優(yōu)先級任務執(zhí)行??蓜儕Z型的實時內(nèi)核在任何時候都運行就緒了的最高優(yōu)先級的任務。 任務間通信與同步 對一個多任務的操作系統(tǒng)來說,任務間的通信和同步是必不可少的。 uC/OSII 中把連續(xù)的大塊內(nèi)存按分區(qū)管理。中斷發(fā)生的時間間隔是固定不變的,該中斷也成為一個時鐘節(jié)拍。 63為最低級,系統(tǒng)保留了 4 個最高優(yōu)先級的任務和 4個最低優(yōu)先級的任務,所有用戶可以使用的任務數(shù)有 56 個。 uC/OSII 目標是實現(xiàn)一個基于優(yōu)先級調(diào)度的搶占式的實時內(nèi)核,并在這個內(nèi)核之上提供最基本的系統(tǒng)服務,如信號量,郵箱,消息隊列,內(nèi)存管理,中斷管理等。μ C/OSII 已經(jīng)移植到了幾乎所有知名的 CPU 上。 μ C/OS 和μ C/OSII 是專門為計算機的嵌入式應用設計的, 絕大部分代碼 是用 C語言編寫的?;蛘?,也可通過在進入空閑或掉電模式前執(zhí)行虛寫( dummy write)操作來保證最后的數(shù)據(jù)在復位后被真正寫入到 SRAM。該數(shù)據(jù)只有在軟件請求下一次寫操作時才寫入 SRAM(數(shù)據(jù)只有在軟件執(zhí)行另外一次寫操作時被寫入 SRAM)。 片內(nèi)靜態(tài) RAM LPC2214 含有 16kB 的靜態(tài) RAM,可用作代碼和 /或數(shù)據(jù)的存儲。 片內(nèi) FLASH 程序存儲器 LPC2214 集成了 256K 的 FLASH 存儲器系統(tǒng)。 在 THUMB 后面一個關鍵的概念是“超精簡指令集”。這樣使用一個小的、廉價的處理器核就可實現(xiàn)很高的指令吞吐量和實時的中斷 響應。該模塊必須由軟件進行控制以符合外設功能與管腳在特定應用中的需求。 AHB 到 VPB 的橋將 VPB 總線與 AHB 總線相 連。 LPC2214 將 ARM7TDMIS 配置為小端( littleendian)字節(jié)順序。 ? 2 個低功耗模式:空閑和掉電。 ? ? 向量中斷控制器。 ? ? 4/8 路( 64/144 腳封裝) 10 位 A/D 轉換器,轉換時間低至 。 Flash 編程時間: 1ms 可編程 512 字節(jié),扇區(qū)擦除或整片擦除只需 400ms。 ? ? 128/256K 字節(jié)片內(nèi) Flash 程序存儲器(在工作溫度范圍內(nèi),片內(nèi) Flash 存儲器至少可擦除和寫 10,000 次)。在 144 腳的封裝中,可使用的 GPIO 高達 76(使用了外部存儲器)~ 112 個(單片應用)。 128 位寬度的存儲器接口和獨特的加速結構使 32 位代碼能夠在最大時鐘速率下運行。 ARM( Advanced RISC Machines)是微處理器行業(yè)的一家知名企業(yè),設計了大量高性能、廉價、耗能低的 RISC 處理器、相關技術及軟件。 任何時刻系統(tǒng)中只能有一個任務在運行狀態(tài),各任務按級別通過時間片分別獲得對 CPU的訪問權。 運行:獲得 CPU 控制權。 實時操作系統(tǒng)中的重要概念 系統(tǒng)響應時間( System response time):系統(tǒng)發(fā)出處理要求到系統(tǒng)給出應答信號的時間。 分時操作系統(tǒng) 對于分時操作系統(tǒng),軟件的執(zhí)行在時間上的要求,并不嚴格,時間上的錯誤,一般不會造成災難性的后果。 實時操作系統(tǒng) 實時操作系統(tǒng) ( RTOSReal Time Operating System): 嵌入式系統(tǒng)目前最主要的組成部分?,F(xiàn)在人們講嵌入式系統(tǒng)時,某種程度上指近些年比較熱的具有操作系統(tǒng)的嵌入式系統(tǒng),本文在進行分析和展望時,也沿用這一觀點。 嵌入式系統(tǒng)必須根據(jù)應用需求對軟硬件進行裁剪,滿足應用系統(tǒng)的功能、可靠性、成本、體積等要求。因此可以這樣理解上述三個面向的含義,即嵌入式系統(tǒng)是與應用緊密結合的,它具有很強的專用性,必須結合實際系統(tǒng)需求進行合理的裁減利用。隨著嵌入式技術的發(fā)展前景日益廣闊,相信會有更多的嵌入式操作系統(tǒng)軟件出現(xiàn)。這些嵌入式實時多任務操作系統(tǒng)的出現(xiàn),使得應用開發(fā)人員得以從小范圍的開發(fā)解放出來,同時也促使嵌入式有了更為廣闊的應用空間。 從 80年代早期開始,嵌入式系統(tǒng)的程序員開始用商業(yè)級的“操作系統(tǒng)”編寫嵌入式應用軟件,這使得可以獲取更短的開發(fā)周期,更低的開發(fā)資金和更高的開發(fā)效率,“嵌入式系統(tǒng)”真正出現(xiàn)了。這些裝置 已經(jīng)初步具備了嵌入式的應用特點,但是這時的應用只是使用8位的芯片,執(zhí)行一些單線程的程序,還談不上“系統(tǒng)”的概念。從 20 世紀七十年代單片機的出現(xiàn)到今天各式各樣的嵌入式微處理器,微控制器的大規(guī)模應用,嵌入式系統(tǒng)已經(jīng)有了近 30 年的發(fā)展歷史。利用 編譯軟件和 Jlink 仿真器等對軟件程序進行仿真調(diào)試。 本論文主要研究的工作 本文是對電能采集行業(yè)進 行了廣泛調(diào)研,參閱了大量的國內(nèi)外文獻資料基礎上,設計并實現(xiàn)了電能智能采集終端器的設計。數(shù)據(jù)通信方式的選取要綜合考慮地理環(huán)境特點、用戶用電行為、技術水平、管理體制和投資成本等因素。 國內(nèi)外電能采集設備的發(fā)展現(xiàn)狀 電能表 傳感器、自動化儀表以及集成電路技術的發(fā)展 ,使得無論是機電脈沖式還是電子式電能表已能夠較好地滿足當今電能計量自動抄表技術的需要。許多國家和地區(qū)都都已廣泛采用自動抄表系統(tǒng)代替?zhèn)鹘y(tǒng)的人工抄表。所以,由數(shù)據(jù)采集終端,經(jīng)電力線傳輸,將各種終端的數(shù)據(jù)送至集中器,再利用 GPRS 數(shù)據(jù)通道,傳輸至管理中心的總站,即將電能計量數(shù)據(jù)和電網(wǎng)采集數(shù)據(jù)自動采集、傳輸和處理的電能計量自動抄表系統(tǒng)會克服傳統(tǒng)管理模式的低效率和不確定性,這必將大大推進電能管理現(xiàn)代化的發(fā)展進程,是一種很有前景的發(fā)展方向。 Ter
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1