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

📄 zmain.lst

📁 cc2430讀取短地址程式
💻 LST
📖 第 1 页 / 共 3 页
字号:
    132           * @brief   First function called after startup.
    133           * @return  don't care
    134           *********************************************************************/

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    135          ZSEG int main( void )
   \                     main:
    136          {
   \   000000                ; Auto size: 0
    137            // Turn off interrupts
    138            osal_int_disable( INTS_ALL );
   \   000000                ; Setup parameters for call to function osal_int_disable
   \   000000   79FF         MOV     R1,#-0x1
   \   000002   90....       MOV     DPTR,#(osal_int_disable & 0xffff)
   \   000005   74..         MOV     A,#((osal_int_disable >> 16) & 0xff)
   \   000007   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    139          
    140            // Make sure supply voltage is high enough to run
    141            zmain_vdd_check();
   \   00000A                ; Setup parameters for call to function zmain_vdd_check
   \   00000A   12....       LCALL   ??zmain_vdd_check
    142          
    143            // Initialize stack memory
    144            zmain_ram_init();
   \   00000D   78..         MOV     R0,#(SFB(XSP) & 0xff)
   \   00000F   8682         MOV     DPL,@R0
   \   000011   08           INC     R0
   \   000012   8683         MOV     DPH,@R0
   \   000014   8003         SJMP    ??main_0
   \                     ??main_1:
   \   000016   74A5         MOV     A,#-0x5b
   \   000018   F0           MOVX    @DPTR,A
   \                     ??main_0:
   \   000019   12....       LCALL   ?Subroutine0
   \                     ??CrossCallReturnLabel_0:
   \   00001C   C3           CLR     C
   \   00001D   74..         MOV     A,#(SFB(XSTACK) & 0xff)
   \   00001F   9582         SUBB    A,DPL
   \   000021   74..         MOV     A,#((SFB(XSTACK) >> 8) & 0xff)
   \   000023   9583         SUBB    A,DPH
   \   000025   40EF         JC      ??main_1
   \   000027   7582..       MOV     DPL,#((SFE(ISTACK) + 255) & 0xff)
   \   00002A   7583..       MOV     DPH,#(((SFE(ISTACK) - 1) >> 8) & 0xff)
   \   00002D   8004         SJMP    ??main_2
   \                     ??main_3:
   \   00002F   A882         MOV     R0,DPL
   \   000031   76A5         MOV     @R0,#-0x5b
   \                     ??main_2:
   \   000033   E581         MOV     A,0x81
   \   000035   F5..         MOV     ?V0 + 0,A
   \   000037   12....       LCALL   ?Subroutine0
   \                     ??CrossCallReturnLabel_1:
   \   00003A   75..00       MOV     ?V0 + 1,#0x0
   \   00003D   C3           CLR     C
   \   00003E   E5..         MOV     A,?V0 + 0
   \   000040   9582         SUBB    A,DPL
   \   000042   E4           CLR     A
   \   000043   9583         SUBB    A,DPH
   \   000045   40E8         JC      ??main_3
    145          
    146            // Initialize board I/O
    147            InitBoard( OB_COLD );
   \   000047                ; Setup parameters for call to function InitBoard
   \   000047   7900         MOV     R1,#0x0
   \   000049   90....       MOV     DPTR,#(InitBoard & 0xffff)
   \   00004C   74..         MOV     A,#((InitBoard >> 16) & 0xff)
   \   00004E   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    148          
    149            // Initialze HAL drivers
    150            HalDriverInit();
   \   000051                ; Setup parameters for call to function HalDriverInit
   \   000051   90....       MOV     DPTR,#(HalDriverInit & 0xffff)
   \   000054   74..         MOV     A,#((HalDriverInit >> 16) & 0xff)
   \   000056   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    151          
    152            // Initialize NV System
    153            osal_nv_init( NULL );
   \   000059                ; Setup parameters for call to function osal_nv_init
   \   000059   7A00         MOV     R2,#0x0
   \   00005B   7B00         MOV     R3,#0x0
   \   00005D   90....       MOV     DPTR,#(osal_nv_init & 0xffff)
   \   000060   74..         MOV     A,#((osal_nv_init >> 16) & 0xff)
   \   000062   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    154          
    155            // Determine the extended address
    156            zmain_ext_addr();
   \   000065                ; Setup parameters for call to function zmain_ext_addr
   \   000065   12....       LCALL   ??zmain_ext_addr
    157          
    158            // Initialize basic NV items
    159            zgInit();
   \   000068                ; Setup parameters for call to function zgInit
   \   000068   90....       MOV     DPTR,#(zgInit & 0xffff)
   \   00006B   74..         MOV     A,#((zgInit >> 16) & 0xff)
   \   00006D   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    160          
    161            // Initialize the MAC
    162            ZMacInit();
   \   000070                ; Setup parameters for call to function ZMacInit
   \   000070   12....       LCALL   ZMacInit
    163          
    164          #ifndef NONWK
    165            // Since the AF isn't a task, call it's initialization routine
    166            afInit();
   \   000073                ; Setup parameters for call to function afInit
   \   000073   90....       MOV     DPTR,#(afInit & 0xffff)
   \   000076   74..         MOV     A,#((afInit >> 16) & 0xff)
   \   000078   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    167          #endif
    168          
    169            // Initialize the operating system
    170            osal_init_system();
   \   00007B                ; Setup parameters for call to function osal_init_system
   \   00007B   90....       MOV     DPTR,#(osal_init_system & 0xffff)
   \   00007E   74..         MOV     A,#((osal_init_system >> 16) & 0xff)
   \   000080   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    171          
    172            // Allow interrupts
    173            osal_int_enable( INTS_ALL );
   \   000083                ; Setup parameters for call to function osal_int_enable
   \   000083   79FF         MOV     R1,#-0x1
   \   000085   90....       MOV     DPTR,#(osal_int_enable & 0xffff)
   \   000088   74..         MOV     A,#((osal_int_enable >> 16) & 0xff)
   \   00008A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    174          
    175            // Final board initialization
    176            InitBoard( OB_READY );
   \   00008D                ; Setup parameters for call to function InitBoard
   \   00008D   7902         MOV     R1,#0x2
   \   00008F   90....       MOV     DPTR,#(InitBoard & 0xffff)
   \   000092   74..         MOV     A,#((InitBoard >> 16) & 0xff)
   \   000094   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    177          
    178            // Display information about this device
    179            zmain_dev_info();
    180          
    181            /* Display the device info on the LCD */
    182          #ifdef LCD_SUPPORTED
    183            zmain_lcd_init();
    184          #endif
    185          
    186            //while(1);
    187            osal_start_system(); // No Return from here
   \   000097                ; Setup parameters for call to function osal_start_system
   \   000097   90....       MOV     DPTR,#(osal_start_system & 0xffff)
   \   00009A   74..         MOV     A,#((osal_start_system >> 16) & 0xff)
   \   00009C   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    188          } // main()
   \   00009F   7A00         MOV     R2,#0x0
   \   0000A1   7B00         MOV     R3,#0x0
   \   0000A3   22           RET
    189          
    190          /*********************************************************************
    191           * @fn      zmain_vdd_check
    192           * @brief   Check if the Vdd is OK to run the processor.
    193           * @return  Return if Vdd is ok; otherwise, flash LED, then reset
    194           *********************************************************************/

   \                                 In segment NEAR_CODE, align 1, keep-with-next
    195          static ZSEG void zmain_vdd_check( void )
   \                     ??zmain_vdd_check:
    196          {
   \   000000   74F8         MOV     A,#-0x8
   \   000002   12....       LCALL   ?FUNC_ENTER_XDATA
   \   000005                ; Saved register size: 8
   \   000005                ; Auto size: 0
    197            uint8 vdd_passed_count = 0;
   \   000005   7E00         MOV     R6,#0x0
    198            bool toggle = 0;
   \   000007   7F00         MOV     R7,#0x0
    199          
    200            // Initialization for board related stuff such as LEDs
    201            HAL_BOARD_INIT();
   \   000009   43FE01       ORL     0xfe,#0x1
   \   00000C   43FE08       ORL     0xfe,#0x8
   \   00000F   438F20       ORL     0x8f,#0x20
   \   000012   8027         SJMP    ??zmain_vdd_check_1
    202          
    203            // Repeat getting the sample until number of failures or successes hits MAX
    204            // then based on the count value, determine if the device is ready or not
    205            while ( vdd_passed_count < MAX_VDD_SAMPLES )
    206            {
    207              if ( HalAdcCheckVdd (ZMAIN_VDD_LIMIT) )
    208              {
    209                HAL_TOGGLE_LED1();
   \                     ??zmain_vdd_check_2:
   \   000014   5004         JNC     ??zmain_vdd_check_3
   \   000016   C290         CLR     0x90.0
   \   000018   8002         SJMP    ??zmain_vdd_check_4
   \                     ??zmain_vdd_check_3:
   \   00001A   D290         SETB    0x90.0
    210                vdd_passed_count++;    // Keep track # times Vdd passes in a row
   \                     ??zmain_vdd_check_4:
   \   00001C   0E           INC     R6
    211                MicroWait (10000);     // Wait 10ms to try again
   \   00001D                ; Setup parameters for call to function Onboard_wait
   \   00001D   7A10         MOV     R2,#0x10
   \   00001F   7B27         MOV     R3,#0x27
   \   000021   90....       MOV     DPTR,#(Onboard_wait & 0xffff)
   \   000024   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   000026   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    212                MicroWait (50000);
   \   000029                ; Setup parameters for call to function Onboard_wait
   \   000029   7A50         MOV     R2,#0x50
   \   00002B   7BC3         MOV     R3,#-0x3d
   \   00002D   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   00002F   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    213              }
    214              else
    215              {
    216                HAL_TOGGLE_LED1();
    217                vdd_passed_count = 0;  // Reset passed counter
    218                MicroWait (50000);     // Wait 50ms
    219                MicroWait (50000);     // Wait another 50ms to try again
    220              }
    221          
    222              /* toggle LED1 and LED2 */
    223              if (vdd_passed_count == 0)
   \   000032   EE           MOV     A,R6
   \   000033   6034         JZ      ??zmain_vdd_check_5
   \                     ??zmain_vdd_check_6:
   \   000035   EE           MOV     A,R6
   \   000036   C3           CLR     C
   \   000037   9403         SUBB    A,#0x3
   \   000039   5043         JNC     ??zmain_vdd_check_7
   \                     ??zmain_vdd_check_1:
   \   00003B                ; Setup parameters for call to function HalAdcCheckVdd
   \   00003B   7904         MOV     R1,#0x4
   \   00003D   90....       MOV     DPTR,#(HalAdcCheckVdd & 0xffff)
   \   000040   74..         MOV     A,#((HalAdcCheckVdd >> 16) & 0xff)
   \   000042   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000045   E9           MOV     A,R1
   \   000046   A290         MOV     C,0x90.0
   \   000048   70CA         JNZ     ??zmain_vdd_check_2
   \   00004A   5004         JNC     ??zmain_vdd_check_8
   \   00004C   C290         CLR     0x90.0
   \   00004E   8002         SJMP    ??zmain_vdd_check_9
   \                     ??zmain_vdd_check_8:
   \   000050   D290         SETB    0x90.0
   \                     ??zmain_vdd_check_9:
   \   000052   7E00         MOV     R6,#0x0
   \   000054                ; Setup parameters for call to function Onboard_wait
   \   000054   7A50         MOV     R2,#0x50
   \   000056   7BC3         MOV     R3,#-0x3d
   \   000058   90....       MOV     DPTR,#(Onboard_wait & 0xffff)
   \   00005B   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   00005D   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000060                ; Setup parameters for call to function Onboard_wait
   \   000060   7A50         MOV     R2,#0x50
   \   000062   7BC3         MOV     R3,#-0x3d
   \   000064   74..         MOV     A,#((Onboard_wait >> 16) & 0xff)
   \   000066   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    224              {
    225                if ((toggle = !(toggle)))
   \                     ??zmain_vdd_check_5:
   \   000069   EF           MOV     A,R7
   \   00006A   700A         JNZ     ??zmain_vdd_check_10
   \   00006C   7F01         MOV     R7,#0x1
    226                  HAL_TOGGLE_LED1();
   \   00006E   A290         MOV     C,0x90.0
   \   000070   4008         JC      ??zmain_vdd_check_11
   \   000072   D290         SETB    0x90.0
   \   000074   80C5         SJMP    ??zmain_vdd_check_1
   \                     ??zmain_vdd_check_10:
   \   000076   7F00         MOV     R7,#0x0
   \   000078   80BB         SJMP    ??zmain_vdd_check_6
   \                     ??zmain_vdd_check_11:
   \   00007A   C290         CLR     0x90.0
   \   00007C   80BD         SJMP    ??zmain_vdd_check_1
    227                else;
    228                  //HAL_TOGGLE_LED2();

⌨️ 快捷键说明

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