Added assert test to main.c with stderr debug console output
This commit is contained in:
parent
ae55fbac04
commit
85dca87ff3
36
src/main.c
36
src/main.c
@ -1,18 +1,46 @@
|
||||
#include <stdio.h>
|
||||
#include <avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#define __ASSERT_USE_STDERR
|
||||
#include <assert.h>
|
||||
#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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user