📄 ggt_mem.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 + -