📄 heap_3.lst
字号:
1 .code 16
2 .file "heap_3.c"
10 .Ltext0:
11 .align 2
12 .global vPortFree
13 .code 16
14 .thumb_func
16 vPortFree:
17 .LFB3:
18 .file 1 "rtos/Source/portable/MemMang/heap_3.c"
1:rtos/Source/portable/MemMang/heap_3.c **** /*
2:rtos/Source/portable/MemMang/heap_3.c **** FreeRTOS.org V4.1.1 - Copyright (C) 2003-2006 Richard Barry.
3:rtos/Source/portable/MemMang/heap_3.c ****
4:rtos/Source/portable/MemMang/heap_3.c **** This file is part of the FreeRTOS.org distribution.
5:rtos/Source/portable/MemMang/heap_3.c ****
6:rtos/Source/portable/MemMang/heap_3.c **** FreeRTOS.org is free software; you can redistribute it and/or modify
7:rtos/Source/portable/MemMang/heap_3.c **** it under the terms of the GNU General Public License as published by
8:rtos/Source/portable/MemMang/heap_3.c **** the Free Software Foundation; either version 2 of the License, or
9:rtos/Source/portable/MemMang/heap_3.c **** (at your option) any later version.
10:rtos/Source/portable/MemMang/heap_3.c ****
11:rtos/Source/portable/MemMang/heap_3.c **** FreeRTOS.org is distributed in the hope that it will be useful,
12:rtos/Source/portable/MemMang/heap_3.c **** but WITHOUT ANY WARRANTY; without even the implied warranty of
13:rtos/Source/portable/MemMang/heap_3.c **** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14:rtos/Source/portable/MemMang/heap_3.c **** GNU General Public License for more details.
15:rtos/Source/portable/MemMang/heap_3.c ****
16:rtos/Source/portable/MemMang/heap_3.c **** You should have received a copy of the GNU General Public License
17:rtos/Source/portable/MemMang/heap_3.c **** along with FreeRTOS.org; if not, write to the Free Software
18:rtos/Source/portable/MemMang/heap_3.c **** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19:rtos/Source/portable/MemMang/heap_3.c ****
20:rtos/Source/portable/MemMang/heap_3.c **** A special exception to the GPL can be applied should you wish to distribute
21:rtos/Source/portable/MemMang/heap_3.c **** a combined work that includes FreeRTOS.org, without being obliged to provide
22:rtos/Source/portable/MemMang/heap_3.c **** the source code for any proprietary components. See the licensing section
23:rtos/Source/portable/MemMang/heap_3.c **** of http://www.FreeRTOS.org for full details of how and when the exception
24:rtos/Source/portable/MemMang/heap_3.c **** can be applied.
25:rtos/Source/portable/MemMang/heap_3.c ****
26:rtos/Source/portable/MemMang/heap_3.c **** ***************************************************************************
27:rtos/Source/portable/MemMang/heap_3.c **** See http://www.FreeRTOS.org for documentation, latest information, license
28:rtos/Source/portable/MemMang/heap_3.c **** and contact details. Please ensure to read the configuration and relevant
29:rtos/Source/portable/MemMang/heap_3.c **** port sections of the online documentation.
30:rtos/Source/portable/MemMang/heap_3.c **** ***************************************************************************
31:rtos/Source/portable/MemMang/heap_3.c **** */
32:rtos/Source/portable/MemMang/heap_3.c ****
33:rtos/Source/portable/MemMang/heap_3.c ****
34:rtos/Source/portable/MemMang/heap_3.c **** /*
35:rtos/Source/portable/MemMang/heap_3.c **** * Implementation of pvPortMalloc() and vPortFree() that relies on the
36:rtos/Source/portable/MemMang/heap_3.c **** * compilers own malloc() and free() implementations.
37:rtos/Source/portable/MemMang/heap_3.c **** *
38:rtos/Source/portable/MemMang/heap_3.c **** * This file can only be used if the linker is configured to to generate
39:rtos/Source/portable/MemMang/heap_3.c **** * a heap memory area.
40:rtos/Source/portable/MemMang/heap_3.c **** *
41:rtos/Source/portable/MemMang/heap_3.c **** * See heap_2.c and heap_1.c for alternative implementations, and the memory
42:rtos/Source/portable/MemMang/heap_3.c **** * management pages of http://www.FreeRTOS.org for more information.
43:rtos/Source/portable/MemMang/heap_3.c **** */
44:rtos/Source/portable/MemMang/heap_3.c ****
45:rtos/Source/portable/MemMang/heap_3.c **** #include <stdlib.h>
46:rtos/Source/portable/MemMang/heap_3.c ****
47:rtos/Source/portable/MemMang/heap_3.c **** #include "FreeRTOS.h"
48:rtos/Source/portable/MemMang/heap_3.c **** #include "task.h"
49:rtos/Source/portable/MemMang/heap_3.c ****
50:rtos/Source/portable/MemMang/heap_3.c **** /*-----------------------------------------------------------*/
51:rtos/Source/portable/MemMang/heap_3.c ****
52:rtos/Source/portable/MemMang/heap_3.c **** void *pvPortMalloc( size_t xWantedSize )
53:rtos/Source/portable/MemMang/heap_3.c **** {
54:rtos/Source/portable/MemMang/heap_3.c **** void *pvReturn;
55:rtos/Source/portable/MemMang/heap_3.c ****
56:rtos/Source/portable/MemMang/heap_3.c **** vTaskSuspendAll();
57:rtos/Source/portable/MemMang/heap_3.c **** {
58:rtos/Source/portable/MemMang/heap_3.c **** pvReturn = malloc( xWantedSize );
59:rtos/Source/portable/MemMang/heap_3.c **** }
60:rtos/Source/portable/MemMang/heap_3.c **** xTaskResumeAll();
61:rtos/Source/portable/MemMang/heap_3.c ****
62:rtos/Source/portable/MemMang/heap_3.c **** return pvReturn;
63:rtos/Source/portable/MemMang/heap_3.c **** }
64:rtos/Source/portable/MemMang/heap_3.c **** /*-----------------------------------------------------------*/
65:rtos/Source/portable/MemMang/heap_3.c ****
66:rtos/Source/portable/MemMang/heap_3.c **** void vPortFree( void *pv )
67:rtos/Source/portable/MemMang/heap_3.c **** {
19 {r4, lr}
20 0000 10B5 .LCFI0:
21 .LVL0:
22 .loc 1 67 0
23 mov r4, r0
24 0002 041C .loc 1 68 0
68:rtos/Source/portable/MemMang/heap_3.c **** if( pv )
25 0, #0
26 0004 0028 beq .L4
27 0006 06D0 .loc 1 70 0
69:rtos/Source/portable/MemMang/heap_3.c **** {
70:rtos/Source/portable/MemMang/heap_3.c **** vTaskSuspendAll();
28 vTaskSuspendAll
29 0008 FFF7FEFF .LVL1:
30 .loc 1 72 0
71:rtos/Source/portable/MemMang/heap_3.c **** {
72:rtos/Source/portable/MemMang/heap_3.c **** free( pv );
31 v r0, r4
32 000c 201C bl free
33 000e FFF7FEFF .loc 1 74 0
73:rtos/Source/portable/MemMang/heap_3.c **** }
74:rtos/Source/portable/MemMang/heap_3.c **** xTaskResumeAll();
34 xTaskResumeAll
35 0012 FFF7FEFF .LVL2:
36 .L4:
37 .loc 1 76 0
75:rtos/Source/portable/MemMang/heap_3.c **** }
76:rtos/Source/portable/MemMang/heap_3.c **** }
38 p needed for prologue
39 .LVL3:
40 pop {r4}
41 0016 10BC pop {r0}
42 0018 01BC bx r0
43 001a 0047 .LFE3:
45 .align 2
46 .global pvPortMalloc
47 .code 16
48 .thumb_func
50 pvPortMalloc:
51 .LFB2:
52 .loc 1 53 0
53 push {r4, lr}
54 001c 10B5 .LCFI1:
55 .LVL4:
56 .loc 1 53 0
57 mov r4, r0
58 001e 041C .loc 1 56 0
59 bl vTaskSuspendAll
60 0020 FFF7FEFF .LVL5:
61 .loc 1 58 0
62 mov r0, r4
63 0024 201C bl malloc
64 0026 FFF7FEFF mov r4, r0
65 002a 041C .LVL6:
66 .loc 1 60 0
67 bl xTaskResumeAll
68 002c FFF7FEFF .loc 1 63 0
69 mov r0, r4
70 0030 201C @ sp needed for prologue
71 pop {r4}
72 0032 10BC pop {r1}
73 0034 02BC bx r1
74 0036 0847 .LFE2:
76 .section .debug_frame,"",%progbits
126 .section .debug_loc,"",%progbits
DEFINED SYMBOLS
*ABS*:00000000 heap_3.c
c:\DOCUME~1\Reggie\LOCALS~1\Temp/ccKKaaaa.s:1 .text:00000000 $t
c:\DOCUME~1\Reggie\LOCALS~1\Temp/ccKKaaaa.s:16 .text:00000000 vPortFree
c:\DOCUME~1\Reggie\LOCALS~1\Temp/ccKKaaaa.s:51 .text:0000001c pvPortMalloc
UNDEFINED SYMBOLS
vTaskSuspendAll
free
xTaskResumeAll
malloc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -