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

📄 bsp.lst

📁 ARM仿真案例
💻 LST
📖 第 1 页 / 共 5 页
字号:
     53          */
     54          
     55          void  VIC_Init(void);
     56          void  VIC_Dummy(void);
     57          void  VIC_DummyWDT(void);
     58          void  VIC_DummyTIMER0(void);
     59          void  VIC_DummyTIMER1(void);
     60          void  VIC_DummyUART0(void);
     61          void  VIC_DummyUART1(void);
     62          void  VIC_DummyPWM0(void);
     63          void  VIC_DummyI2C(void);
     64          void  VIC_DummySPI(void);
     65          void  VIC_DummyRTC(void);
     66          void  VIC_DummyEINT0(void);
     67          void  VIC_DummyEINT1(void);
     68          void  VIC_DummyEINT2(void);
     69          
     70          /*
     71          *********************************************************************************************************
     72          *                                         BSP INITIALIZATION
     73          *
     74          * Description : This function should be called by your application code before you make use of any of the
     75          *               functions found in this module.
     76          *               
     77          * Arguments   : none
     78          *********************************************************************************************************
     79          */
     80          

   \                                 In segment CODE, align 4, keep-with-next
     81          void  BSP_Init (void)
     82          {   extern void pwminit(void);
   \                     BSP_Init:
   \   00000000   00B5               PUSH     {LR}
     83              MEMMAP                            = 2;                      /* Remap 64 bytes of int. RAM to 0x00  */
   \   00000002   1348               LDR      R0,??BSP_Init_0  ;; 0xe01fc040
   \   00000004   0221               MOVS     R1,#+2
   \   00000006   0160               STR      R1,[R0, #+0]
     84              
     85              BSP_IRQ_VECTOR_ADDR               = 0xE59FF018;             /* LDR PC,[PC,#0x18] instruction       */
   \   00000008   1820               MOVS     R0,#+24
   \   0000000A   1249               LDR      R1,??BSP_Init_0+0x4  ;; 0xe59ff018
   \   0000000C   0160               STR      R1,[R0, #+0]
     86              BSP_IRQ_ISR_ADDR                  = (INT32U)OS_CPU_IRQ_ISR; /* IRQ exception vector address        */
   \   0000000E   3820               MOVS     R0,#+56
   \   00000010   1149               LDR      R1,??BSP_Init_0+0x8  ;; OS_CPU_IRQ_ISR
   \   00000012   0160               STR      R1,[R0, #+0]
     87          
     88              BSP_FIQ_VECTOR_ADDR               = 0xE59FF018;             /* LDR PC,[PC,#0x18] instruction       */
   \   00000014   1C20               MOVS     R0,#+28
   \   00000016   0F49               LDR      R1,??BSP_Init_0+0x4  ;; 0xe59ff018
   \   00000018   0160               STR      R1,[R0, #+0]
     89              BSP_FIQ_ISR_ADDR                  = (INT32U)OS_CPU_FIQ_ISR; /* FIQ exception vector address        */
   \   0000001A   3C20               MOVS     R0,#+60
   \   0000001C   0F49               LDR      R1,??BSP_Init_0+0xC  ;; OS_CPU_FIQ_ISR
   \   0000001E   0160               STR      R1,[R0, #+0]
     90          
     91          
     92              BSP_UNDEF_INSTRUCTION_VECTOR_ADDR = 0xEAFFFFFE;             /* Jump to itself                      */
   \   00000020   0420               MOVS     R0,#+4
   \   00000022   0F49               LDR      R1,??BSP_Init_0+0x10  ;; 0xeafffffe
   \   00000024   0160               STR      R1,[R0, #+0]
     93              BSP_SWI_VECTOR_ADDR               = 0xEAFFFFFE;
   \   00000026   0820               MOVS     R0,#+8
   \   00000028   0D49               LDR      R1,??BSP_Init_0+0x10  ;; 0xeafffffe
   \   0000002A   0160               STR      R1,[R0, #+0]
     94              BSP_PREFETCH_ABORT_VECTOR_ADDR    = 0xEAFFFFFE;
   \   0000002C   0C20               MOVS     R0,#+12
   \   0000002E   0C49               LDR      R1,??BSP_Init_0+0x10  ;; 0xeafffffe
   \   00000030   0160               STR      R1,[R0, #+0]
     95              BSP_DATA_ABORT_VECTOR_ADDR        = 0xEAFFFFFE;
   \   00000032   1020               MOVS     R0,#+16
   \   00000034   0A49               LDR      R1,??BSP_Init_0+0x10  ;; 0xeafffffe
   \   00000036   0160               STR      R1,[R0, #+0]
     96              BSP_FIQ_VECTOR_ADDR               = 0xEAFFFFFE;
   \   00000038   1C20               MOVS     R0,#+28
   \   0000003A   0949               LDR      R1,??BSP_Init_0+0x10  ;; 0xeafffffe
   \   0000003C   0160               STR      R1,[R0, #+0]
     97          
     98              VIC_Init();                                   /* Initialize the Vectored Interrupt Controller      */
   \   0000003E   ........           BL       VIC_Init
     99              
    100              LED_Init();
   \   00000042   ........           BL       LED_Init
    101              Tmr_TickInit();
   \   00000046   ........           BL       Tmr_TickInit
    102          }
   \   0000004A   01BC               POP      {R0}
   \   0000004C   0047               BX       R0               ;; return
   \   0000004E   C046               Nop      
   \                     ??BSP_Init_0:
   \   00000050   40C01FE0           DC32     0xe01fc040
   \   00000054   18F09FE5           DC32     0xe59ff018
   \   00000058   ........           DC32     OS_CPU_IRQ_ISR
   \   0000005C   ........           DC32     OS_CPU_FIQ_ISR
   \   00000060   FEFFFFEA           DC32     0xeafffffe
    103          
    104          
    105          /*
    106          *********************************************************************************************************
    107          *                                         BSP INITIALIZATION
    108          *
    109          * Description : This function should be called by your application code before you make use of any of the
    110          *               functions found in this module.
    111          *               
    112          * Arguments   : none
    113          *********************************************************************************************************
    114          */
    115          

   \                                 In segment CODE, align 4, keep-with-next
    116          void  LED_Init (void)
    117          {
   \                     LED_Init:
   \   00000000   00B5               PUSH     {LR}
    118              PINSEL0             = 0;                      /* Use GPIO pins P0.0 to P0.15 for LEDs              */
   \   00000002   0748               LDR      R0,??LED_Init_0  ;; 0xe002c000
   \   00000004   0021               MOVS     R1,#+0
   \   00000006   0160               STR      R1,[R0, #+0]
    119              IODIR              |= 0x0000FFFF;             /* Set GPIO pins as outputs                          */
   \   00000008   0648               LDR      R0,??LED_Init_0+0x4  ;; 0xe0028008
   \   0000000A   0649               LDR      R1,??LED_Init_0+0x4  ;; 0xe0028008
   \   0000000C   0968               LDR      R1,[R1, #+0]
   \   0000000E   ....               LDR      R2,??DataTable2  ;; 0xffff
   \   00000010   0A43               ORRS     R2,R2,R1
   \   00000012   0260               STR      R2,[R0, #+0]
    120          
    121              LED_Off(0);                                   /* Turn OFF all the LEDs                             */
   \   00000014   0020               MOVS     R0,#+0
   \   00000016   ........           BL       LED_Off
    122          
    123          }
   \   0000001A   01BC               POP      {R0}
   \   0000001C   0047               BX       R0               ;; return
   \   0000001E   C046               Nop      
   \                     ??LED_Init_0:
   \   00000020   00C002E0           DC32     0xe002c000
   \   00000024   088002E0           DC32     0xe0028008
    124          
    125          /*
    126          *********************************************************************************************************
    127          *                                             LED ON
    128          *
    129          * Description : This function is used to control any or all the LEDs on the board.
    130          *               
    131          * Arguments   : led    is the number of the LED to control
    132          *                      0    indicates that you want ALL the LEDs to be ON
    133          *                      1    turns ON LED1 on the board
    134          *                      .
    135          *                      .
    136          *                      8    turns ON LED8 on the board
    137          *********************************************************************************************************
    138          */
    139          

   \                                 In segment CODE, align 4, keep-with-next
    140          void  LED_On (INT8U led)
    141          {
   \                     LED_On:
   \   00000000   00B5               PUSH     {LR}
    142              switch (led) {
   \   00000002   0028               CMP      R0,#+0
   \   00000004   20D0               BEQ      ??LED_On_0
   \   00000006   0128               CMP      R0,#+1
   \   00000008   22D0               BEQ      ??LED_On_1
   \   0000000A   0228               CMP      R0,#+2
   \   0000000C   24D0               BEQ      ??LED_On_2
   \   0000000E   0328               CMP      R0,#+3
   \   00000010   26D0               BEQ      ??LED_On_3
   \   00000012   0428               CMP      R0,#+4
   \   00000014   28D0               BEQ      ??LED_On_4
   \   00000016   0528               CMP      R0,#+5
   \   00000018   2AD0               BEQ      ??LED_On_5
   \   0000001A   0628               CMP      R0,#+6
   \   0000001C   2CD0               BEQ      ??LED_On_6
   \   0000001E   0728               CMP      R0,#+7
   \   00000020   2ED0               BEQ      ??LED_On_7
   \   00000022   0828               CMP      R0,#+8
   \   00000024   30D0               BEQ      ??LED_On_8
   \   00000026   0928               CMP      R0,#+9
   \   00000028   32D0               BEQ      ??LED_On_9
   \   0000002A   0A28               CMP      R0,#+10
   \   0000002C   35D0               BEQ      ??LED_On_10
   \   0000002E   0B28               CMP      R0,#+11
   \   00000030   38D0               BEQ      ??LED_On_11
   \   00000032   0C28               CMP      R0,#+12
   \   00000034   3BD0               BEQ      ??LED_On_12
   \   00000036   0D28               CMP      R0,#+13
   \   00000038   3ED0               BEQ      ??LED_On_13
   \   0000003A   0E28               CMP      R0,#+14
   \   0000003C   41D0               BEQ      ??LED_On_14
   \   0000003E   0F28               CMP      R0,#+15
   \   00000040   44D0               BEQ      ??LED_On_15
   \   00000042   1028               CMP      R0,#+16
   \   00000044   47D0               BEQ      ??LED_On_16
   \   00000046   4AE0               B        ??LED_On_17
    143                  case 0:
    144                       IOSET = 0x0000FFFF;
   \                     ??LED_On_0:
   \   00000048   2648               LDR      R0,??LED_On_18   ;; 0xe0028004
   \   0000004A   ....               LDR      R1,??DataTable2  ;; 0xffff
   \   0000004C   0160               STR      R1,[R0, #+0]
   \   0000004E   46E0               B        ??LED_On_17
    145                       break;
    146          
    147                  case 1:
    148                       IOSET = 1 << 0;
   \                     ??LED_On_1:
   \   00000050   2448               LDR      R0,??LED_On_18   ;; 0xe0028004
   \   00000052   0121               MOVS     R1,#+1
   \   00000054   0160               STR      R1,[R0, #+0]
   \   00000056   42E0               B        ??LED_On_17
    149                       break;
    150          
    151                  case 2:
    152                       IOSET = 1 << 1;
   \                     ??LED_On_2:
   \   00000058   2248               LDR      R0,??LED_On_18   ;; 0xe0028004
   \   0000005A   0221               MOVS     R1,#+2
   \   0000005C   0160               STR      R1,[R0, #+0]
   \   0000005E   3EE0               B        ??LED_On_17
    153                       break;
    154          
    155                  case 3:
    156                       IOSET = 1 << 2;
   \                     ??LED_On_3:
   \   00000060   2048               LDR      R0,??LED_On_18   ;; 0xe0028004
   \   00000062   0421               MOVS     R1,#+4
   \   00000064   0160               STR      R1,[R0, #+0]
   \   00000066   3AE0               B        ??LED_On_17
    157                       break;
    158          
    159                  case 4:
    160                       IOSET = 1 << 3;
   \                     ??LED_On_4:
   \   00000068   1E48               LDR      R0,??LED_On_18   ;; 0xe0028004
   \   0000006A   0821               MOVS     R1,#+8
   \   0000006C   0160               STR      R1,[R0, #+0]
   \   0000006E   36E0               B        ??LED_On_17
    161                       break;
    162          

⌨️ 快捷键说明

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