48 lines
1.5 KiB
C
48 lines
1.5 KiB
C
#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 100
|
|
|
|
int main (void)
|
|
{
|
|
/* 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 3 high to turn led on */
|
|
PORTA |= _BV(PORTA3);
|
|
_delay_ms(BLINK_DELAY_MS);
|
|
/* 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);
|
|
}
|
|
}
|