亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? os_cpu_c.c

?? uCOS-II 移植到ARM7上
?? C
字號:
/*
 * Filename: os_cpu_c.c
 *
 * Porting file for Interniche ChronOS RTOS
 *
 * Copyright 2002 by InterNiche Technologies Inc. All rights reserved.
 * www.iniche.com
 * support@iniche.com
 *
 */

#include "includes.h"      /* from uCOS directory */

//#include "ipport.h"        /* from Interniche directory */

/* ARM CPU "supervisor" mode for PSR registers, with INTs enabled */
#define       SUPMODE       0x13


/*
 * INITIALIZE A TASK'S STACK
 *
 * Description: This function is called by either OSTaskCreate() or OSTaskCreateExt() to initialize the
 *              stack frame of the task being created.  This function is highly processor specific.
 *
 * Arguments  : task          is a pointer to the task code
 *
 *              pdata         is a pointer to a user supplied data area that will be passed to the task
 *                            when the task first executes.
 *
 *              ptos          is a pointer to the top of stack.  It is assumed that 'ptos' points to
 *                            a 'free' entry on the task stack.  If OS_STK_GROWTH is set to 1 then 
 *                            'ptos' will contain the HIGHEST valid address of the stack.  Similarly, if
 *                            OS_STK_GROWTH is set to 0, the 'ptos' will contains the LOWEST valid address
 *                            of the stack.
 *
 *              opt           specifies options that can be used to alter the behavior of OSTaskStkInit().
 *                            (see uCOS_II.H for OS_TASK_OPT_???).
 *
 * Returns    : Always returns the location of the new top-of-stack' once the processor registers have
 *              been placed on the stack in the proper order.
 *
 * Note(s)    : Interrupts are enabled when your task starts executing. You can change this by setting the
 *              PSW to 0x0002 instead.  In this case, interrupts would be disabled upon task startup.  The
 *              application code would be responsible for enabling interrupts at the beginning of the task
 *              code.  You will need to modify OSTaskIdle() and OSTaskStat() so that they enable 
 *              interrupts.  Failure to do this will make your system crash!
 */

OS_STK * OSTaskStkInit (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT16U opt)
{
    unsigned int * stk;

    stk    = (unsigned int *)ptos;          /* Load stack pointer */
    //USE_ARG(opt);
    opt++;

    /* build a stack for the new task */
    *--stk = (unsigned int) task;      /* pc */
    *--stk = (unsigned int) task;      /* lr */
    *--stk = 12;                       /* r12 */
    *--stk = 11;                       /* r11 */
    *--stk = 10;                       /* r10 */
    *--stk = 9;                        /* r9 */
    *--stk = 8;                        /* r8 */
    *--stk = 7;                        /* r7 */
    *--stk = 6;                        /* r6 */
    *--stk = 5;                        /* r5 */
    *--stk = 4;                        /* r4 */
    *--stk = 3;                        /* r3 */
    *--stk = 2;                        /* r2 */
    *--stk = 1;                        /* r1 */
    *--stk = (unsigned int) pdata;     /* r0 */
    *--stk = (SUPMODE);			         /* cpsr */
    *--stk = (SUPMODE);			         /* spsr */

    return ((OS_STK *)stk);
}

#if OS_CPU_HOOKS_EN
/*
*********************************************************************************************************
*                                          TASK CREATION HOOK
*
* Description: This function is called when a task is created.
*
* Arguments  : ptcb   is a pointer to the task control block of the task being created.
*
* Note(s)    : 1) Interrupts are disabled during this call.
*********************************************************************************************************
*/
void OSTaskCreateHook (OS_TCB *ptcb)
{
    ptcb = ptcb;                       /* Prevent compiler warning                                     */
}


/*
*********************************************************************************************************
*                                           TASK DELETION HOOK
*
* Description: This function is called when a task is deleted.
*
* Arguments  : ptcb   is a pointer to the task control block of the task being deleted.
*
* Note(s)    : 1) Interrupts are disabled during this call.
*********************************************************************************************************
*/
void OSTaskDelHook (OS_TCB *ptcb)
{
    ptcb = ptcb;                       /* Prevent compiler warning                                     */
}

/*
*********************************************************************************************************
*                                           TASK SWITCH HOOK
*
* Description: This function is called when a task switch is performed.  This allows you to perform other
*              operations during a context switch.
*
* Arguments  : none
*
* Note(s)    : 1) Interrupts are disabled during this call.
*              2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
*                 will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the 
*                 task being switched out (i.e. the preempted task).
*********************************************************************************************************
*/
void OSTaskSwHook (void)
{
}

/*
*********************************************************************************************************
*                                           STATISTIC TASK HOOK
*
* Description: This function is called every second by uC/OS-II's statistics task.  This allows your 
*              application to add functionality to the statistics task.
*
* Arguments  : none
*********************************************************************************************************
*/
void OSTaskStatHook (void)
{
}

/*
*********************************************************************************************************
*                                               TICK HOOK
*
* Description: This function is called every tick.
*
* Arguments  : none
*
* Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
*********************************************************************************************************
*/

void OSTimeTickHook (void)
{
}

void OSTCBInitHook (OS_TCB *ptcb)
{
    ptcb = ptcb;     /* Prevent Compiler warning */
}

void OSTaskIdleHook (void)
{
}
void OSInitHookEnd (void)
{
}
void OSInitHookBegin (void)
{
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av电影在线观看完整版一区二区| 亚洲婷婷国产精品电影人久久| 亚洲综合一区二区三区| 国产成人自拍在线| 国产日本欧洲亚洲| 国产高清在线观看免费不卡| 日韩精品一区二| 久久精品国产亚洲5555| 久久婷婷一区二区三区| 丁香婷婷综合色啪| 国产精品久久一级| 色综合一个色综合| 久久99热狠狠色一区二区| 色综合久久久久网| 午夜精品福利一区二区三区蜜桃| 欧美丰满嫩嫩电影| 韩国av一区二区| 亚洲视频在线一区观看| 欧美日韩亚洲综合| 国产精品一区免费在线观看| 亚洲视频1区2区| 欧美一区二区三区四区五区| 国产成人免费在线观看不卡| 婷婷开心久久网| 国产精品久久久久久久午夜片| 91久久久免费一区二区| 国产乱子轮精品视频| 99久久久国产精品免费蜜臀| 欧美成人高清电影在线| 午夜久久久久久| 免费在线成人网| 欧美哺乳videos| 国产成人在线视频网站| 欧美在线观看视频一区二区| 午夜久久久久久| 亚洲一区二区三区影院| 亚洲成人精品一区| 日本欧美大码aⅴ在线播放| 日韩av一区二区在线影视| 韩国欧美国产一区| www.99精品| 欧美精品久久久久久久久老牛影院| www.亚洲色图.com| 麻豆专区一区二区三区四区五区| 一区二区三区欧美| 中文字幕在线一区| 日本一区免费视频| 久久综合精品国产一区二区三区| 91电影在线观看| 色吊一区二区三区| 99久久综合狠狠综合久久| 国产大片一区二区| 国产很黄免费观看久久| 国产一区二区在线观看视频| 日韩av中文字幕一区二区三区| 亚洲成a人v欧美综合天堂下载 | 久久99在线观看| 五月婷婷综合在线| 亚洲成在人线免费| 日韩高清欧美激情| 亚洲成人免费视频| 爽爽淫人综合网网站| 六月丁香婷婷色狠狠久久| 琪琪一区二区三区| 韩国午夜理伦三级不卡影院| 成人av资源在线观看| 91麻豆精品国产无毒不卡在线观看| 亚洲女人****多毛耸耸8| 日韩影视精彩在线| 97精品久久久久中文字幕 | 轻轻草成人在线| 99久久99久久精品国产片果冻| 欧美色图免费看| 欧美国产一区二区| 首页亚洲欧美制服丝腿| av在线播放成人| 欧美mv日韩mv亚洲| 手机精品视频在线观看| av动漫一区二区| 国产免费成人在线视频| 伦理电影国产精品| 日韩一级视频免费观看在线| 亚洲日穴在线视频| 99久久99久久综合| 国产精品青草久久| 91亚洲资源网| 国产精品高潮呻吟| 成人av免费观看| 国产精品美女视频| 波多野结衣视频一区| 中文字幕免费一区| av在线不卡电影| 亚洲色图另类专区| av不卡在线播放| 中文字幕色av一区二区三区| 成人动漫在线一区| 1024国产精品| 欧美三级日韩在线| 国产sm精品调教视频网站| 国产高清视频一区| 欧美视频在线观看一区| 日韩和的一区二区| 日韩理论片中文av| 中文字幕二三区不卡| 日韩欧美中文一区二区| eeuss鲁片一区二区三区| 狠狠色伊人亚洲综合成人| 一区二区免费在线播放| 国产精品久久久久影院老司| 日韩女优视频免费观看| av亚洲精华国产精华精华| 亚洲高清免费观看高清完整版在线观看| 日韩一区二区三区电影在线观看| 国产一区二区不卡老阿姨| 亚洲欧美另类小说| 精品少妇一区二区三区日产乱码 | 日本不卡一区二区三区高清视频| 国产精品久久久久久户外露出| 暴力调教一区二区三区| 水野朝阳av一区二区三区| 亚洲精品一二三| 国产欧美日韩在线| 日韩欧美一级精品久久| 色婷婷久久久久swag精品| 床上的激情91.| 久久99精品国产91久久来源| 一区二区三区视频在线看| 久久奇米777| 正在播放一区二区| 欧美伦理影视网| 在线观看国产91| 91啪亚洲精品| av在线一区二区三区| 粉嫩aⅴ一区二区三区四区五区 | 在线观看区一区二| 一本久久精品一区二区| 91女厕偷拍女厕偷拍高清| thepron国产精品| 在线观看国产一区二区| 成人av综合在线| 国产91精品一区二区麻豆亚洲| 国产精品一区二区无线| 久久精品二区亚洲w码| 久久99在线观看| 精品一区免费av| 国产综合久久久久久鬼色| 国产精品亚洲第一| 91在线视频在线| 欧美日韩午夜在线| 欧美mv日韩mv亚洲| 国产精品国产精品国产专区不蜜| 国产精品福利电影一区二区三区四区| 亚洲欧洲制服丝袜| 日韩成人免费在线| www.激情成人| 在线播放欧美女士性生活| 久久精品男人的天堂| 亚洲图片一区二区| 国产久卡久卡久卡久卡视频精品| 9i在线看片成人免费| 日韩欧美在线影院| 亚洲天堂中文字幕| 国产在线不卡视频| 欧美视频一区二区三区四区| 国产日韩精品一区二区三区在线| 亚洲国产成人porn| 成人av动漫在线| 精品国产乱子伦一区| 性做久久久久久| 色av一区二区| 国产精品伦理一区二区| 免费高清不卡av| 欧美久久久一区| 亚洲图片欧美综合| 色综合婷婷久久| 国产嫩草影院久久久久| 蜜桃久久av一区| 制服视频三区第一页精品| 亚洲制服丝袜av| 在线观看不卡视频| 亚洲6080在线| 欧美日韩一区二区欧美激情| 一区二区三区欧美久久| 欧美在线高清视频| 亚洲精品一区二区三区蜜桃下载| 免费成人在线影院| www国产成人| 丁香六月综合激情| 亚洲欧洲国产日本综合| 欧美在线综合视频| 久久精品国内一区二区三区| 国产欧美一区二区精品久导航| 色婷婷久久99综合精品jk白丝| 青青草伊人久久| 中文字幕字幕中文在线中不卡视频| 欧美色图片你懂的| 粉嫩aⅴ一区二区三区四区| 香蕉成人啪国产精品视频综合网| 久久欧美中文字幕| 91麻豆精品91久久久久久清纯|