移植好的IAR520_STM32_uCOS-II V2.86代碼 |
IAR_STM32_uCOS-II+V2[1].86.rar
1.98 MB, 下載積分: 積分 -1
多謝共享 |
巨好的東西,收了。 |
收下了,謝謝共享! |
LZ,我看了一下.ASM 文件,查閱了一些代碼后,發現執行 OSStartHighRdy 多任務開始運行程序后,PSP堆棧指針設置為0,并觸發了一次PSV;然后在OS_CPU_PendSVHandler 中斷服務程序中有句: CBZ R0, OS_CPU_PendSVHandler_nosave ( PSP如果是0,標示任務沒有運行過,那么不需要壓棧)。這里我不太明白,如果PSP=0,那么中斷時硬件進棧的幾個寄存器壓到哪里了(堆棧從高地址往低地址生長)。ARM手冊說異常時使用MSP,進程時使用PSP,PSV 應該屬于異常,理應采用的是MSP,硬件壓棧的幾個寄存器存在MSP指針下的內存,然后我們手工進棧的是調整為PSP指向的內存,那這樣一個任務的寄存器沒法連續存儲在內存里了。我還不是很清楚ARM的兩個堆棧切換工作過程,麻煩LZ不惜賜教,謝謝! |
好東西分享 謝謝了 |
好東西,謝謝分享 |
jbajbakan |
學習了 |
好東西,謝謝分享 |
學習參考 |
thanks for sharing |
收藏 |
感謝分享啊 |
感謝分享,下載學習學習! |