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 <avr/io.h>
|
||||||
#include <util/delay.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)
|
int main (void)
|
||||||
{
|
{
|
||||||
/* set pin 25 of PORTB for output*/
|
/* set pin 3 of PORTA for output*/
|
||||||
DDRA |= _BV(DDA3);
|
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) {
|
while (1) {
|
||||||
/* set pin 25 high to turn led on */
|
/* set pin 3 high to turn led on */
|
||||||
PORTA |= _BV(PORTA3);
|
PORTA |= _BV(PORTA3);
|
||||||
_delay_ms(BLINK_DELAY_MS);
|
_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);
|
PORTA &= ~_BV(PORTA3);
|
||||||
_delay_ms(BLINK_DELAY_MS);
|
_delay_ms(BLINK_DELAY_MS);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user