久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 測試測量 > 設計應用 > 基于μC/OS-Ⅱ農田信息采集系統的研究與設計

基于μC/OS-Ⅱ農田信息采集系統的研究與設計

作者: 時間:2012-04-13 來源:網絡 收藏


3 軟件設計實現
3.1 μC/-Ⅱ嵌入式操作系統在S3CA4B0X芯片上的移植
在嵌入式操作系統應用中,每個任務都是相互獨立的,而且會發生頻繁的任務轉換,為了使轉換的任務能夠返回到原來的斷點,所以必須得把與轉換的任務運行環境密切相關的各種寄存器和變量全部保存起來。這就是定義構造一個用戶任務堆棧結構,來保證多任務嵌入式操作系統的正常運行,這種堆棧結構保存了與各個轉換的任務運行環境密切相關的所有寄存器變量,而且所有任務的堆棧結構必須完全一致,這樣才能用統一的任務切換程序在任務之間作頻繁的任務轉換,而且還要求不會破壞各個任務的實時運行環境。因此在建立每一個新任務的同時,必須為該任務分配一定的系統資源,包括一個任務棧、一個任務控制塊,并將與該任務密切相關的各個變量,比如任務優先級別、堆棧大小等變量保存到任務控制塊中,同時還得完全按照任務堆棧初始化結構那樣初始化該任務的任務堆棧,然后將任務堆棧的棧頂指針保存到該任務控制塊的相應位置。
移植工作主要是改寫_CPU.H,_CPUA.ASM,OS_CPU.C,OS_CFGH,INCLUDES.H,其中與處理器相關的文件為:OS_CPU.H,OS_CP U.C,OS_CPU_.A.ASM。μC/OS-Ⅱ嵌入式操作系統硬件和軟件體系結構如圖2所示。

本文引用地址:http://cqxgywz.com/article/194066.htm

b.jpg


在數據類型定義中,S3C44B0X芯片是32位處理器,但是,μC/OS-Ⅱ嵌入式操作系統所處理的仍然是INT16U。用戶必須將任務堆棧的數據類型告訴給μC/OS-Ⅱ嵌入式操作系統。這個過程是通過為OS_STK聲明正確的C數據類型來完成的。S3C44B0X芯片的堆棧成員是16位的,所以將OS_TsK聲明為無符號整形數據類型,定義如下:
tyPedefunsignedlong OS_STK;
堆棧增長方向OS_STK_GROWTH定義如下:
#defin OS_STK_GROWTH左堆棧增長方向為從上往下增長
#define STACKSIZE256/μC/OS-Ⅱ嵌入式操作系統需要先禁止中斷訪問代碼的臨界區,并且在訪問完畢后重新允許中斷。
與所有的實時內核一樣,μC/OS-Ⅱ嵌入式操作系統需要先禁止中斷再訪問代碼的臨界區,并且在訪問完畢后重新允許中斷。這就使得μC/OS-Ⅱ嵌入式操作系統能夠保護臨界區代碼免受多任務或中斷服務例程的破壞。在S3CA4B0X芯片上是通過兩個函數(OS_ENTER_CRITICAL()和OS_EXIT_RITICAL())實現開關中斷的。



評論


相關推薦

技術專區

關閉