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

📄 ggt_mem.lst

📁 ARM下的多任务操作系统源码:GogotoOS
💻 LST
字号:
ARM COMPILER V2.32a,  GGT_Mem                                                              08/01/08  23:14:17  PAGE 1   


ARM COMPILER V2.32a, COMPILATION OF MODULE GGT_Mem
OBJECT MODULE PLACED IN .\Output\GGT_Mem.obj
COMPILER INVOKED BY: D:\Program Files\Keil\ARM\BIN\CA.exe Source\Kernel\GGT_Mem.c ARM BROWSE DEBUG PRINT(.\LIST\GGT_MEM.
                    -LST) TABS(4) OBJECT(.\Output\GGT_Mem.obj) 

stmt  level    source

    1          /****************************************************************************************************
    2          **                                        Gogoto OS
    3          **                           (c) Copyright 2007-2008, luyigui(卢益贵)
    4          **                                     All Rights Reserved
    5          **                                         V1.00.0
    6          **
    7          **                             狗狗兔嵌入式多任务系统(基于消息机制)    
    8          **                       绿城代码、GGT-OS、Gogoto OS、狗狗兔嵌入式、狗狗兔系统
    9          **                                      QQ:48092788
   10          **
   11          **------------------文件信息------------------------------------------------------------------------
   12          **  文件名: GGT_Mem.c
   13          **  创建人: 卢益贵
   14          **  日 期: 2007年12月8日
   15          **  版  本: V1.00.0
   16          **  描  述: Gogoto OS 内存功能单元,提供简单的默认大小的内存管理,可在CPU许可范围内设置比系统需求大的
   17                      内存空间,提供给各个任务使用
   18          **
   19          
   20          **------------------修改记录------------------------------------------------------------------------
   21          **  修改人: 卢益贵
   22          **  版  本: V1.20.0
   23          **  日 期: 2008年1月8日
   24          **  描 述:
   25          **
   26          
   27          ****************************************************************************************************/
   28          
   29          #define OS_SIZE_MEM     80
   30          #define OS_SUM_MEM      20
   31          
   32          #include        <GGT_OS.h>
   33          #include        <GGT_Func.h>
   34          
   35          UINT8 OSBoxMem[sizeof(_BoxHead) + OS_SIZE_MEM * OS_SUM_MEM];
   36          _Mut    MutMem;
   37          
   38          /****************************************************************************************************
   39          **  函数名: OSTimerInit
   40          **  描  述: 初始化内存空间
   41          **  输 入: 无
   42          **  输 出: 无
   43          **  创建人: 卢益贵
   44          **  日 期: 2007年12月8日
   45          
   46          **------------------修改记录------------------------------------------------------------------------
   47          **  修改人: 
   48          **  日 期:
   49          **  说  明:
   50          **  原代码:
   51          **--------------------------------------------------------------------------------------------------
   52          ****************************************************************************************************/
   53          
   54          void OSMemInit(void)
   55          {
   56   1          OSMutInit(&MutMem);
   57   1          BoxInit(OSBoxMem, sizeof(_BoxHead) + OS_SUM_MEM * OS_SIZE_MEM, OS_SIZE_MEM);
   58   1      }
ARM COMPILER V2.32a,  GGT_Mem                                                              08/01/08  23:14:17  PAGE 2   

   59          
   60          /****************************************************************************************************
   61          **  函数名: OSMemGet
   62          **  描  述: 内存分配
   63          **  输 入: 无
   64          **  输 出: 内存指针
   65          **  创建人: 卢益贵
   66          **  日 期: 2007年12月8日
   67          
   68          **------------------修改记录------------------------------------------------------------------------
   69          **  修改人: 
   70          **  日 期:
   71          **  说  明:
   72          **  原代码:
   73          **--------------------------------------------------------------------------------------------------
   74          ****************************************************************************************************/
   75          void *OSMemGet(void)
   76          {
   77   1          void *R;
   78   1      
   79   1          OSMutWait(&MutMem);
   80   1          R = BoxAlloc(OSBoxMem);
   81   1          OSMutRelease(&MutMem);
   82   1          return(R);
   83   1      }
   84          
   85          /****************************************************************************************************
   86          **  函数名: OSMemFree
   87          **  描  述: 内存释放
   88          **  输 入: pMem:内存指针
   89          **  输 出: 无
   90          **  创建人: 卢益贵
   91          **  日 期: 2007年12月8日
   92          
   93          **------------------修改记录------------------------------------------------------------------------
   94          **  修改人: 
   95          **  日 期:
   96          **  说  明:
   97          **  原代码:
   98          **--------------------------------------------------------------------------------------------------
   99          ****************************************************************************************************/
  100          void OSMemFree(void *pMem)
  101          {
  102   1          OSMutWait(&MutMem);
  103   1          BoxFree(OSBoxMem, pMem);
  104   1          OSMutRelease(&MutMem);
  105   1      }
ARM COMPILER V2.32a,  GGT_Mem                                                              08/01/08  23:14:17  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** EXTERNALS:
 EXTERN CODE32 (OSMutWait?A)
 EXTERN CODE32 (OSMutRelease?A)
 EXTERN CODE32 (OSMutInit?A)
 EXTERN CODE32 (BoxInit?A)
 EXTERN CODE32 (BoxAlloc?A)
 EXTERN CODE32 (BoxFree?A)



*** PUBLICS:
 PUBLIC         OSMemInit?A
 PUBLIC         OSMemGet?A
 PUBLIC         OSMemFree?A
 PUBLIC         OSBoxMem
 PUBLIC         MutMem



*** DATA SEGMENT '?DT0?GGT_Mem':
 00000000          MutMem:
 00000000            DS          16
 00000010          OSBoxMem:
 00000010            DS          1604



*** CODE SEGMENT '?PR?OSMemInit?A?GGT_Mem':
   54: void OSMemInit(void)
 00000000  E92D4000  STMDB       R13!,{LR}
   56:     OSMutInit(&MutMem);
 00000004  E5100000  LDR         R0,=MutMem ; MutMem
 00000008  EBFFFFFC  BL          OSMutInit?A  ; Targ=0x0
   57:     BoxInit(OSBoxMem, sizeof(_BoxHead) + OS_SUM_MEM * OS_SIZE_MEM, OS_SIZE_MEM);
 0000000C  E5100000  LDR         R0,=OSBoxMem ; OSBoxMem
 00000010  E5101000  LDR         R1,=0x644
 00000014  E3A02050  MOV         R2,#0x50
 00000018  EBFFFFF8  BL          BoxInit?A  ; Targ=0x0
   58: }
 0000001C  E8BD0008  LDMIA       R13!,{R3}
 00000020  E12FFF13  BX          R3
 00000024          ENDP ; 'OSMemInit?A'


*** CODE SEGMENT '?PR?OSMemGet?A?GGT_Mem':
   75: void *OSMemGet(void)
 00000000  E92D4010  STMDB       R13!,{R4,LR}
   76: {
 00000004            ; SCOPE-START
   79:     OSMutWait(&MutMem);
 00000004  E5100000  LDR         R0,=MutMem ; MutMem
 00000008  EBFFFFFC  BL          OSMutWait?A  ; Targ=0x0
   80:     R = BoxAlloc(OSBoxMem);
 0000000C  E5100000  LDR         R0,=OSBoxMem ; OSBoxMem
 00000010  EBFFFFFA  BL          BoxAlloc?A  ; Targ=0x0
 00000014  E1A04000  MOV         R4,R0 ; R
 00000018  ---- Variable 'R' assigned to Register 'R4' ----
   81:     OSMutRelease(&MutMem);
 00000018  E5100000  LDR         R0,=MutMem ; MutMem
 0000001C  EBFFFFF7  BL          OSMutRelease?A  ; Targ=0x0
   82:     return(R);
 00000020  E1A00004  MOV         R0,R4 ; R
 00000024            ; SCOPE-END
   83: }
 00000024  E8BD0010  LDMIA       R13!,{R4}
 00000028  E8BD0008  LDMIA       R13!,{R3}
 0000002C  E12FFF13  BX          R3
 00000030          ENDP ; 'OSMemGet?A'


*** CODE SEGMENT '?PR?OSMemFree?A?GGT_Mem':
  100: void OSMemFree(void *pMem)
 00000000  E92D4010  STMDB       R13!,{R4,LR}
ARM COMPILER V2.32a,  GGT_Mem                                                              08/01/08  23:14:17  PAGE 4   

 00000004  E1A04000  MOV         R4,R0 ; pMem
 00000008  ---- Variable 'pMem' assigned to Register 'R4' ----
  102:     OSMutWait(&MutMem);
 00000008  E5100000  LDR         R0,=MutMem ; MutMem
 0000000C  EBFFFFFB  BL          OSMutWait?A  ; Targ=0x0
  103:     BoxFree(OSBoxMem, pMem);
 00000010  E5100000  LDR         R0,=OSBoxMem ; OSBoxMem
 00000014  E1A01004  MOV         R1,R4 ; pMem
 00000018  EBFFFFF8  BL          BoxFree?A  ; Targ=0x0
  104:     OSMutRelease(&MutMem);
 0000001C  E5100000  LDR         R0,=MutMem ; MutMem
 00000020  EBFFFFF6  BL          OSMutRelease?A  ; Targ=0x0
  105: }
 00000024  E8BD0010  LDMIA       R13!,{R4}
 00000028  E8BD0008  LDMIA       R13!,{R3}
 0000002C  E12FFF13  BX          R3
 00000030          ENDP ; 'OSMemFree?A'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =      1620
  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 + -