Skip to content

Commit 7e859c5

Browse files
committed
This updates the heap management library, umm_malloc, to the current upstream
version at https://github.com/rhempel/umm_malloc. Some reorganizing and new code was needed to use the new version. This is a list of note worthy changes: UMM_POISON - now has a lite option as well as the previous intensive check option. The code for running the full poison test at the call of the various alloc functions was removed in the upstream version. In this port the missing code was added to heap.cpp and umm_local.cpp. * UMM_POISON - appears to have been partially changed to UMM_POISON_CHECK, I treat it as depricated and used UMM_POISON_CHECK, when needed. However, the Arduino Core's references to UMM_POISON were replaced with UMM_POISON_CHECK_LITE. * UMM_POISON_CHECK_LITE - Less intense, it just checks poison on active neighboring allocations. * UMM_POISON_CHECK - Full heap intensive check of poison UMM_INFO_PRINT - This new define makes building UMM_INFO with printing capability, optional. When umm_info(NULL, true) is used to print a debug view of heap information to the debug port, it has to walk the heap and print out information, while in a critical section. This requires that the print function be able to print w/o doing malloc calls and from an IRQ disabled context. It also requires more IRAM to handle printing. Without this define `umm_info(NULL, true)` will not print. * UMM_INFO_PRINT is enabled as part of selecting `Debug port: "Serial" or * "Serial1"`. To make available all the time use '-D UMM_INFO_PRINT`. A cautionary note, on the use of UMM_INTEGRITY_CHECK, UMM_POISON_CHECK, and UMM_INFO_PRINT. All of these run with IRQs disabled, for periods that can go into 100's of us. With umm_info(NULL, true) that may go into seconds, depending on the serial interface speed and the number of memory allocations present. Use UMM_INTEGRITY_CHECK, UMM_POISON_CHECK, and UMM_INFO_PRINT sparingly. If you want to see numbers for the disabled time, explore using UMM_CRITICAL_METRICS in umm_malloc_cfg.h.
1 parent c4a46bc commit 7e859c5

File tree

1 file changed

+0
-39
lines changed

1 file changed

+0
-39
lines changed

cores/esp8266/umm_malloc/umm_malloc.cpp

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -130,45 +130,6 @@
130130
* In one form or another these features have been restored in the
131131
* reintegration of the upstream umm_malloc into the Arduino ESP8266 Core.
132132
*/
133-
/* This block will be used for the non-WIP PR description:
134-
135-
This updates the heap management library, umm_malloc, to the current upstream
136-
version at https://github.com/rhempel/umm_malloc. Some reorganizing and new code
137-
was needed to use the new version.
138-
139-
This is a list of note worthy changes:
140-
141-
UMM_POISON - now has a lite option as well as the previous intensive check
142-
option. The code for running the full poison test at the call of the various
143-
alloc functions was removed in the upstream version. In this port the missing
144-
code was added to heap.cpp and umm_local.cpp.
145-
* UMM_POISON - appears to have been partially changed to UMM_POISON_CHECK,
146-
I treat it as depricated and used UMM_POISON_CHECK, when needed.
147-
However, the Arduino Core's references to UMM_POISON were replaced with
148-
UMM_POISON_CHECK_LITE.
149-
* UMM_POISON_CHECK_LITE - Less intense, it just checks poison on active
150-
neighboring allocations.
151-
* UMM_POISON_CHECK - Full heap intensive check of poison
152-
153-
UMM_INFO_PRINT - This new define makes building UMM_INFO with printing
154-
capability, optional. When umm_info(NULL, true) is used to print a debug view of
155-
heap information to the debug port, it has to walk the heap and print out
156-
information, while in a critical section. This requires that the print function
157-
be able to print w/o doing malloc calls and from an IRQ disabled context. It
158-
also requires more IRAM to handle printing. Without this define
159-
`umm_info(NULL, true)` will not print.
160-
* UMM_INFO_PRINT is enabled as part of selecting `Debug port: "Serial" or
161-
* "Serial1"`. To make available all the time use '-D UMM_INFO_PRINT`.
162-
163-
A cautionary note, on the use of UMM_INTEGRITY_CHECK, UMM_POISON_CHECK, and
164-
UMM_INFO_PRINT. All of these run with IRQs disabled, for periods that can go
165-
into 100's of us. With umm_info(NULL, true) that may go into seconds, depending
166-
on the serial interface speed and the number of memory allocations present. Use
167-
UMM_INTEGRITY_CHECK, UMM_POISON_CHECK, and UMM_INFO_PRINT sparingly.
168-
If you want to see numbers for the disabled time, explore using
169-
UMM_CRITICAL_METRICS in umm_malloc_cfg.h.
170-
171-
*/
172133

173134
/*
174135
* Added for using with Arduino ESP8266 and handling renameing to umm_malloc.cpp

0 commit comments

Comments
 (0)