XXXXX用來看堆疊使用率。
mem由下往上填0。
因為都填0會造成誤判,所以microC就填怪值。
kernel內的大array要記得malloc,不可直接用。
不能用StackPointer(SP值)來算堆疊使用率,因為SP值是目前使用率,不是最高使用率。
所以要數0!!
一般來說stack不需要初始化,除非在debug。
Deletimg a Task
─判斷在ready/waiting queue,並從中移走。
刪除task,之前跟系統要的resource都要free掉。
─要的記憶體、open的file、開的socket
microC/OSII中沒有辦法直接free,只會刪除。(????)
1)錯誤檢查:存在與否
2)從queue中移走
3)插入一個preemption point
─和卡位很像,打開中斷向量(interrupt)。
4)
5)從priority table中移走
6)叫OSSched()
─自殺才需要→最高優先權者才有辦法自殺→因為最高優權者不見了所以ready queue需要改
沒有留言:
張貼留言
Check for typo before sending