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

📄 onboard.lst

📁 CC2431无线定位程序非常有参考价值
💻 LST
📖 第 1 页 / 共 4 页
字号:
   \   000042   8048         SJMP    ??InitBoard_2
   \                     ??InitBoard_3:
   \   000044                ; Setup parameters for call to function HalLedSet
   \   000044   7A01         MOV     R2,#0x1
   \   000046   EE           MOV     A,R6
   \   000047   F9           MOV     R1,A
   \   000048   90....       MOV     DPTR,#(HalLedSet & 0xffff)
   \   00004B   74..         MOV     A,#((HalLedSet >> 16) & 0xff)
   \   00004D   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000050                ; Setup parameters for call to function Onboard_wait
   \   000050   7A24         MOV     R2,#0x24
   \   000052   7BF4         MOV     R3,#-0xc
   \   000054   90....       MOV     DPTR,#(Onboard_wait & 0xffff)
   \   000057   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   000059   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00005C                ; Setup parameters for call to function Onboard_wait
   \   00005C   7A24         MOV     R2,#0x24
   \   00005E   7BF4         MOV     R3,#-0xc
   \   000060   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   000062   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000065                ; Setup parameters for call to function HalLedSet
   \   000065   7A00         MOV     R2,#0x0
   \   000067   EE           MOV     A,R6
   \   000068   F9           MOV     R1,A
   \   000069   90....       MOV     DPTR,#(HalLedSet & 0xffff)
   \   00006C   74..         MOV     A,#((HalLedSet >> 16) & 0xff)
   \   00006E   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000071                ; Setup parameters for call to function Onboard_wait
   \   000071   7A7C         MOV     R2,#0x7c
   \   000073   7B92         MOV     R3,#-0x6e
   \   000075   90....       MOV     DPTR,#(Onboard_wait & 0xffff)
   \   000078   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   00007A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00007D                ; Setup parameters for call to function Onboard_wait
   \   00007D   7A7C         MOV     R2,#0x7c
   \   00007F   7B92         MOV     R3,#-0x6e
   \   000081   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   000083   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000086   EE           MOV     A,R6
   \   000087   C3           CLR     C
   \   000088   13           RRC     A
   \   000089   FE           MOV     R6,A
   \   00008A   70B8         JNZ     ??InitBoard_3
   \                     ??InitBoard_2:
   \   00008C   7E08         MOV     R6,#0x8
   \   00008E   80B4         SJMP    ??InitBoard_3
    103          
    104            /* Timer2 for Osal timer
    105             * This development board uses ATmega128 Timer/Counter3 to provide
    106             * system clock ticks for the OSAL scheduler. These functions perform
    107             * the hardware specific actions required by the OSAL_Timers module.
    108             */
    109             OnboardTimerIntEnable = FALSE;
   \                     ??InitBoard_1:
   \   000090   E4           CLR     A
   \   000091   90....       MOV     DPTR,#OnboardTimerIntEnable
   \   000094   F0           MOVX    @DPTR,A
    110           	 HalTimerConfig (OSAL_TIMER,                        // 8bit timer2
    111                            HAL_TIMER_MODE_CTC,                 // Clear Timer on Compare
    112                            HAL_TIMER_CHANNEL_SINGLE,           // Channel 1 - default
    113                            HAL_TIMER_CH_MODE_OUTPUT_COMPARE,   // Output Compare mode
    114                            OnboardTimerIntEnable,              // Use interrupt
    115                            Onboard_TimerCallBack);             // Channel Mode
   \   000095                ; Setup parameters for call to function HalTimerConfig
   \   000095   75....       MOV     ?V0 + 0,#(Onboard_TimerCallBack & 0xff)
   \   000098   75....       MOV     ?V0 + 1,#((Onboard_TimerCallBack >> 8) & 0xff)
   \   00009B   75....       MOV     ?V0 + 2,#((Onboard_TimerCallBack >> 16) & 0xff)
   \   00009E   78..         MOV     R0,#?V0 + 0
   \   0000A0   12....       LCALL   ?PUSH_XSTACK_I_THREE
   \   0000A3   7D00         MOV     R5,#0x0
   \   0000A5   7C02         MOV     R4,#0x2
   \   0000A7   7B01         MOV     R3,#0x1
   \   0000A9   7A02         MOV     R2,#0x2
   \   0000AB   7902         MOV     R1,#0x2
   \   0000AD   90....       MOV     DPTR,#(HalTimerConfig & 0xffff)
   \   0000B0   74..         MOV     A,#((HalTimerConfig >> 16) & 0xff)
   \   0000B2   801A         SJMP    ??InitBoard_4
    116          
    117            }
    118            else  // !OB_COLD
    119            {
    120          #ifdef ZTOOL_PORT
    121              MT_IndReset();
    122          #endif
    123          
    124               /* Initialize Key stuff */
    125              OnboardKeyIntEnable = HAL_KEY_INTERRUPT_DISABLE;
   \                     ??InitBoard_0:
   \   0000B4   E4           CLR     A
   \   0000B5   90....       MOV     DPTR,#OnboardKeyIntEnable
   \   0000B8   F0           MOVX    @DPTR,A
    126              HalKeyConfig( OnboardKeyIntEnable, OnBoard_KeyCallback);
   \   0000B9                ; Setup parameters for call to function HalKeyConfig
   \   0000B9   75....       MOV     ?V0 + 0,#(OnBoard_KeyCallback & 0xff)
   \   0000BC   75....       MOV     ?V0 + 1,#((OnBoard_KeyCallback >> 8) & 0xff)
   \   0000BF   75....       MOV     ?V0 + 2,#((OnBoard_KeyCallback >> 16) & 0xff)
   \   0000C2   78..         MOV     R0,#?V0 + 0
   \   0000C4   12....       LCALL   ?PUSH_XSTACK_I_THREE
   \   0000C7   7900         MOV     R1,#0x0
   \   0000C9   90....       MOV     DPTR,#(HalKeyConfig & 0xffff)
   \   0000CC   74..         MOV     A,#((HalKeyConfig >> 16) & 0xff)
   \                     ??InitBoard_4:
   \   0000CE   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   0000D1   7403         MOV     A,#0x3
   \   0000D3   12....       LCALL   ?DEALLOC_XSTACK8
    127            }
    128          }
   \   0000D6   7F03         MOV     R7,#0x3
   \   0000D8   02....       LJMP    ?BANKED_LEAVE_XDATA
    129          
    130          /*********************************************************************
    131           * @fn      ChkReset()
    132           * @brief   Check reset bits - if reset cause is unknown, assume a
    133           *          brown-out (low power), assume batteries are not reliable,
    134           *          hang in a loop and sequence through the LEDs.
    135           * @param   None
    136           * @return  None
    137           *********************************************************************/
    138          void ChkReset( void )
    139          {
    140            uint8 led;
    141            uint8 rib;
    142          
    143            // Isolate reset indicator bits
    144            rib = SLEEP & LRESET;
    145          
    146            if ( rib == RESETPO )
    147            {
    148              // Put code here to handle Power-On reset
    149            }
    150            else if ( rib == RESETEX )
    151            {
    152              // Put code here to handle External reset
    153            }
    154            else if ( rib == RESETWD )
    155            {
    156              // Put code here to handle WatchDog reset
    157            }
    158            else
    159            {
    160              // Unknown, hang and blink
    161              HAL_DISABLE_INTERRUPTS();
    162              led = HAL_LED_4;
    163              while ( 1 ) {
    164                HalLedSet( led, HAL_LED_MODE_ON );
    165                MicroWait( 62500 );
    166                MicroWait( 62500 );
    167                HalLedSet( led, HAL_LED_MODE_OFF );
    168                MicroWait( 37500 );
    169                MicroWait( 37500 );
    170                if ( !(led >>= 1) )
    171                  led = HAL_LED_4;
    172              }
    173            }
    174          }
    175          
    176          /*********************************************************************
    177           *                        "Keyboard" Support
    178           *********************************************************************/
    179          
    180          /*********************************************************************
    181           * Keyboard Register function
    182           *
    183           * The keyboard handler is setup to send all keyboard changes to
    184           * one task (if a task is registered).
    185           *
    186           * If a task registers, it will get all the keys. You can change this
    187           * to register for individual keys.
    188           *********************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    189          byte RegisterForKeys( byte task_id )
   \                     RegisterForKeys:
    190          {
   \   000000   C082         PUSH    DPL
   \   000002   C083         PUSH    DPH
   \   000004                ; Saved register size: 2
   \   000004                ; Auto size: 0
    191            // Allow only the first task
    192            if ( registeredKeysTaskID == NO_TASK_ID )
   \   000004   90....       MOV     DPTR,#??registeredKeysTaskID
   \   000007   E0           MOVX    A,@DPTR
   \   000008   64FF         XRL     A,#0xff
   \   00000A   7006         JNZ     ??RegisterForKeys_0
    193            {
    194              registeredKeysTaskID = task_id;
   \   00000C   E9           MOV     A,R1
   \   00000D   F0           MOVX    @DPTR,A
    195              return ( true );
   \   00000E   7901         MOV     R1,#0x1
   \   000010   8002         SJMP    ??RegisterForKeys_1
    196            }
    197            else
    198              return ( false );
   \                     ??RegisterForKeys_0:
   \   000012   7900         MOV     R1,#0x0
   \                     ??RegisterForKeys_1:
   \   000014   02....       LJMP    ?Subroutine0 & 0xFFFF
    199          }

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine0:
   \   000000   D083         POP     DPH
   \   000002   D082         POP     DPL
   \   000004   02....       LJMP    ?BRET
    200          
    201          /*********************************************************************
    202           * @fn      OnBoard_SendKeys
    203           *
    204           * @brief   Send "Key Pressed" message to application.
    205           *
    206           * @param   keys  - keys that were pressed
    207           *          state - shifted
    208           *
    209           * @return  status
    210           *********************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    211          byte OnBoard_SendKeys( byte keys, byte state )
   \                     OnBoard_SendKeys:
    212          {
   \   000000   74F6         MOV     A,#-0xa
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 10
   \   000005                ; Auto size: 0
   \   000005   E9           MOV     A,R1
   \   000006   FE           MOV     R6,A
   \   000007   EA           MOV     A,R2
   \   000008   FF           MOV     R7,A
    213            keyChange_t *msgPtr;
    214          
    215            if ( registeredKeysTaskID != NO_TASK_ID )
   \   000009   90....       MOV     DPTR,#??registeredKeysTaskID
   \   00000C   E0           MOVX    A,@DPTR
   \   00000D   64FF         XRL     A,#0xff
   \   00000F   6037         JZ      ??OnBoard_SendKeys_0
    216            {
    217              // Send the address to the task
    218              msgPtr = (keyChange_t *)osal_msg_allocate( sizeof(keyChange_t) );
   \   000011                ; Setup parameters for call to function osal_msg_allocate
   \   000011   7A04         MOV     R2,#0x4
   \   000013   7B00         MOV     R3,#0x0
   \   000015   90....       MOV     DPTR,#(osal_msg_allocate & 0xffff)
   \   000018   74..         MOV     A,#((osal_msg_allocate >> 16) & 0xff)
   \   00001A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    219              if ( msgPtr )
   \   00001D   EA           MOV     A,R2
   \   00001E   7001         JNZ     ??OnBoard_SendKeys_1
   \   000020   EB           MOV     A,R3
   \                     ??OnBoard_SendKeys_1:
   \   000021   6021         JZ      ??OnBoard_SendKeys_2
    220              {
    221                msgPtr->hdr.event = KEY_CHANGE;
   \   000023   74C0         MOV     A,#-0x40
   \   000025   8A82         MOV     DPL,R2
   \   000027   8B83         MOV     DPH,R3
   \   000029   F0           MOVX    @DPTR,A
    222                msgPtr->state = state;
   \   00002A   EF           MOV     A,R7
   \   00002B   A3           INC     DPTR
   \   00002C   A3           INC     DPTR
   \   00002D   F0           MOVX    @DPTR,A
    223                msgPtr->keys = keys;
   \   00002E   EE           MOV     A,R6
   \   00002F   8A82         MOV     DPL,R2
   \   000031   8B83         MOV     DPH,R3
   \   000033   A3           INC     DPTR
   \   000034   A3           INC     DPTR
   \   000035   A3           INC     DPTR
   \   000036   F0           MOVX    @DPTR,A
    224          
    225                osal_msg_send( registeredKeysTaskID, (uint8 *)msgPtr );
   \   000037                ; Setup parameters for call to function osal_msg_send
   \   000037   90....       MOV     DPTR,#??registeredKeysTaskID
   \   00003A   E0           MOVX    A,@DPTR
   \   00003B   F9           MOV     R1,A
   \   00003C   90....       MOV     DPTR,#(osal_msg_send & 0xffff)
   \   00003F   74..         MOV     A,#((osal_msg_send >> 16) & 0xff)
   \   000041   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    226              }
    227              return ( ZSuccess );
   \                     ??OnBoard_SendKeys_2:
   \   000044   7900         MOV     R1,#0x0
   \   000046   8002         SJMP    ??OnBoard_SendKeys_3
    228            }
    229            else
    230              return ( ZFailure );
   \                     ??OnBoard_SendKeys_0:
   \   000048   7901         MOV     R1,#0x1
   \                     ??OnBoard_SendKeys_3:
   \   00004A   7F02         MOV     R7,#0x2
   \   00004C   02....       LJMP    ?BANKED_LEAVE_XDATA
    231          }
    232          
    233          /*********************************************************************
    234           * @fn      OnBoard_KeyCallback
    235           *
    236           * @brief   Callback service for keys
    237           *
    238           * @param   keys  - keys that were pressed
    239           *          state - shifted
    240           *
    241           * @return  void
    242           *********************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next

⌨️ 快捷键说明

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