⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_etos.lst

📁 义隆单片机上实现的任务调度
💻 LST
📖 第 1 页 / 共 5 页
字号:
    63            C                   IF     OS_IC_TYPE == 2
    64            C                       bc    0x03,6
    65            C                   ENDIF
    66            C                ELSEIF NUM == 1
    67            C                   IF     OS_IC_TYPE == 2
    68            C                       bs    0x03,6
    69            C                   ENDIF
    70            C                ELSE   
    71            C                       MESSAGE "warring!!!"
    72            C                ENDIF                         
    73            C        ENDM
    74            C        ;--------------------------------------------------------------------------
    75            C        BANK    macro  num
    76            C                if     num == 0
    77            C                        bc   R4,6
    78            C                        bc   R4,7
    79            C                elseif num == 1
    80            C                        bs   R4,6
    81            C                        bc   R4,7
    82            C                elseif num == 2
    83            C                        bc   R4,6
    84            C                        bs   R4,7
    85            C                elseif num == 3
    86            C                        bs   R4,6
    87            C                        bs   R4,7
    88            C                else
    89            C                        message "warring: don't have specify bank!"
    90            C                endif
    91            C        endm
    92            C        
    93            C        ;--------------------------------------------------------------------------
    94            C        PAGE    macro    num
    95            C                if       num == 0
    96            C        
    97            C                         bc  psw,5
    98            C                         bc  psw,6
    99            C                elseif   num == 1
   100            C                         bs  psw,5
   101            C                         bc  psw,6
   102            C                elseif   num == 2
   103            C                         bc  psw,5
   104            C                         bs  psw,6
   105            C                elseif   num == 3
   106            C                         bs  psw,5
   107            C                         bs  psw,6
   108            C                else
   109            C                         message "warring: don't have specify page!"
   110            C                endif
   111            C        endm
   112            C        
   113            C        ;------------------------------------------------- delay about 5uS
   114            C        LOOP_DELAY     macro
   115            C                       jmp             $+1
   116            C                       jmp             $+1
   117            C                       jmp             $+1
   118            C                       jmp             $+1
   119            C                       jmp             $+1
   120            C        endm 
   121            C        ;------------------------------------------------- save register for interrupt
   122            C        PUSHALL        MACRO
   123            C                       mov             abuff,a
   124            C                       swap            abuff
   125            C                       swapa           psw
   126            C                       mov             pswbuff,a  
   127            C                       swapa           r4
   128            C                       mov             r4buff,a
   129            C                       page            0 
   130            C        ENDM
   131            C        ;-------------------------------------------------- restore the register
   132            C        POPALL         MACRO
   133            C                       swapa           r4buff
   134            C                       mov             r4,a
   135            C                       swapa           pswbuff
   136            C                       mov             psw,a
   137            C                       swapa           abuff
   138            C        ENDM           
   139            C        ;-------------------------------------------------- clear interrupt flag
   140            C        CLR_TCIF       MACRO
   141            C                       
   142            C             if       OS_IC_TYPE==0
   143            C                       bc              0x0f,0           
   144            C             elseif   OS_IC_TYPE==1
   145            C                       bc              0x3f,0
   146            C             elseif   OS_IC_TYPE==2
   147            C                       bc              0x0f,0
   148            C             else
   149            C                      message "warring: do not supported IC type!"
   150            C             endif          
   151            C        ENDM
   152            C        
   153            C        
   154            C        
   155            C                    
   156            C        CLEAR_ALL_RAM       MACRO
   157            C        
   158            C        if       OS_BANK_TYPE==0
   159            C                       mov             a,@0x10
   160            C                       mov             r4,a
   161            C        clr_ram:       
   162            C                       clr             r0
   163            C                       inc             r4
   164            C                       mov             a,@0x2f
   165            C                       and             a,r4
   166            C                       jbs             psw,z
   167            C                       jmp             clr_ram
   168            C        elseif   OS_BANK_TYPE==1
   169            C                       mov             a,@0x10
   170            C                       mov             r4,a
   171            C        clr_ram:       
   172            C                       clr             r0
   173            C                       inc             r4
   174            C                       mov             a,@0x3f
   175            C                       and             a,r4
   176            C                       jbs             psw,z
   177            C                       jmp             clr_ram
   178            C        
   179            C        ;-------------------------------------------------
   180            C        elseif   OS_BANK_TYPE==2
   181            C                       mov             a,@0x10
   182            C                       mov             r4,a               
   183            C                       bank            0
   184            C                       call            clr_ram
   185            C                       bank            1
   186            C                       call            clr_ram            
   187            C                       jmp             clr_ram_end
   188            C        clr_ram:                 
   189            C                       clr             r0
   190            C                       inc             r4
   191            C                       mov             a,@0x3f
   192            C                       and             a,r4
   193            C                       jbs             psw,z
   194            C                       jmp             clr_ram
   195            C                       mov             a,@0x10
   196            C                       mov             r4,a
   197            C                       ret
   198            C        clr_ram_end:               
   199            C        ;-------------------------------------------------
   200            C        elseif   OS_BANK_TYPE==3
   201            C                       mov             a,@0x10
   202            C                       mov             r4,a               
   203            C                       bank            0
   204            C                       call            clr_ram
   205            C                       bank            1
   206            C                       call            clr_ram  
   207            C                       bank            2
   208            C                       call            clr_ram
   209            C                       bank            3
   210            C                       call            clr_ram            
   211            C                       jmp             clr_ram_end
   212            C        clr_ram:                 
   213            C                       clr             r0
   214            C                       inc             r4
   215            C                       mov             a,@0x3f
   216            C                       and             a,r4
   217            C                       jbs             psw,z
   218            C                       jmp             clr_ram
   219            C                       mov             a,@0x10
   220            C                       mov             r4,a
   221            C                       ret
   222            C        clr_ram_end:
   223            C        else
   224            C                   message "warring: do not supported BANK type!"
   225            C        endif
   226            C                  
   227            C        ENDM         
   228            C        
   229            C        
   230            C        
   231            C        /*****************************************************************************
   232            C        *                                                                            *  
   233            C        *                      Critical Aera Entry & Exit                            *
   234            C        *                                                                            *
   235            C        ******************************************************************************/
   236            C        
   237            C        OS_ENTER_CRITICAL      MACRO
   238            C                       disi
   239            C        ENDM
   240            C        
   241            C        OS_EXIT_CRITICAL       MACRO
   242            C                       eni     
   243            C        ENDM          
    15                                    include         "OS_CFG.DT"
     1            C        /*
     2            C        *********************************************************************************************************
     3            C        *                                         OS  CONFIGURATION
     4            C        *********************************************************************************************************
     5            C        */
     6            C        
     7            C        
     8       0000 C        OS_IC_TYPE          ==        0            /*                    MCU TYPE                          */                
     9            C                                                   /*       0: EM78P153/156                                */
    10            C                                                   /*       1: EM78P447                                    */
    11            C                                                   /*       2: EM78P258/259/260                            */
    12            C                                                   /*       3: EM78P458                                    */
    13            C                                                   /*       4: EM78P468                                    */     
    14            C                                                     
    15       0000 C        OS_BANK_TYPE        ==        0            /*                    BANK TYPE                         */                
    16            C                                                   /*       0: 1 BANK(32BYTE)-> EM78P153 / HS108           */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -