diff options
author | Leo C | 2018-07-21 12:15:44 +0200 |
---|---|---|
committer | Leo C | 2018-07-21 12:15:44 +0200 |
commit | fb9b17a9518501c3de8eb6858e887b40328364c6 (patch) | |
tree | 1d5c153c8ff3ceba9d846d32805fd64508a888c9 | |
parent | b5251896f0f5eab98408808848b6236d234b370e (diff) | |
download | z180-stamp-fb9b17a9518501c3de8eb6858e887b40328364c6.zip |
Set __malloc_margin, Print free heap command
# Conflicts:
# include/config.h
-rw-r--r-- | avr/command_tbl.c | 6 | ||||
-rw-r--r-- | avr/debug.c | 12 | ||||
-rw-r--r-- | avr/main.c | 1 | ||||
-rw-r--r-- | include/config.h | 1 |
4 files changed, 15 insertions, 5 deletions
diff --git a/avr/command_tbl.c b/avr/command_tbl.c index 7e7ccee..7f75397 100644 --- a/avr/command_tbl.c +++ b/avr/command_tbl.c @@ -37,6 +37,7 @@ extern command_ret_t do_fat(cmd_tbl_t *, int, int, char * const []); extern command_ret_t do_run(cmd_tbl_t *, int, int, char * const []); extern command_ret_t do_source(cmd_tbl_t *, int, int, char * const []); extern command_ret_t do_attach(cmd_tbl_t *, int, int, char * const []); +extern command_ret_t do_pr_free_avr(cmd_tbl_t *, int, int, char * const []); #ifdef CONFIG_SYS_LONGHELP const FLASH char sd_help_text[] = @@ -87,6 +88,11 @@ CMD_TBL_ITEM( "avr memory modify (constant address)", "address" ), +CMD_TBL_ITEM( + !prfree, 2, 1, do_pr_free_avr, + "print avr heap free list", + "address" +), #endif CMD_TBL_ITEM( mstep, 2, 1, do_busreq_pulse, diff --git a/avr/debug.c b/avr/debug.c index 1b4ecc2..46e2ef6 100644 --- a/avr/debug.c +++ b/avr/debug.c @@ -142,7 +142,6 @@ static command_ret_t mod_mem_avr(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char * const argv[]) { uint8_t *addr; - uint8_t data; int nbytes; (void) cmdtp; @@ -168,7 +167,7 @@ mod_mem_avr(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char * const arg * the next value. A non-converted value exits. */ do { - data = *addr; + uint8_t data = *addr; printf_P(PSTR("%04x: %02x"), addr, data); nbytes = cli_readline(PSTR(" ? "), 0); @@ -208,8 +207,6 @@ command_ret_t do_mem_nm_avr(cmd_tbl_t *cmdtp, int flag, int argc, char * const a /*------------------------------------------------------------------------------*/ -#if 1 - struct __freelist { size_t sz; struct __freelist *nx; @@ -250,6 +247,11 @@ printfreelist(const char * title) (size_t) STACK_POINTER(), (size_t) __brkval, freesum); } -#endif +command_ret_t do_pr_free_avr(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{ + printfreelist(NULL); + + return CMD_RET_SUCCESS; +} #endif /* DEBUG */ @@ -246,6 +246,7 @@ int main(void) { extern void setup_mmc(void); + __malloc_margin = CONFIG_SYS_MALLOC_MARGIN; setup_avr(); for (int i = 0; i < GPIO_MAX; i++) gpio_config(i, INPUT_PULLUP); diff --git a/include/config.h b/include/config.h index 54cbc98..f5bccb9 100644 --- a/include/config.h +++ b/include/config.h @@ -66,6 +66,7 @@ #define CONFIG_SYS_MAXARGS 20 #define CONFIG_SYS_ENV_NAMELEN 16 #define CONFIG_SYS_HISTSIZE (CONFIG_SYS_CBSIZE*2) +#define CONFIG_SYS_MALLOC_MARGIN 256 #define CONFIG_SYS_PROMPT "-> " #define CONFIG_SYS_PROMPT_REPEAT "=> " |