freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

[信息與通信]移植-文庫吧

2024-10-03 22:21 本頁面


【正文】 * 帶符號 8位數 */ typedef unsigned short INT16U。 /* 無符號 16位數 */ typedef signed short INT16S。 /* 帶符號 16位數 */ typedef unsigned int INT32U。 /* 無符號 32位數 */ typedef signed int INT32S。 /* 帶符號 32位數 */ typedef float FP32。 /* 單精度浮點數 */ typedef double FP64。 /* 雙精度浮點數 */ typedef unsigned int OS_STK。 /* 堆棧入口寬度為 32位 */ ?堆棧生長方向 UC/OSII使用常量 OS_STK_GROWTH來定義堆棧的生長方向。 OS_STK_GROWTH=0 : 堆棧從低往高長 OS_STK_GROWTH=1 : 堆棧從高往低長 ARM的堆棧是從上往下長的: define OS_STK_GROWTH 1。 ?開關中斷的宏定義 UC/OSII定義了兩個宏來禁止和允許中斷: OS_ENTER_CRITICAL():關中斷 OS_EXIT_CRITICAL(): 開中斷 在 宏定義 : define OS_CRITICAL_METHOD 2 define OS_ENTER_CRITICAL() ARMIntClose() define OS_EXIT_CRITICAL() ARMIntOpen() ( ARMIntClose()關中斷函數和 ARMIntOpen()開中斷函數將在 ) ?任務切換 OS_TASK_SW() 它通常通過 任務級切換函數 OSCtxSw()來完成。 宏定義如下: define OS_TASK_SW() OSCtxSw() ?除了上述的幾處定義和修改外,還需要對OSCtxSw(),ARMIntClose(), ARMIntOpen()等函數進行聲明,用戶還可以根據需要,定義一些自己的常量、宏等。 ( 2) ?最主要的函數: OSTaskStkInit(),它在任務建立的時候,用來初始化任務的堆棧結構。 ?其他的若干個函數 都是用來擴展 UC/OSII功能的 Hook程序 , OS要求它們必須得到聲明,但可以沒有任何代碼。(注意:只要當 OS_CPU_HOOKS_EN為 1時才會產生這些 HOOK代碼) ? OSTaskStkInit() 創(chuàng)建任務函數通過調用 OSTaskStkInit()來初始化任務的 堆棧結構 ,并返回新的堆棧指針 stk。 當中斷發(fā)生時,當前的寄存器狀態(tài)將被壓入堆棧,由 高至低 依次保存程序計數器 PC、鏈接寄存器 LR、寄存器 R12R0、程序狀態(tài)寄存器 CPSR和 SPSR。了解了 ARM中斷時的堆棧結構,就可以完成 OSTaskStkInit()的修改: SPSR CPSR R0 R12 Lr PC OsEnterSum …… …… R11 高地址 低地址 增 長 方 向 由于編譯器ADS僅支持堆棧從上往下長,并且必須是滿遞減堆棧,所以文件中用來定義堆棧增長方式的常量OS_STK_GROWTH的值應該為 1. SP void *OSTaskStkInit (void (*task)(void *pd), void *pdata, void *ptos, INT16U opt) { INT16U *stk。 opt = opt。 /* 39。opt39。未使用 ,此處可防止編譯器的警告 */ stk = ptos。 /* 載入堆棧指針 */ /*建立堆棧空間的結構 */ *stk= (OS_STK) task。 /* PC */ *stk= (OS_STK) task。 /* LR */ *stk= 0。 /* r12 */
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1