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

📄 arm_00_ossystemidle.lst

📁 uCOS在LPC213X上的移植。适合ARM嵌入式系统初学者。
💻 LST
字号:
ARM COMPILER V2.50a,  ARM_00_OSSystemIdle                                                  25/08/06  23:22:56  PAGE 1   


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

stmt  level    source

    1          /**********************************************************************************************
    2            ARM_00_OSSystemIdle.c file
    3            
    4            作者:Computer-lov
    5            建立日期:2006-5-13
    6            修改日期:2006-5-15
    7            最后修改时间:2006-08-25
    8            版本:V1.0
    9            版权所有,盗版必究。
   10            任何技术问题可到我的博客上留言:    http://computer00.21ic.org
   11            Copyright(C) Computer-lov 2006-2016
   12            All rights reserved
   13          **********************************************************************************************/
   14          
   15          #include "CPU.H"
   16          
   17          #include "my_type.h"
   18          
   19          #include "ARM_00_OS_TaskSwitch.H"
   20          #include "ARM_00_OS_Core.H"
   21          #include "UART.H"
   22          #include "KEYS.H"
   23          #include "Task.h"
   24          
   25          
   26          /**********************************************************************************************
   27          功能:系统空闲任务。
   28          入口参数:无。
   29          返回:无。
   30          备注:操作系统必须从系统空闲任务开始运行。并且系统空闲任务永远不能挂起或者延时。
   31          **********************************************************************************************/
   32          void OSSystemIdle(void)
   33          {
   34   1       prints("",1);   //显示任务被启动
   35   1       prints(OSCurrentPcb->Title,0);
   36   1       prints(" Start..........................",1);
   37   1       
   38   1       OSAddDevice(OS_PRINTER_DEVICE_ID); 
   39   1       
   40   1       OSTaskCreat((uint32)OSTaskManager,256,1,OS_THUMB_MODE,"TaskManager");   //创建任务管理器任务
   41   1      
   42   1       OSTaskCreat((uint32)Task3,256,8,OS_THUMB_MODE,"Task3");  //创建任务3
   43   1       OSTaskCreat((uint32)Task4,256,8,OS_THUMB_MODE,"Task4");  //创建任务4
   44   1       OSTaskCreat((uint32)Task5,256,3,OS_THUMB_MODE,"Task5");
   45   1      
   46   1       KEYBoardInit();     //初始化键盘
   47   1       
   48   1       OSExitCritical();   //退出临界段
   49   1      
   50   1       while(1)
   51   1        {
   52   2         PCON=1;     //处理器进入空闲模式,节省能源。绿色环保。
   53   2        }
   54   1      }
   55          //////////////////////////////////End of function//////////////////////////////////////////////
   56          
   57          
   58          
   59          
ARM COMPILER V2.50a,  ARM_00_OSSystemIdle                                                  25/08/06  23:22:56  PAGE 2   

   60          
   61          
ARM COMPILER V2.50a,  ARM_00_OSSystemIdle                                                  25/08/06  23:22:56  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN DATA (OSCurrentPcb)
 EXTERN CODE16 (OSTaskManager?T)
 EXTERN CODE16 (OSExitCritical?T)
 EXTERN CODE16 (OSTaskCreat?T)
 EXTERN CODE16 (OSAddDevice?T)
 EXTERN CODE16 (prints?T)
 EXTERN CODE16 (KEYBoardInit?T)
 EXTERN CODE16 (Task3?T)
 EXTERN CODE16 (Task4?T)
 EXTERN CODE16 (Task5?T)



*** PUBLICS:
 PUBLIC         OSSystemIdle?T



*** DATA SEGMENT '?CON?ARM_00_OSSystemIdle':
 00000000          ??S_6:
 00000000            DB          'Task5',0x00
 00000006          ??S_5:
 00000006            DB          'Task4',0x00
 0000000C          ??S_4:
 0000000C            DB          'Task3',0x00
 00000012          ??S_3:
 00000012            DB          'TaskManager',0x00
 0000001E          ??S_2:
 0000001E            DB          ' Start..........................',0x00
 0000003F          ??S_1:
 0000003F            DB          0x00

*** CODE SEGMENT '?PR?OSSystemIdle?T?ARM_00_OSSystemIdle':
   32: void OSSystemIdle(void)
 00000000  B500      PUSH        {LR}
   34:  prints("",1);   //显示任务被启动
 00000002  4800      LDR         R0,=??S_1 ; ??S_1
 00000004  2101      MOV         R1,#0x1
 00000006  F7FF      BL          prints?T  ; T=0x0001  (1)
 00000008  FFFB      BL          prints?T  ; T=0x0001  (2)
   35:  prints(OSCurrentPcb->Title,0);
 0000000A  4800      LDR         R0,=OSCurrentPcb ; OSCurrentPcb
 0000000C  6800      LDR         R0,[R0,#0x0] ; OSCurrentPcb
 0000000E  3034      ADD         R0,#0x34
 00000010  2100      MOV         R1,#0x0
 00000012  F7FF      BL          prints?T  ; T=0x0001  (1)
 00000014  FFF5      BL          prints?T  ; T=0x0001  (2)
   36:  prints(" Start..........................",1);
 00000016  4800      LDR         R0,=??S_2 ; ??S_2
 00000018  2101      MOV         R1,#0x1
 0000001A  F7FF      BL          prints?T  ; T=0x0001  (1)
 0000001C  FFF1      BL          prints?T  ; T=0x0001  (2)
   38:  OSAddDevice(OS_PRINTER_DEVICE_ID); 
 0000001E  2001      MOV         R0,#0x1
 00000020  F7FF      BL          OSAddDevice?T  ; T=0x0001  (1)
 00000022  FFEE      BL          OSAddDevice?T  ; T=0x0001  (2)
   40:  OSTaskCreat((uint32)OSTaskManager,256,1,OS_THUMB_MODE,"TaskManager");   //创建任务管理器任务
 00000024  4800      LDR         R0,=??S_3 ; ??S_3
 00000026  B401      PUSH        {R0}
 00000028  4800      LDR         R0,=OSTaskManager?T ; OSTaskManager?T
 0000002A  4940      LDR         R1,=0x100
 0000002C  2201      MOV         R2,#0x1
 0000002E  2320      MOV         R3,#0x20
 00000030  F7FF      BL          OSTaskCreat?T  ; T=0x0001  (1)
 00000032  FFE6      BL          OSTaskCreat?T  ; T=0x0001  (2)
 00000034  B001      ADD         R13,#0x4
   42:  OSTaskCreat((uint32)Task3,256,8,OS_THUMB_MODE,"Task3");  //创建任务3
ARM COMPILER V2.50a,  ARM_00_OSSystemIdle                                                  25/08/06  23:22:56  PAGE 4   

 00000036  4800      LDR         R0,=??S_4 ; ??S_4
 00000038  B401      PUSH        {R0}
 0000003A  4800      LDR         R0,=Task3?T ; Task3?T
 0000003C  4940      LDR         R1,=0x100
 0000003E  2208      MOV         R2,#0x8
 00000040  2320      MOV         R3,#0x20
 00000042  F7FF      BL          OSTaskCreat?T  ; T=0x0001  (1)
 00000044  FFDD      BL          OSTaskCreat?T  ; T=0x0001  (2)
 00000046  B001      ADD         R13,#0x4
   43:  OSTaskCreat((uint32)Task4,256,8,OS_THUMB_MODE,"Task4");  //创建任务4
 00000048  4800      LDR         R0,=??S_5 ; ??S_5
 0000004A  B401      PUSH        {R0}
 0000004C  4800      LDR         R0,=Task4?T ; Task4?T
 0000004E  4940      LDR         R1,=0x100
 00000050  2208      MOV         R2,#0x8
 00000052  2320      MOV         R3,#0x20
 00000054  F7FF      BL          OSTaskCreat?T  ; T=0x0001  (1)
 00000056  FFD4      BL          OSTaskCreat?T  ; T=0x0001  (2)
 00000058  B001      ADD         R13,#0x4
   44:  OSTaskCreat((uint32)Task5,256,3,OS_THUMB_MODE,"Task5");
 0000005A  4800      LDR         R0,=??S_6 ; ??S_6
 0000005C  B401      PUSH        {R0}
 0000005E  4800      LDR         R0,=Task5?T ; Task5?T
 00000060  4940      LDR         R1,=0x100
 00000062  2203      MOV         R2,#0x3
 00000064  2320      MOV         R3,#0x20
 00000066  F7FF      BL          OSTaskCreat?T  ; T=0x0001  (1)
 00000068  FFCB      BL          OSTaskCreat?T  ; T=0x0001  (2)
 0000006A  B001      ADD         R13,#0x4
   46:  KEYBoardInit();     //初始化键盘
 0000006C  F7FF      BL          KEYBoardInit?T  ; T=0x0001  (1)
 0000006E  FFC8      BL          KEYBoardInit?T  ; T=0x0001  (2)
   48:  OSExitCritical();   //退出临界段
 00000070  F7FF      BL          OSExitCritical?T  ; T=0x0001  (1)
 00000072  FFC6      BL          OSExitCritical?T  ; T=0x0001  (2)
   50:  while(1)
 00000074          L_3:
   52:    PCON=1;     //处理器进入空闲模式,节省能源。绿色环保。
 00000074  2101      MOV         R1,#0x1
 00000076  4800      LDR         R0,=0xE01FC0C0
 00000078  7001      STRB        R1,[R0,#0x0]
   53:   }
 0000007A  E7FB      B           L_3  ; T=0x00000074
   54: }
 0000007C  BC08      POP         {R3}
 0000007E  4718      BX          R3
 00000080          ENDP ; 'OSSystemIdle?T'



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


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

⌨️ 快捷键说明

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