作業系統的主要功能:
1.處理器的管理:
對中斷的管理
和對處理器工作進行排程
2.儲存的管理
3.裝置的管理
4.檔案的管理
5.網路和通訊管理
6.提供使用者介面
嵌入式計算機系統的特點:專用性強,可裁剪性好,實時性與可靠性好,功耗低
嵌入式作業系統的特點:微型化,可裁剪性,實時性,高可靠性,易移植性
實時作業系統的要求:邏輯成功
和時間正確
實時作業系統的條件:1.必須是多工系統
2.任務切換時間應與系統中的任務數無關
3.中斷延時的時間可預知並盡可能短
任務**:
void mytask(void *pdata)
for(;;)
使用者編寫的**;
嵌入式作業系統主要提供記憶體管理,多工管理,外圍資源管理三項服務
1.任務在ucosii中有五種狀態:
①睡眠狀態
②就緒狀態
③執行狀態
④等待狀態
⑤中斷服務狀態
2.使用者任務**的一般結構:
通常是乙個無限迴圈結構,並且在迴圈中可以響應中斷,這種結構也叫
超迴圈結構。
例:void mytask(void *pdata)
for( ; ; )
可以被中斷的使用者**;
os_enter_critical(); //進入臨界段,關中斷
不可以被使用者中斷的使用者**;
os_exit_critical(); //進入臨界段,開中斷
可以被中斷的使用者**;
osinit(); //初始化
ucosii
ostaskcreate(mytask1,......);//建立任務函式
osstart();//啟動任務函式
3.系統任務:
空閒任務和統計任務
空閒任務的**如下:
void ostaskidle(void *pdata)
# if os_critical_method == 3
os_cpu_sr cpu_sr;
#endif
pdata = pdata; //防止某些編譯器報錯
for(; ; )
os_enter_critical(); //關閉中斷
osdlectr++; //計數
os_exit_critical(); //開啟中斷
統計任務ostaskstart()每秒計算一次
cpu在單位時間內被使用的時間,並以百分比顯示在
oscpusage
這個變數中。若使用者使用這個統計任務,必須把在標頭檔案
os_cfg.h
中的系統配置常數
os_task_stat_en
設定為1
,在統計之前必須呼叫
osstatinit()
對統計任務初始化。
4.ucosii 每個任務都具有唯一的優先級別,分位
64個優先級別,其中
0最高。常數
os_lowest_prio
代表最低優先級別,一旦被定義,系統中的優先級別為0,
1,2.......os_lowest_prio,
共os_lowest_prio
個。如果應用程式中還使用了統計任務,則系統會把優先級別
os_lowest_prio - 1
自動賦給統計任務,因此使用者可以使用的優先級別是0,
1,2,
......
,os_lowest_prio - 2
,共os_lowest_prio - 1個。
2.2任務堆疊
為了方便定義任務堆疊,在檔案os_cpu.h中專門定義了乙個資料型別
os_stk:
typedef unsigned int os_stk;
這樣定義乙個os_stk型別的乙個陣列即可,例如:
#define task_stk_size 512; //定義長度
os_stk taskstk[task_stk_size]; //定義陣列作為任務堆疊
呼叫函式ostaskcreate()來建立乙個任務時,陣列的指標傳遞給函式中的堆疊棧頂餐胡
ptos
,就可以把陣列與任務關聯寄來
int80 ostaskcreate(
void (*task)(void *pd), //指向任務的指標
void *pdata, //傳遞給任務的引數
os_stk *ptos, //任務堆疊棧頂的指標
int8u prio //指定任務優先順序別的引數
讀書筆記 1
從我第一次看到windows就對它那花花綠綠的外表所吸引,大學兩年過來,時間又讓我從另乙個角度重新認識的了這些美麗的。本學期開始圖形程式設計的學習,探索windows圖形系統,並對gdi api,directdraw api進行學習。之所以寫部落格,第 一 是想勉勵自己不斷學習,讓大家監督 第 二 ...
讀書筆記1
netstat p525 網路資訊服務是通過本地查詢,還是要連線到遠端資料庫 p527 網路配置檔案?服務資訊函式?linux下如何組網 p527 如何設定計算機的主機名 p528 套接字 第15章 套接字 套接字 p513,523 what 套接字 一種程序間通訊機制 不僅可以本地程序通訊,也可以...
讀書筆記 1
條款01 視c 為乙個語言聯邦 條款02 盡量以const,enum,inline替換 define 條款03 盡可能使用const 條款04 確定物件被使用前已先被初始化 條款05 了解c 默默編寫並呼叫哪些函式 什麼時候empty class不再是個empty class呢?當c 處理過它之後....