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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? os_cpu_c.c

?? 基于ARM的嵌入式代碼
?? C
字號(hào):
/*
 * 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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
人人爽香蕉精品| 欧美这里有精品| 97精品国产97久久久久久久久久久久 | 亚洲成在线观看| 久草这里只有精品视频| 福利视频网站一区二区三区| 91久久精品一区二区三区| 91精品国产日韩91久久久久久| 久久麻豆一区二区| 国产九色sp调教91| 亚洲激情图片一区| 男女男精品网站| 亚洲色图一区二区三区| 奇米一区二区三区| 99久久久国产精品免费蜜臀| 欧美精品第一页| 国产精品区一区二区三| 日韩va亚洲va欧美va久久| 国产精品中文字幕一区二区三区| 国产欧美日韩亚州综合 | 激情亚洲综合在线| 97se狠狠狠综合亚洲狠狠| 欧美高清视频在线高清观看mv色露露十八 | 亚洲视频小说图片| 免费成人在线网站| 色婷婷av一区二区三区大白胸| 欧美va在线播放| 一区二区三区精品在线| 中文字幕成人av| 奇米精品一区二区三区四区| 97久久精品人人做人人爽| 风间由美一区二区三区在线观看| 欧美性淫爽ww久久久久无| 国产午夜亚洲精品理论片色戒| 午夜久久电影网| 91女人视频在线观看| 精品三级在线看| 亚洲高清在线精品| 国产成人在线视频播放| 麻豆91在线看| 欧美在线免费观看视频| 欧美国产一区二区| 日韩 欧美一区二区三区| 91一区在线观看| 久久久蜜桃精品| 老司机精品视频在线| 欧美吻胸吃奶大尺度电影 | 成人美女在线观看| 日韩免费高清av| 亚洲mv在线观看| 欧美亚洲综合久久| 亚洲视频免费在线| 亚洲激情综合网| 不卡电影免费在线播放一区| 久久久91精品国产一区二区精品 | 91麻豆精品国产自产在线| 国产成人av在线影院| 99久久精品国产一区二区三区| 久久久一区二区| 精品在线观看免费| 日韩一区二区三区av| 日韩精品午夜视频| 欧美亚洲日本一区| 一区二区三区四区在线播放 | 国产精品久久久久久妇女6080| 欧美一区二区久久| 欧美一级理论性理论a| 亚洲一区二区三区自拍| 一本到高清视频免费精品| 亚洲色图在线视频| 午夜a成v人精品| 在线观看视频一区| 亚洲免费在线视频| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美极品aⅴ影院| 欧美v亚洲v综合ⅴ国产v| 中文字幕日韩精品一区| 99久久99精品久久久久久| 国产精品美女久久福利网站| 成人黄色电影在线| 最近日韩中文字幕| 一本到不卡精品视频在线观看| 亚洲激情综合网| 欧美日韩一区二区在线观看视频 | 日韩一区二区三区电影| 老司机午夜精品99久久| 久久综合九色综合97_久久久| 国产精品自在欧美一区| 国产视频不卡一区| 99久久精品免费| 亚洲成人免费观看| 欧美电影免费观看完整版| 亚洲天堂av一区| 欧美亚一区二区| 日av在线不卡| 欧美韩国一区二区| 欧洲一区在线观看| 琪琪久久久久日韩精品| 精品国产乱码久久久久久浪潮| 国产精品1区2区3区在线观看| 国产成人精品网址| 欧美一卡二卡在线观看| 精品一区二区三区av| 中日韩av电影| 欧亚一区二区三区| 久久精品久久综合| 国产精品女主播在线观看| 日本高清视频一区二区| 日本欧美大码aⅴ在线播放| 国产亚洲午夜高清国产拍精品| 99热这里都是精品| 午夜精品成人在线视频| 精品国产欧美一区二区| 9i在线看片成人免费| 日本成人在线视频网站| 国产欧美一区二区精品婷婷| 99久久精品99国产精品| 日韩精品乱码免费| 欧美国产视频在线| 石原莉奈在线亚洲三区| 国产欧美一区二区三区网站 | 亚洲一区二区三区视频在线播放| 日韩无一区二区| 97精品久久久午夜一区二区三区| 日韩国产欧美在线视频| 国产精品萝li| 亚洲一区中文日韩| 欧美日韩美少妇| 国产成人精品亚洲777人妖| 亚洲国产精品久久久男人的天堂 | 国产精品欧美综合在线| 在线综合亚洲欧美在线视频| 99精品1区2区| 久久爱www久久做| 一区二区欧美国产| 日韩欧美国产三级电影视频| 91色|porny| 国产风韵犹存在线视精品| 亚洲国产美女搞黄色| 国产精品网站在线观看| 日韩精品资源二区在线| 在线免费观看不卡av| 一区二区在线观看免费| 久久精品在线免费观看| 欧美区一区二区三区| 91伊人久久大香线蕉| 国产精品1024| 精品一区二区三区在线观看国产| 亚洲v日本v欧美v久久精品| 国产精品拍天天在线| 久久精品水蜜桃av综合天堂| 蜜臀av性久久久久蜜臀av麻豆| 日韩一区二区在线看| 在线看国产一区| 色综合久久99| 亚洲二区视频在线| 综合欧美一区二区三区| 久久久精品中文字幕麻豆发布| 欧美一级片在线观看| 欧美日韩在线观看一区二区| 91麻豆国产福利在线观看| 成人性色生活片| 国产精品一区在线| 久久精品久久精品| 美女爽到高潮91| 日韩在线播放一区二区| 亚洲一级二级三级在线免费观看| 中文字幕一区二区在线观看| 国产日韩欧美不卡在线| 成人h精品动漫一区二区三区| 国产一区二区美女| 精品在线播放免费| 久久精品二区亚洲w码| 亚洲精品一区二区三区精华液| 91精品国产综合久久久久久久| 7777精品伊人久久久大香线蕉最新版| 91成人在线免费观看| 精品视频色一区| av成人老司机| 成人晚上爱看视频| 懂色av中文一区二区三区| 国产成人一区二区精品非洲| 国产高清精品在线| 欧美视频一区二区三区在线观看 | 一区二区在线电影| 亚洲另类在线制服丝袜| 亚洲欧美经典视频| 亚洲美女少妇撒尿| 一区二区三区在线看| 一区二区三区不卡在线观看| 亚洲影院在线观看| 婷婷夜色潮精品综合在线| 日韩av电影免费观看高清完整版 | 成人免费看黄yyy456| 不卡欧美aaaaa| 91久久久免费一区二区| 欧美精品视频www在线观看| 国产一区不卡精品| 国产mv日韩mv欧美| av成人老司机|