From 85dca87ff38601023ce0eff17fe9fa503fd0faf6 Mon Sep 17 00:00:00 2001 From: Arti Zirk Date: Sat, 10 Sep 2016 00:57:01 +0300 Subject: [PATCH] Added assert test to main.c with stderr debug console output --- src/main.c | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/src/main.c b/src/main.c index cfc4fa3..4856966 100644 --- a/src/main.c +++ b/src/main.c @@ -1,18 +1,46 @@ +#include #include #include +#define __ASSERT_USE_STDERR +#include +#include "uart.h" -#define BLINK_DELAY_MS 1000 +#define BLINK_DELAY_MS 100 int main (void) { - /* set pin 25 of PORTB for output*/ + /* set pin 3 of PORTA for output*/ DDRA |= _BV(DDA3); + /* Init error console as stderr in UART3 and print user code info */ + uart3_init(); + stderr = &uart3_out; + fprintf(stderr, "Version: %s built on: %s %s\n", + GIT_DESCR, __DATE__, __TIME__); + fprintf(stderr, "avr-libc version: %s\n", __AVR_LIBC_VERSION_STRING__); + /*End UART3 init and info print */ + /* Test assert - REMOVE IN FUTURE LABS */ + char *array; + uint32_t i = 1; + extern int __heap_start, *__brkval; + int v; + array = malloc( i * sizeof(char)); + assert(array); + /* End test assert */ while (1) { - /* set pin 25 high to turn led on */ + /* set pin 3 high to turn led on */ PORTA |= _BV(PORTA3); _delay_ms(BLINK_DELAY_MS); - /* set pin 25 low to turn led off */ + /* Test assert - REMOVE IN FUTURE LABS */ + /* Increase memory allocated for array by 100 chars + * until we have eaten it all and print space between Stack and Heap. + * Thats how assert works in run-time */ + array = realloc( array, (i++ * 100) * sizeof(char)); + fprintf(stderr, "%d ", + (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval)); + assert(array); + /* End test assert */ + /* set pin 3 low to turn led off */ PORTA &= ~_BV(PORTA3); _delay_ms(BLINK_DELAY_MS); }