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

📄 main.lst

📁 射频芯片nRF905例程
💻 LST
字号:
ARM COMPILER V2.42,  main                                                                  20/01/06  15:26:03  PAGE 1   


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

stmt  level    source

    1          #include <ARTX.h>
    2          #include <LPC213x.H>    // Philips Peripheral Registers
    3          #include <LPC213xDEF.H> //ARM菜鸟HotPower创建定义文件(新版)
    4          #include <main.h>
    5          #include <string.h>
    6          #include <stdio.h>
    7          
    8          #pragma NOINIT
    9          #pragma save
   10          #pragma optimize (7)
   11          
   12          
   13          volatile unsigned int SystemRamTest;//RAM掉电测试变量
   14          
   15          OS_TID Main_Task, Key_Task, Led_Task, Lednum_Task;
   16          OS_TID Beep_Task, Lcd_Task, Adc_Task, Pwm_Task;
   17          
   18          void MainTask (void) __task;
   19          void KeyTask (void) __task;
   20          void LcdTask (void) __task;
   21          
   22          
   23          void SystemInit(void);
   24          void KeyInit(void);
   25          void LcdInit(void);
   26          
   27          
   28          void SystemInit(void) {
   29   1        if (SystemRamTest != 0x5555aaaa) {
   30   2        }
   31   1      }
   32          
   33          void KeyInit(void) {
   34   1        if (SystemRamTest != 0x5555aaaa) {
   35   2        }
   36   1      }
   37          
   38          void LcdInit(void) {
   39   1        if (SystemRamTest != 0x5555aaaa) {
   40   2        }
   41   1      }
   42          
   43          
   44          void MainTask (void) __task {
   45   1        SystemInit();
   46   1        Main_Task = os_tsk_self ();
   47   1        Key_Task = os_tsk_create (KeyTask, 1);//创建KeyTask任务及级别
   48   1        Lcd_Task = os_tsk_create (LcdTask, 1);//创建LcdTask任务及级别
   49   1        SystemRamTest = 0x5555aaaa;
   50   1        for (;;) {
   51   2          os_evt_set (0x0001, Key_Task);//
   52   2          
   53   2          os_tsk_pass();   
   54   2        }
   55   1      }
   56          
   57          void KeyTask (void) __task {
   58   1      OS_RESULT result;
   59   1      unsigned int i; 
ARM COMPILER V2.42,  main                                                                  20/01/06  15:26:03  PAGE 2   

   60   1        KeyInit();
   61   1        for (;;) {
   62   2          result = os_evt_wait_or(0xffff, 0xffff);//等待LedTask任务事件发生
   63   2          if(result == OS_R_EVT) {
   64   3            i = os_evt_get();
   65   3            switch(i) {
   66   4              case 0x0001:  ;//IOCLR1 = (1 << LED1);//点亮LED1
   67   4                   break;
   68   4            }
   69   3          }
   70   2          os_tsk_pass();   
   71   2        }
   72   1      }
   73          
   74          void LcdTask (void) __task {
   75   1      OS_RESULT result;
   76   1      //unsigned int i;   
   77   1        LcdInit();
   78   1        for (;;) {
   79   2          result = os_evt_wait_or(0xffff, 0xffff);//等待LcdTask任务事件发生
   80   2          if(result == OS_R_EVT) {
   81   3          }
   82   2      //    os_dly_wait (2);//延时20mS
   83   2          os_tsk_pass();   
   84   2        }
   85   1      }
   86          
   87          
   88          void main (void) {
   89   1      volatile unsigned int start;
   90   1        for (start = 0; start < 1000000; start ++);
   91   1        os_sys_init (MainTask);//启动ARTX,此函数并不返回main()
   92   1      }
ARM COMPILER V2.42,  main                                                                  20/01/06  15:26:03  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (os_tsk_create_user?T)
 EXTERN CODE16 (os_tsk_self?T)
 EXTERN CODE16 (os_sys_init_user?T)
 EXTERN CODE16 (os_tsk_pass?T)
 EXTERN CODE16 (os_evt_wait?T)
 EXTERN CODE16 (os_evt_set?T)
 EXTERN CODE16 (os_evt_get?T)
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         MainTask?T
 PUBLIC         KeyTask?T
 PUBLIC         LcdTask?T
 PUBLIC         SystemInit?T
 PUBLIC         KeyInit?T
 PUBLIC         LcdInit?T
 PUBLIC         main
 PUBLIC         SystemRamTest
 PUBLIC         Main_Task
 PUBLIC         Key_Task
 PUBLIC         Led_Task
 PUBLIC         Lednum_Task
 PUBLIC         Beep_Task
 PUBLIC         Lcd_Task
 PUBLIC         Adc_Task
 PUBLIC         Pwm_Task



*** DATA SEGMENT '?DTN?main':
 00000000          SystemRamTest:
 00000000            DS          4
 00000004          Main_Task:
 00000004            DS          4
 00000008          Key_Task:
 00000008            DS          4
 0000000C          Led_Task:
 0000000C            DS          4
 00000010          Lednum_Task:
 00000010            DS          4
 00000014          Beep_Task:
 00000014            DS          4
 00000018          Lcd_Task:
 00000018            DS          4
 0000001C          Adc_Task:
 0000001C            DS          4
 00000020          Pwm_Task:
 00000020            DS          4



*** CODE SEGMENT '?PR?SystemInit?T?main':
   29:   if (SystemRamTest != 0x5555aaaa) {
 00000000  4800      LDR         R0,=SystemRamTest ; SystemRamTest
 00000002  6800      LDR         R0,[R0,#0x0] ; SystemRamTest
   31: }
 00000004  4770      BX          R14
 00000006          ENDP ; 'SystemInit?T'


*** CODE SEGMENT '?PR?KeyInit?T?main':
   34:   if (SystemRamTest != 0x5555aaaa) {
 00000000  4800      LDR         R0,=SystemRamTest ; SystemRamTest
 00000002  6800      LDR         R0,[R0,#0x0] ; SystemRamTest
   36: }
 00000004  4770      BX          R14
 00000006          ENDP ; 'KeyInit?T'


*** CODE SEGMENT '?PR?LcdInit?T?main':
ARM COMPILER V2.42,  main                                                                  20/01/06  15:26:03  PAGE 4   

   39:   if (SystemRamTest != 0x5555aaaa) {
 00000000  4800      LDR         R0,=SystemRamTest ; SystemRamTest
 00000002  6800      LDR         R0,[R0,#0x0] ; SystemRamTest
   41: }
 00000004  4770      BX          R14
 00000006          ENDP ; 'LcdInit?T'


*** CODE SEGMENT '?PR?MainTask?T?main':
   45:   SystemInit();
 00000000  F7FF      BL          SystemInit?T  ; T=0x0001  (1)
 00000002  FFFE      BL          SystemInit?T  ; T=0x0001  (2)
   46:   Main_Task = os_tsk_self ();
 00000004  F7FF      BL          os_tsk_self?T  ; T=0x0001  (1)
 00000006  FFFC      BL          os_tsk_self?T  ; T=0x0001  (2)
 00000008  4800      LDR         R1,=Main_Task ; Main_Task
 0000000A  6008      STR         R0,[R1,#0x0] ; Main_Task
   47:   Key_Task = os_tsk_create (KeyTask, 1);//创建KeyTask任务及级别
 0000000C  4800      LDR         R0,=KeyTask?T ; KeyTask?T
 0000000E  2200      MOV         R2,#0x0
 00000010  2101      MOV         R1,#0x1
 00000012  2300      MOV         R3,#0x0
 00000014  F7FF      BL          os_tsk_create_user?T  ; T=0x0001  (1)
 00000016  FFF4      BL          os_tsk_create_user?T  ; T=0x0001  (2)
 00000018  4800      LDR         R1,=Key_Task ; Key_Task
 0000001A  6008      STR         R0,[R1,#0x0] ; Key_Task
   48:   Lcd_Task = os_tsk_create (LcdTask, 1);//创建LcdTask任务及级别
 0000001C  4800      LDR         R0,=LcdTask?T ; LcdTask?T
 0000001E  2200      MOV         R2,#0x0
 00000020  2101      MOV         R1,#0x1
 00000022  2300      MOV         R3,#0x0
 00000024  F7FF      BL          os_tsk_create_user?T  ; T=0x0001  (1)
 00000026  FFEC      BL          os_tsk_create_user?T  ; T=0x0001  (2)
 00000028  4800      LDR         R1,=Lcd_Task ; Lcd_Task
 0000002A  6008      STR         R0,[R1,#0x0] ; Lcd_Task
   49:   SystemRamTest = 0x5555aaaa;
 0000002C  4800      LDR         R1,=0x5555AAAA
 0000002E  4800      LDR         R0,=SystemRamTest ; SystemRamTest
 00000030  6001      STR         R1,[R0,#0x0] ; SystemRamTest
   50:   for (;;) {
 00000032          L_7:
   51:     os_evt_set (0x0001, Key_Task);//
 00000032  4800      LDR         R0,=Key_Task ; Key_Task
 00000034  6801      LDR         R1,[R0,#0x0] ; Key_Task
 00000036  2001      MOV         R0,#0x1
 00000038  F7FF      BL          os_evt_set?T  ; T=0x0001  (1)
 0000003A  FFE2      BL          os_evt_set?T  ; T=0x0001  (2)
   53:     os_tsk_pass();   
 0000003C  F7FF      BL          os_tsk_pass?T  ; T=0x0001  (1)
 0000003E  FFE0      BL          os_tsk_pass?T  ; T=0x0001  (2)
   54:   }
 00000040  E7F7      B           L_7  ; T=0x00000032
   55: }
 00000042          ENDP ; 'MainTask?T'


*** CODE SEGMENT '?PR?KeyTask?T?main':
   57: void KeyTask (void) __task {
 00000000            ; SCOPE-START
   60:   KeyInit();
 00000000  F7FF      BL          KeyInit?T  ; T=0x0001  (1)
 00000002  FFFE      BL          KeyInit?T  ; T=0x0001  (2)
   61:   for (;;) {
 00000004          L_12:
   62:     result = os_evt_wait_or(0xffff, 0xffff);//等待LedTask任务事件发生
 00000004  4800      LDR         R1,=0xFFFF
 00000006  1C08      MOV         R0,R1
 00000008  2200      MOV         R2,#0x0
 0000000A  F7FF      BL          os_evt_wait?T  ; T=0x0001  (1)
 0000000C  FFF9      BL          os_evt_wait?T  ; T=0x0001  (2)
ARM COMPILER V2.42,  main                                                                  20/01/06  15:26:03  PAGE 5   

 0000000E  1C04      MOV         R4,R0 ; result
 00000010  ---- Variable 'result' assigned to Register 'R4' ----
   63:     if(result == OS_R_EVT) {
 00000010  1C20      MOV         R0,R4 ; result
 00000012  2802      CMP         R0,#0x2 ; result
 00000014  D101      BNE         L_14  ; T=0x0000001A
   64:       i = os_evt_get();
 00000016  F7FF      BL          os_evt_get?T  ; T=0x0001  (1)
 00000018  FFF3      BL          os_evt_get?T  ; T=0x0001  (2)
   69:     }
 0000001A          L_14:
   70:     os_tsk_pass();   
 0000001A  F7FF      BL          os_tsk_pass?T  ; T=0x0001  (1)
 0000001C  FFF1      BL          os_tsk_pass?T  ; T=0x0001  (2)
   71:   }
 0000001E  E7F1      B           L_12  ; T=0x00000004
 00000020            ; SCOPE-END
   72: }
 00000020          ENDP ; 'KeyTask?T'


*** CODE SEGMENT '?PR?LcdTask?T?main':
   74: void LcdTask (void) __task {
 00000000            ; SCOPE-START
   77:   LcdInit();
 00000000  F7FF      BL          LcdInit?T  ; T=0x0001  (1)
 00000002  FFFE      BL          LcdInit?T  ; T=0x0001  (2)
   78:   for (;;) {
 00000004          L_20:
   79:     result = os_evt_wait_or(0xffff, 0xffff);//等待LcdTask任务事件发生
 00000004  4800      LDR         R1,=0xFFFF
 00000006  1C08      MOV         R0,R1
 00000008  2200      MOV         R2,#0x0
 0000000A  F7FF      BL          os_evt_wait?T  ; T=0x0001  (1)
 0000000C  FFF9      BL          os_evt_wait?T  ; T=0x0001  (2)
   83:     os_tsk_pass();   
 0000000E  F7FF      BL          os_tsk_pass?T  ; T=0x0001  (1)
 00000010  FFF7      BL          os_tsk_pass?T  ; T=0x0001  (2)
   84:   }
 00000012  E7F7      B           L_20  ; T=0x00000004
 00000014            ; SCOPE-END
   85: }
 00000014          ENDP ; 'LcdTask?T'


*** CODE SEGMENT '?PR?main?main':
   88: void main (void) {
 00000000  B500      PUSH        {LR}
 00000002  B081      SUB         R13,#0x4
 00000004            ; SCOPE-START
   90:   for (start = 0; start < 1000000; start ++);
 00000004  2300      MOV         R3,#0x0
 00000006  9300      STR         R3,[R13,#0x0] ; start
 00000008  E002      B           L_25  ; T=0x00000010
 0000000A          L_23:
 0000000A  9800      LDR         R0,[R13,#0x0] ; start
 0000000C  3001      ADD         R0,#0x1
 0000000E  9000      STR         R0,[R13,#0x0] ; start
 00000010          L_25:
 00000010  9800      LDR         R0,[R13,#0x0] ; start
 00000012  4800      LDR         R1,=0xF4240
 00000014  4288      CMP         R0,R1
 00000016  D3F8      BCC         L_23  ; T=0x0000000A
   91:   os_sys_init (MainTask);//启动ARTX,此函数并不返回main()
 00000018  4800      LDR         R0,=MainTask?T ; MainTask?T
 0000001A  2200      MOV         R2,#0x0
 0000001C  1C19      MOV         R1,R3
 0000001E  F7FF      BL          os_sys_init_user?T  ; T=0x0001  (1)
 00000020  FFEF      BL          os_sys_init_user?T  ; T=0x0001  (2)
 00000022            ; SCOPE-END
ARM COMPILER V2.42,  main                                                                  20/01/06  15:26:03  PAGE 6   

   92: }
 00000022  B001      ADD         R13,#0x4
 00000024  BC08      POP         {R3}
 00000026  4718      BX          R3
 00000028          ENDP ; 'main'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =    ------
  const size           =    ------
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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