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

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

?? artx_config.lst

?? 射頻芯片nRF905例程
?? LST
?? 第 1 頁 / 共 4 頁
字號:
ARM COMPILER V2.42,  ARTX_Config                                                           20/01/06  15:26:03  PAGE 1   


ARM COMPILER V2.42, COMPILATION OF MODULE ARTX_Config
OBJECT MODULE PLACED IN ARTX_Config.OBJ
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe ARTX_Config.c THUMB BROWSE DEBUG TABS(4) 

stmt  level    source

    1          /*----------------------------------------------------------------------------
    2           *      A R T X  -  K e r n e l
    3           *----------------------------------------------------------------------------
    4           *      Name:    ARTX_CONFIG.C
    5           *      Purpose: Configuration of ARTX Kernel for Philips LPC21xx
    6           *      Rev.:    V2.00 / 19-oct-2005
    7           *----------------------------------------------------------------------------
    8           *      This code is part of the ARTX-ARM kernel package of Keil Software.
    9           *      Copyright (c) 2004-2005 Keil Software. All rights reserved. 
   10           *---------------------------------------------------------------------------*/
   11          
   12          #pragma INTERWORK
   13          #define NOFRAME    __arm __task
   14          
   15          #include <LPC213x.H>                     /* LPC21xx definitions              */
   16          #include <LPC213xdef.H>                     /* LPC21xx definitions              */
   17          #include <ARTX_Config.h>                 /* ARTX user configuration header   */
   18          
   19          /*----------------------------------------------------------------------------
   20           *      ARTX User configuration part BEGIN
   21           *---------------------------------------------------------------------------*/
   22          
   23          //-------- <<< Use Configuration Wizard in Context Menu >>> -----------------
   24          //
   25          // <h>Task Definitions
   26          // ===================
   27          //
   28          //   <o>Number of concurrent running tasks <0-250>
   29          //   <i> Define max. number of tasks that will run at the same time.
   30          //   <i> Default: 6
   31          #ifndef OS_TASKCNT
   32           #define OS_TASKCNT     10
   33          #endif
   34          
   35          //   <o>Number of tasks with user-provided stack <0-250>
   36          //   <i> Define the number of tasks that will use a bigger stack.
   37          //   <i> The memory space for the stack is provided by the user.
   38          //   <i> Default: 0
   39          #ifndef OS_PRIVCNT
   40           #define OS_PRIVCNT     0
   41          #endif
   42          
   43          //   <o>Task stack size [bytes] <20-4096:4><#/4>
   44          //   <i> Set the stack size for tasks which is assigned by the system.
   45          //   <i> Default: 200
   46          #ifndef OS_STKSIZE
   47           #define OS_STKSIZE     50
   48          #endif
   49          
   50          // <q>Check for the stack overflow
   51          // ===============================
   52          // <i> Include the stack checking code for a stack overflow.
   53          // <i> Note that additional code reduces the Kernel performance.
   54          #ifndef OS_STKCHECK
   55           #define OS_STKCHECK    1
   56          #endif
   57          
   58          //   <o>Number of user timers <0-250>
   59          //   <i> Define max. number of user timers that will run at the same time.
ARM COMPILER V2.42,  ARTX_Config                                                           20/01/06  15:26:03  PAGE 2   

   60          //   <i> Default: 0  (User timers disabled)
   61          #ifndef OS_TIMERCNT
   62           #define OS_TIMERCNT    0
   63          #endif
   64          
   65          // </h>
   66          // <h>System Timer Configuration
   67          // =============================
   68          //   <o>ARTX Kernel timer number <0=> Timer 0 <1=> Timer 1
   69          //   <i> Define the ARM timer used as a system tick timer.
   70          //   <i> Default: Timer 0
   71          #ifndef OS_TIMER
   72           #define OS_TIMER       1
   73          #endif
   74          
   75          //   <o>Timer clock value [Hz] <1-1000000000>
   76          //   <i> Set the timer clock value for selected timer.
   77          //   <i> Default: 15000000  (15MHz at 60MHz CCLK and VPBDIV = 4)
   78          #ifndef OS_CLOCK
   79           #define OS_CLOCK       15000000
   80          #endif
   81          
   82          //   <o>Timer tick value [us] <1-1000000>
   83          //   <i> Set the timer tick value for selected timer.
   84          //   <i> Default: 10000  (10ms)
   85          #ifndef OS_TICK
   86           #define OS_TICK        10000
   87          #endif
   88          
   89          // </h>
   90          // <e>Round-Robin Task switching
   91          // =============================
   92          // <i> Enable Round-Robin Task switching.
   93          #ifndef OS_ROBIN
   94           #define OS_ROBIN       1
   95          #endif
   96          
   97          //   <o>Round-Robin Timeout [ticks] <1-1000>
   98          //   <i> Define how long a task will execute before a task switch.
   99          //   <i> Default: 5
  100          #ifndef OS_ROBINTOUT
  101           #define OS_ROBINTOUT   5
  102          #endif
  103          
  104          // </e>
  105          
  106          //------------- <<< end of configuration section >>> -----------------------
  107          
  108          /*----------------------------------------------------------------------------
  109           *      ARTX User configuration part END
  110           *---------------------------------------------------------------------------*/
  111          
  112          #if   (OS_TIMER == 0)                                   /* Timer 0          */
                 #define OS_TID_       4                               /*  Timer ID        */
                 #define OS_TIM_       (1 << OS_TID_)                  /*  Interrupt Mask  */
                 #define OS_TRV        ((U32)(((double)OS_CLOCK*(double)OS_TICK)/1E6)-1)
                 #define OS_TVAL       T0TC                            /*  Timer Value     */
                 #define OS_TOVF       (T0IR & 1)                      /*  Overflow Flag   */
                 #define OS_TREL()     ;                               /*  Timer Reload    */
                 #define OS_TFIRQ()    VICSoftInt   |= OS_TIM_;        /*  Force Interrupt */
                 #define OS_TIACK()    T0IR = 1;                       /*  Interrupt Ack   */ \
                                       VICSoftIntClr = OS_TIM_;                               \
                                       VICVectAddr   = 0;
                 #define OS_TINIT()    T0MR0 = OS_TRV;                 /*  Initialization  */ \
                                       T0MCR = 3;                                             \
                                       T0TCR = 1;                                             \
ARM COMPILER V2.42,  ARTX_Config                                                           20/01/06  15:26:03  PAGE 3   

                                       VICDefVectAddr = (U32)os_def_interrupt;                \
                                       VICVectAddr15  = (U32)os_clock_interrupt;              \
                                       VICVectCntl15  = 0x20 | OS_TID_;
               #elif (OS_TIMER == 1)                                   /* Timer 1          */
  130            #define OS_TID_       5                               /*  Timer ID        */
  131            #define OS_TIM_       (1 << OS_TID_)                  /*  Interrupt Mask  */
  132            #define OS_TRV        ((U32)(((double)OS_CLOCK*(double)OS_TICK)/1E6)-1)
  133            #define OS_TVAL       T1TC                            /*  Timer Value     */
  134            #define OS_TOVF       (T1IR & 1)                      /*  Overflow Flag   */
  135            #define OS_TREL()     ;                               /*  Timer Reload    */
  136            #define OS_TFIRQ()    VICSoftInt   |= OS_TIM_;        /*  Force Interrupt */
  137            #define OS_TIACK()    T1IR = 1;                       /*  Interrupt Ack   */ \
  138                                  VICSoftIntClr = OS_TIM_;                               \
  139                                  VICVectAddr   = 0;
  140            #define OS_TINIT()    T1MR0 = OS_TRV;                 /*  Initialization  */ \
  141                                  T1MCR = 3;                                             \
  142                                  T1TCR = 1;                                             \
  143                                  VICDefVectAddr = (U32)os_def_interrupt;                \
  144                                  VICVectAddr15  = (U32)os_clock_interrupt;              \
  145                                  VICVectCntl15  = 0x20 | OS_TID_;
  146          #else
                 #error OS_TIMER invalid
               #endif
  149          
  150          #define OS_IACK()       VICVectAddr   = 0;              /* Interrupt Ack    */
  151          
  152          #define OS_LOCK()       VICIntEnClr   = OS_TIM_;        /* Task Lock        */
  153          #define OS_UNLOCK()     VICIntEnable |= OS_TIM_;        /* Task Unlock      */
  154          
  155          /* WARNING ! Do not use IDLE mode if you are using a JTAG interface  */
  156          /*           for debugging your application.                         */
  157          #define _idle_()        PCON = 1;
  158          #define INITIAL_CPSR    0x40000010
  159          #define MAGIC_WORD      0xE25A2EA5
  160          
  161          /*----------------------------------------------------------------------------
  162           *      Global Variables
  163           *---------------------------------------------------------------------------*/
  164          
  165          extern P_TCB os_runtask;
  166          extern struct OS_XCB os_rdy;
  167          extern struct OS_TCB os_clock_TCB;
  168          extern U16 os_time;
  169          U16 const os_maxtaskrun = OS_TASKCNT;
  170          /* Export following defines to uVision debugger. */
  171          U32 const os_stackinfo = (OS_STKCHECK<<24) | (OS_PRIVCNT<<16) | (OS_STKSIZE*4);
  172          U32 const os_clockrate  = OS_TICK;
  173          U32 const os_timernum   = (OS_TIMER << 16) | OS_TIMERCNT;
  174          U32 const os_rrobin     = (OS_ROBIN << 16) | OS_ROBINTOUT;
  175          
  176          /*----------------------------------------------------------------------------
  177           *      Local Variables
  178           *---------------------------------------------------------------------------*/
  179          /* Memory pool for TCB allocation    */
  180          static U32 m_tcb[(sizeof(struct OS_TCB) * OS_TASKCNT)/4 + 3];
  181          
  182          /* Memory pool for System stack allocation. Need to allocate 2 additional  */
  183          /* entries for 'os_clock_demon()' and 'os_idle_demon()'.                   */
  184          static U32 m_stk[OS_STKSIZE * (OS_TASKCNT-OS_PRIVCNT+2) + 3];
  185          
  186          /* An array of Active task pointers.                                       */
  187          P_TCB os_active_TCB[OS_TASKCNT];
  188          
  189          #if (OS_ROBIN == 1)
  190            static U16  os_robin_time;
  191            static P_TCB os_tsk_robin;
ARM COMPILER V2.42,  ARTX_Config                                                           20/01/06  15:26:03  PAGE 4   

  192          #endif
  193          
  194          #if (OS_TIMERCNT != 0)
                 /* Memory pool for User Timer allocation                                 */
                 static U32 m_tmr[(sizeof(struct OS_TMR) * OS_TIMERCNT)/4 + 3];
               #endif
  198          
  199          #if (OS_STKCHECK == 1)
  200            static BIT os_del_flag;
  201          #endif
  202          
  203          /*----------------------------------------------------------------------------
  204           *      Global Functions
  205           *---------------------------------------------------------------------------*/
  206          
  207          /*--------------------------- os_idle_demon ---------------------------------*/
  208          
  209          void os_idle_demon (void) __task {
  210   1         /* The idle demon is a system task. It is running when no other task is   */
  211   1         /* ready to run (idle situation). It must not terminate. Therefore it     */
  212   1         /* should contain at least an endless loop.                               */
  213   1      
  214   1         for (;;) {
  215   2         /* HERE: include here optional user code to be executed when no task runs.*/
  216   2           _idle_();//PWM
  217   2         }
  218   1      } /* end of os_idle_demon */
  219          
  220          
  221          /*--------------------------- os_tmr_call -----------------------------------*/
  222          
  223          void os_tmr_call (U16 info) {
  224   1         /* This function is called when the user timer has expired.               */
  225   1         /* Parameter "info" is the parameter defined when the timer was created.  */
  226   1         /* HERE: include here optional user code to be executed on timeout.       */
  227   1         info = info;
  228   1      } /* end of os_tmr_call */
  229          
  230          /*--------------------------- os_stk_overflow -------------------------------*/
  231          
  232          #if (OS_STKCHECK == 1)
  233          static void os_stk_overflow (void) {
  234   1         /* This function is called when a stack overflow is detected.             */
  235   1         /*  'os_runtask' points to a TCB of a task which has a stack overflow     */
  236   1         /*  'task_id'    holds a task id for this task                            */
  237   1         /* HERE: include here optional code to be executed on stack overflow.     */
  238   1         static OS_TID task_id;
  239   1      
  240   1         /* Get a task identification for a task with stack problem to 'task_id'.*/
  241   1         task_id = os_get_TID (os_runtask);
  242   1         /* Use a uVision 'Advanced RTX' debug dialog page 'Active Tasks' to    */
  243   1         /* check which task has got a stack overflow and needs a bigger stack. */
  244   1         for (;;);
  245   1      }
  246          #endif
  247          
  248          /*--------------------------- os_clock_interrupt ----------------------------*/
  249          
  250          void os_clock_interrupt (void) NOFRAME {
  251   1         /* Do task switch to clock demon: entered upon a clock interrupt. */
  252   1         __asm {
  253   1              STMDB   SP!,{R0-R1}                 ; Save Full Context
  254   1              STMDB   SP,{SP}^                    ; User SP
  255   1              LDMDB   SP,{R0}
  256   1              MRS     R1,SPSR                     ; User CPSR
  257   1              SUB     LR,LR,#0x4
ARM COMPILER V2.42,  ARTX_Config                                                           20/01/06  15:26:03  PAGE 5   

  258   1              STMDB   R0!,{R1,LR}                 ; Push PC, CPSR
  259   1              STMDB   R0,{LR}^                    ; Push User LR
  260   1              SUB     R0,R0,#0x4                  ; Write back problem !!
  261   1              STMDB   R0!,{R2-R12}                ; Push R12-R2
  262   1              LDMIA   SP!,{R2-R3}
  263   1              STMDB   R0!,{R2-R3}                 ; Push R1-R0
  264   1      
  265   1              LDR     R1,=os_runtask              ; os_runtask
  266   1              LDR     R1,[R1,#0x0]                ; os_runtask
  267   1              STR     R0,[R1,#TCB_TSTACK]         ; os_runtask->tsk_stack
  268   1         }
  269   1         OS_TIACK();
  270   1         tsk_lock ();
  271   1         os_runtask->full_ctx = __TRUE;
  272   1         os_runtask->state  = READY;
  273   1         os_put_rdy_first (os_runtask);
  274   1         os_runtask = &os_clock_TCB;
  275   1         os_clock_TCB.state = RUNNING;
  276   1         __asm {
  277   1              LDR     R0,=os_runtask              ; os_runtask
  278   1              LDR     R0,[R0,#0x0]                ; os_runtask
  279   1              LDR     R0,[R0,#TCB_TSTACK]         ; os_runtask->tsk_stack
  280   1      
  281   1              LDMIA   R0!,{R4-R8,R12}
  282   1              MSR     SPSR_cxsf,R8
  283   1              STMDB   SP,{R0}                     ; Set User SP
  284   1              LDMDB   SP,{SP}^
  285   1              MOVS    PC,R12                      ; RETI
  286   1         }
  287   1      } /* end of os_clock_interrupt */
  288          
  289          /*--------------------------- os_def_interrupt ------------------------------*/
  290          
  291          void os_def_interrupt (void) __irq  {
  292   1         /* Default Interrupt Function: may be called when timer ISR is disabled */
  293   1         OS_IACK();
  294   1      }
  295          
  296          /*--------------------------- os_tmr_init -----------------------------------*/
  297          
  298          void os_tmr_init (void) {
  299   1         /* Initialize hardware timer as system tick timer. This function is     */
  300   1         /* called at the system startup.                                        */
  301   1         OS_TINIT();
  302   1      #if (OS_ROBIN == 1)
  303   1         os_robin_time = OS_ROBINTOUT;
  304   1      #endif
  305   1      } /* end of os_tmr_init */
  306          
  307          /*--------------------------- os_tmr_reload ---------------------------------*/
  308          
  309          void os_tmr_reload (void) {
  310   1         /* Reload system timer for next period if a timer requires reload.        */
  311   1         OS_TREL();
  312   1      } /* end of os_tmr_reload */
  313          
  314          /*--------------------------- os_tmr_force_irq ------------------------------*/
  315          
  316          void os_tmr_force_irq (void) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区精品视频在线| 欧美高清在线一区二区| 91在线免费播放| 成人精品gif动图一区| 国产一区二区主播在线| 精品一区二区在线视频| 日产国产高清一区二区三区| 蜜桃91丨九色丨蝌蚪91桃色| 久久精品免费看| 久久99九九99精品| 国产精品一区二区在线观看不卡| 国产成人精品在线看| 成人视屏免费看| 色域天天综合网| 欧美色爱综合网| 日韩欧美一区在线| 久久久久9999亚洲精品| 最新国产の精品合集bt伙计| 一区二区三区免费观看| 日韩不卡手机在线v区| 国产在线不卡一卡二卡三卡四卡| 成人免费看片app下载| 色美美综合视频| 日韩色视频在线观看| 久久婷婷久久一区二区三区| 综合中文字幕亚洲| 午夜精品福利久久久| 国产毛片精品国产一区二区三区| 国产精品18久久久久久久久 | 毛片av一区二区| 欧美天堂一区二区三区| 日韩欧美在线1卡| 17c精品麻豆一区二区免费| 一区二区三区四区在线播放| 激情图片小说一区| 99re66热这里只有精品3直播| 欧美日韩精品一区二区在线播放 | 亚洲精品在线一区二区| 国产精品成人免费| 美女精品自拍一二三四| av电影在线观看完整版一区二区| 在线播放国产精品二区一二区四区| 久久丝袜美腿综合| 亚洲成av人片一区二区三区| 成人伦理片在线| 欧美一区二区三区四区在线观看| 国产欧美日韩三区| 美日韩一级片在线观看| 在线视频一区二区三| 中文字幕av不卡| 精品一区免费av| 欧美精品丝袜久久久中文字幕| 中文字幕亚洲精品在线观看| 精品一区二区三区久久| 91精品国产综合久久精品麻豆 | 欧美日精品一区视频| 中文成人av在线| 久久99精品久久久| 在线播放91灌醉迷j高跟美女| 日韩毛片一二三区| 国产aⅴ精品一区二区三区色成熟| 3d成人h动漫网站入口| 一区二区三区蜜桃| 一本久久精品一区二区| 国产精品免费aⅴ片在线观看| 国产一区二区免费在线| 日韩视频在线永久播放| 日本免费新一区视频| 欧美午夜精品一区二区蜜桃| 亚洲美女免费视频| 99re热这里只有精品免费视频| 国产欧美日韩在线| 国产精品18久久久久久vr| 久久免费电影网| 国产精品综合二区| 欧美激情综合在线| 成人中文字幕在线| 中文字幕一区二区三区精华液| 国产成人精品免费在线| 欧美韩国日本一区| 91在线观看美女| 亚洲日本va在线观看| 色综合久久久久网| 亚洲专区一二三| 欧美日韩成人激情| 免费人成黄页网站在线一区二区| 欧美一区二区三区日韩| 精品一区二区三区免费观看| 国产网站一区二区| 成人av动漫在线| 一区二区三区在线视频免费| 欧美亚洲丝袜传媒另类| 老司机免费视频一区二区三区| 26uuu亚洲综合色欧美| 成人天堂资源www在线| 亚洲乱码国产乱码精品精小说| 欧美视频一区二区三区四区| 日本欧美一区二区| 国产欧美日韩综合精品一区二区 | 亚洲一区二区在线免费看| 欧美男人的天堂一二区| 国产最新精品免费| 综合久久一区二区三区| 欧美高清你懂得| 国产福利不卡视频| 亚洲国产一区二区三区青草影视| 欧美一二三在线| 大桥未久av一区二区三区中文| 伊人色综合久久天天| 欧美成人免费网站| av一区二区三区| 美女一区二区三区在线观看| 亚洲国产高清不卡| 91精品国产日韩91久久久久久| 国产成人午夜精品影院观看视频 | 国产精品福利电影一区二区三区四区| 在线观看日韩一区| 国产一区二区成人久久免费影院| 亚洲视频1区2区| 日韩三区在线观看| 在线观看视频一区| 丁香婷婷深情五月亚洲| 日韩电影一区二区三区| 亚洲欧洲日韩在线| 久久蜜桃一区二区| 91.麻豆视频| 91成人在线精品| 豆国产96在线|亚洲| 蜜臀久久久99精品久久久久久| 亚洲天堂av老司机| 欧美经典一区二区| 日韩欧美综合一区| 欧美男女性生活在线直播观看| 99久久精品国产网站| 国产伦精品一区二区三区视频青涩 | 五月婷婷激情综合网| 国产精品丝袜久久久久久app| 日韩欧美自拍偷拍| 欧美日韩国产小视频在线观看| 97精品久久久午夜一区二区三区| 国产一本一道久久香蕉| 美女视频免费一区| 午夜精品影院在线观看| 夜夜揉揉日日人人青青一国产精品| 日本一区二区三区免费乱视频 | 国产91丝袜在线观看| 久久9热精品视频| 男人的天堂久久精品| 午夜私人影院久久久久| 亚洲国产综合人成综合网站| 亚洲一区在线视频观看| 亚洲色图欧美激情| 中文字幕综合网| 一级日本不卡的影视| 一区二区三区色| 亚洲图片一区二区| 午夜精品一区二区三区电影天堂| 亚洲小说春色综合另类电影| 亚洲国产精品久久人人爱| 亚洲精品国久久99热| 一区二区三区av电影| 亚洲成人激情综合网| 五月婷婷激情综合| 久久国产人妖系列| 国内精品国产成人国产三级粉色| 精久久久久久久久久久| 国产丶欧美丶日本不卡视频| 国产91丝袜在线播放九色| 99久久久久免费精品国产| 91浏览器在线视频| 欧美日韩美少妇| 精品久久国产老人久久综合| 国产肉丝袜一区二区| 亚洲情趣在线观看| 午夜影院久久久| 紧缚捆绑精品一区二区| 成人18视频日本| 欧美日韩国产片| 精品91自产拍在线观看一区| 中文字幕一区日韩精品欧美| 亚洲一二三区不卡| 国产在线观看一区二区| 99免费精品视频| 91精品国产色综合久久ai换脸| 久久色成人在线| 亚洲久草在线视频| 美女网站色91| 91麻豆6部合集magnet| 日韩精品一区二区三区四区| 国产精品色哟哟| 日本亚洲三级在线| 丁香一区二区三区| 欧美精品777| 中文字幕 久热精品 视频在线| 亚洲成人黄色影院| 成人国产精品免费| 欧美v国产在线一区二区三区| 亚洲人吸女人奶水| 国产一区在线观看麻豆| 欧美图片一区二区三区|