//
// This file is part of the GNU ARM Eclipse distribution.
// Copyright (c) 2014 Liviu Ionescu.
//

#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>

#include "stack.h"
#include "queue.h"
#include "kernel.h"
#include "board.h"
#include "driver.h"

// Sample pragmas to cope with warnings. Please note the related line at
// the end of this function, used to pop the compiler diagnostics status.
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wmissing-declarations"
#pragma GCC diagnostic ignored "-Wreturn-type"

#define TH_STACK_SIZE  256
stack_t th_stack[TH_STACK_SIZE];
struct thread_context th_ctx;
static void th_func(void *arg)
{
	drv_open(&gpio_d12);
	drv_write(&gpio_d12, "0", 1);
	while(1) {
		sleep_ms(1000);
		drv_write(&gpio_d12, "1", 1);
		sleep_ms(1000);
		drv_write(&gpio_d12, "0", 1);
	}
}


int main(int argc, char* argv[])
{
	board_init();
	thread_create(&th_ctx, th_stack, TH_STACK_SIZE, th_func, NULL, THREAD_PRIO_LOW);

	schedule_start();

	return 0;
}

#pragma GCC diagnostic pop
