[riot-notifications] [RIOT-OS/RIOT] sys/shell: add heap command (#10953)
notifications at github.com
Tue Feb 5 18:32:14 CET 2019
### Contribution description
During the development of applications that are using dynamic memory by `malloc` and `free`, it is often helpful to get information about the current heap status. There was an old fragment of a `heap` shell command in the current master which was initially added only for `LPC2387` some years ago but removed with PR #3530 with the introduction of the `newlib_syscalls_default` module.
With this PR provides a module `heap_cmd` which introduces a more general implementation of this `heap` command for all platforms. If module `heap_cmd` is enabled shell command `heap` is added. This command calls a function `heap_stats` which should print the heap statistic `heap size`, `used bytes` and `free bytes`. The function is either realized by `newlib_syscalls_default` or by the CPU if the CPU declares that it has such a function by define `HAVE_HEAP_STATS`. If the function does not exist, it simply prints that the function is not supported.
Following platforms are supported:
- Platforms that use `newlib_syscalls_default` are working out of the box, e.g., all Cortex-M MCUs.
- AVR MCUs implement function `heap_stats`, the implementation requires PR #10934.
- MIPS32R2 CPUs implement function `heap_stats`.
- MSP430 CPUs implement function `heap_stats`, this implementation requires PR #10943 and #10944.
- ESP8266 and ESP32 implement function `heap_stats`
- FE310 CPU implements function `heap_stats`.
Following platforms are not supported:
The PR also includes a shell-based test application `tests/heap_cmd` by which additional commands `malloc` and `free` can be used to test the heap functions.
### Testing procedure
Use `test/heap_cmd` and execute commands `malloc`, `free` and `heap` to test.
### Issues/PRs references
Depends on PR #10934, #10943 and #10944.
You can view, comment on, or merge this pull request online at:
-- Commit Summary --
* sys/shell: pseudomodule heap_cmd added
* sys/shell: cleanup the heap command approach
* cpu/esp8266: changes for common heap command
* cpu/esp32: changes for common heap command
* cpu/atmega_common: changes for common heap command
* cpu/mips32r2_common: changes for heap command
* cpu/msp430_common: changes for heap command
* cpu/fe310: changes for common heap command
* tests/heap_cmd: shell-based heap function test app
-- File Changes --
M cpu/atmega_common/cpu.c (22)
M cpu/atmega_common/include/cpu_conf.h (5)
M cpu/esp32/include/cpu_conf.h (5)
M cpu/esp32/syscalls.c (44)
M cpu/esp8266/Makefile.dep (1)
M cpu/esp8266/syscalls.c (39)
M cpu/fe310/cpu.c (15)
M cpu/fe310/include/cpu_conf.h (5)
M cpu/mips32r2_common/Makefile.include (1)
M cpu/mips32r2_common/cpu.c (34)
M cpu/msp430_common/include/cpu_conf.h (5)
A cpu/msp430_common/malloc.c (458)
M makefiles/pseudomodules.inc.mk (1)
M sys/newlib_syscalls_default/syscalls.c (19)
M sys/shell/commands/Makefile (3)
M sys/shell/commands/sc_heap.c (12)
M sys/shell/commands/shell_commands.c (6)
A tests/heap_cmd/Makefile (12)
A tests/heap_cmd/README.md (5)
A tests/heap_cmd/main.c (68)
-- Patch Links --
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the notifications