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

📄 arm_00_os_main.lst

📁 看看ARM菜鸟在ARM7上写的操作系统——ARM圈圈操作系统 最近在ADuC7027上写了一个ARM_00_OS
💻 LST
字号:
ARM COMPILER V2.50a,  ARM_00_OS_main                                                       16/05/06  14:55:44  PAGE 1   


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

stmt  level    source

    1          /**********************************************************************************************
    2          本程序只供学习使用,不得用于其它任何用途,否则后果自负。
    3          
    4            ARM_00_OS_main.c file
    5          
    6            ADuC702x上的操作系统——ARM_00_OS
    7          
    8            作者:Computer-lov
    9            建立日期:2006-5-1
   10            修改日期:2006-5-15
   11            版本:V1.0
   12            版权所有,盗版必究。
   13            任何技术问题可到我的博客上留言:    http://computer00.21ic.org
   14            Copyright(C) Computer-lov 2006-2016
   15            All rights reserved
   16          **********************************************************************************************/
   17          
   18          #include <ADuC7027.H>
   19          #include "My_type.h"
   20          #include "LED.H"
   21          #include "interrupt.h"
   22          #include "ARM_00_OS_TaskSwitch.H"
   23          #include "ARM_00_OS_Core.H"
   24          #include "UART.H"
   25          #include "KEYS.H"
   26          
   27          /*********************************************************************************************/
   28          void SysClkInit(void)
   29          {
   30   1       PLLKEY1=0xAA;
   31   1       PLLCON=0x01;   //PLL配置  
   32   1       PLLKEY2=0x55;
   33   1       POWKEY1=0x01;
   34   1       POWCON=0x00;  //CPU时钟配置为41.78MHz
   35   1       POWKEY2=0xF4;
   36   1      }
   37          ///////////////////////////////////////////////////////////////////////////////////////////////
   38          
   39          /**********************************************************************************************
   40          main函数
   41          **********************************************************************************************/
   42          void main(void)
   43          {
   44   1      
   45   1       DisEnableInterrupt(OS_I_Bit | OS_F_Bit);  //关中断
   46   1       
   47   1       SysClkInit();  //系统时钟初始化
   48   1       
   49   1       UART_init();   //串口初始化
   50   1       
   51   1       DelayXms(100);  //延迟100ms
   52   1       
   53   1       cls();         //清屏
   54   1       
   55   1       prints("SystemStart",1);  //显示开机信息
   56   1      
   57   1       OSInit();   //操作系统初始化
   58   1      
   59   1       DelayXms(2000);   //延时2S
ARM COMPILER V2.50a,  ARM_00_OS_main                                                       16/05/06  14:55:44  PAGE 2   

   60   1      
   61   1       OSEnterCritical();  //进入临界段
   62   1       
   63   1       EnableInterrupt(OS_I_Bit | OS_F_Bit);  //开中断
   64   1       
   65   1       OSTickInit();  //系统时钟节拍初始化
   66   1      
   67   1       OSStart((uint32)OSSystemIdle,OS_THUMB_MODE);  //系统开始运行
   68   1       
   69   1      }
   70          //////////////////////////////////End of function//////////////////////////////////////////////
ARM COMPILER V2.50a,  ARM_00_OS_main                                                       16/05/06  14:55:44  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE16 (DisEnableInterrupt?T)
 EXTERN CODE16 (EnableInterrupt?T)
 EXTERN CODE16 (OSStart?T)
 EXTERN CODE16 (OSInit?T)
 EXTERN CODE16 (OSTickInit?T)
 EXTERN CODE16 (OSSystemIdle?T)
 EXTERN CODE16 (OSEnterCritical?T)
 EXTERN CODE16 (UART_init?T)
 EXTERN CODE16 (prints?T)
 EXTERN CODE16 (cls?T)
 EXTERN CODE16 (DelayXms?T)
 EXTERN NUMBER (__startup)



*** PUBLICS:
 PUBLIC         SysClkInit?T
 PUBLIC         main



*** DATA SEGMENT '?CON?ARM_00_OS_main':
 00000000          ??S_1:
 00000000            DB          'SystemStart',0x00

*** CODE SEGMENT '?PR?SysClkInit?T?ARM_00_OS_main':
   30:  PLLKEY1=0xAA;
 00000000  21AA      MOV         R1,#0xAA
 00000002  4800      LDR         R0,=0xFFFF0410
 00000004  6001      STR         R1,[R0,#0x0]
   31:  PLLCON=0x01;   //PLL配置  
 00000006  2101      MOV         R1,#0x1
 00000008  4800      LDR         R0,=0xFFFF0414
 0000000A  6001      STR         R1,[R0,#0x0]
   32:  PLLKEY2=0x55;
 0000000C  2255      MOV         R2,#0x55
 0000000E  4800      LDR         R0,=0xFFFF0418
 00000010  6002      STR         R2,[R0,#0x0]
   33:  POWKEY1=0x01;
 00000012  4800      LDR         R0,=0xFFFF0404
 00000014  6001      STR         R1,[R0,#0x0]
   34:  POWCON=0x00;  //CPU时钟配置为41.78MHz
 00000016  2100      MOV         R1,#0x0
 00000018  4800      LDR         R0,=0xFFFF0408
 0000001A  6001      STR         R1,[R0,#0x0]
   35:  POWKEY2=0xF4;
 0000001C  21F4      MOV         R1,#0xF4
 0000001E  4800      LDR         R0,=0xFFFF040C
 00000020  6001      STR         R1,[R0,#0x0]
   36: }
 00000022  4770      BX          R14
 00000024          ENDP ; 'SysClkInit?T'


*** CODE SEGMENT '?PR?main?ARM_00_OS_main':
   42: void main(void)
 00000000  B500      PUSH        {LR}
   45:  DisEnableInterrupt(OS_I_Bit | OS_F_Bit);  //关中断
 00000002  20C0      MOV         R0,#0xC0
 00000004  DF00      SWI         0x0 ; DisEnableInterrupt?T
   47:  SysClkInit();  //系统时钟初始化
 00000006  F7FF      BL          SysClkInit?T  ; T=0x0001  (1)
 00000008  FFFB      BL          SysClkInit?T  ; T=0x0001  (2)
   49:  UART_init();   //串口初始化
 0000000A  F7FF      BL          UART_init?T  ; T=0x0001  (1)
 0000000C  FFF9      BL          UART_init?T  ; T=0x0001  (2)
   51:  DelayXms(100);  //延迟100ms
 0000000E  2064      MOV         R0,#0x64
 00000010  F7FF      BL          DelayXms?T  ; T=0x0001  (1)
ARM COMPILER V2.50a,  ARM_00_OS_main                                                       16/05/06  14:55:44  PAGE 4   

 00000012  FFF6      BL          DelayXms?T  ; T=0x0001  (2)
   53:  cls();         //清屏
 00000014  F7FF      BL          cls?T  ; T=0x0001  (1)
 00000016  FFF4      BL          cls?T  ; T=0x0001  (2)
   55:  prints("SystemStart",1);  //显示开机信息
 00000018  4800      LDR         R0,=??S_1 ; ??S_1
 0000001A  2101      MOV         R1,#0x1
 0000001C  F7FF      BL          prints?T  ; T=0x0001  (1)
 0000001E  FFF0      BL          prints?T  ; T=0x0001  (2)
   57:  OSInit();   //操作系统初始化
 00000020  F7FF      BL          OSInit?T  ; T=0x0001  (1)
 00000022  FFEE      BL          OSInit?T  ; T=0x0001  (2)
   59:  DelayXms(2000);   //延时2S
 00000024  4800      LDR         R0,=0x7D0
 00000026  F7FF      BL          DelayXms?T  ; T=0x0001  (1)
 00000028  FFEB      BL          DelayXms?T  ; T=0x0001  (2)
   61:  OSEnterCritical();  //进入临界段
 0000002A  F7FF      BL          OSEnterCritical?T  ; T=0x0001  (1)
 0000002C  FFE9      BL          OSEnterCritical?T  ; T=0x0001  (2)
   63:  EnableInterrupt(OS_I_Bit | OS_F_Bit);  //开中断
 0000002E  20C0      MOV         R0,#0xC0
 00000030  DF01      SWI         0x1 ; EnableInterrupt?T
   65:  OSTickInit();  //系统时钟节拍初始化
 00000032  F7FF      BL          OSTickInit?T  ; T=0x0001  (1)
 00000034  FFE5      BL          OSTickInit?T  ; T=0x0001  (2)
   67:  OSStart((uint32)OSSystemIdle,OS_THUMB_MODE);  //系统开始运行
 00000036  4800      LDR         R0,=OSSystemIdle?T ; OSSystemIdle?T
 00000038  2120      MOV         R1,#0x20
 0000003A  DF02      SWI         0x2 ; OSStart?T
   69: }
 0000003C  BC08      POP         {R3}
 0000003E  4718      BX          R3
 00000040          ENDP ; 'main'



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


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

⌨️ 快捷键说明

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