一種提高μC/OS-II操作系統(tǒng)安全性與穩(wěn)定性的方法
3.2 修改系統(tǒng)函數(shù)
為了任務首次運行時,可以進入相應的訪問等級和使用相應的堆棧指針,在任務創(chuàng)建時,加入工作狀態(tài)參數(shù)mode。在ucos_ii.h中定義訪問等級與堆棧選擇的常量:
![b.jpg](http://editerupload.eepw.com.cn/fetch/20131219/202468_2_0.jpg)
3.2.1 修改任務控制塊OS_TCB
在任務控制塊中加入MSP指針,形式如下:
![c.jpg](http://editerupload.eepw.com.cn/fetch/20131219/202468_2_1.jpg)
3.2.2 修改任務創(chuàng)建函數(shù)
在任務創(chuàng)建函數(shù)的參數(shù)中加入mode參數(shù),形式如下:
![d.jpg](http://editerupload.eepw.com.cn/fetch/20131219/202468_2_2.jpg)
對OSTaskCreateExt()函數(shù)做的修改同上。
3.2.3 修改堆棧初始函數(shù)
在堆棧初始化時,把mode值存儲在MSP底部,以便任務第一次運行時進入相應的運行狀態(tài)(特權級還是用戶級,使用MSP還是PSP)。系統(tǒng)任務的mode是OS_Mode_PRIVILEGE | OS_Mode_MSP,任務創(chuàng)建時PSP為0;而用戶任務為OS_Mode_USER | OS_Mode_PSP。
堆棧初始函數(shù)的參數(shù)中加入mode參數(shù),形式如下:
![e.jpg](http://editerupload.eepw.com.cn/fetch/20131219/202468_2_3.jpg)
OS_TCBInit()函數(shù)把堆棧初始化得到的堆棧指針存入OS_TCB中。本文引用地址:http://www.butianyuan.cn/article/202468.htm linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂) 電能表相關文章:電能表原理
評論