一種提高μC/OS-II操作系統安全性與穩定性的方法
3.2 修改系統函數
為了任務首次運行時,可以進入相應的訪問等級和使用相應的堆棧指針,在任務創建時,加入工作狀態參數mode。在ucos_ii.h中定義訪問等級與堆棧選擇的常量:

3.2.1 修改任務控制塊OS_TCB
在任務控制塊中加入MSP指針,形式如下:

3.2.2 修改任務創建函數
在任務創建函數的參數中加入mode參數,形式如下:

對OSTaskCreateExt()函數做的修改同上。
3.2.3 修改堆棧初始函數
在堆棧初始化時,把mode值存儲在MSP底部,以便任務第一次運行時進入相應的運行狀態(特權級還是用戶級,使用MSP還是PSP)。系統任務的mode是OS_Mode_PRIVILEGE | OS_Mode_MSP,任務創建時PSP為0;而用戶任務為OS_Mode_USER | OS_Mode_PSP。
堆棧初始函數的參數中加入mode參數,形式如下:

OS_TCBInit()函數把堆棧初始化得到的堆棧指針存入OS_TCB中。本文引用地址:http://www.104case.com/article/202468.htm linux操作系統文章專題:linux操作系統詳解(linux不再難懂) 電能表相關文章:電能表原理
評論