X-Git-Url: https://robinkrens.nl/gitweb/?a=blobdiff_plain;f=main.c;h=30c4244786f9c1eab17ea40d87eb040c4ee8413a;hb=fdc185692bbf417f3f358a7c4c9975d09ac42892;hp=2b6fdbae3a3a078f57126b98f90e65c0e1784de9;hpb=41d25ed67df8b6acd6126c41c8b0882586db0b0d;p=cortex-from-scratch diff --git a/main.c b/main.c index 2b6fdba..30c4244 100644 --- a/main.c +++ b/main.c @@ -1,57 +1,91 @@ +/* (CC-BY-NC-SA) ROBIN KRENS - ROBIN @ ROBINKRENS.NL + * + * $LOG$ + * 2019/7/20 - ROBIN KRENS + * Initial version + * + * $DESCRIPTION$ + * Main initialize basic components of the board + * and jumps to a terminal + * + * */ + #include #include #include -#include // <-- my own header file located located in ./include -#include +#include +#include -void *memcpy(void *dest, void *src, size_t count) -{ - const char *sp = (const char *)src; - char *dp = (char *)dest; - for(; count != 0; count--) *dp++ = *sp++; - return dest; -} +#include +#include +#include -/* fillout memory with 'val' (i.e. all zeroes) - */ -void *memset(void *dest, unsigned char val, size_t count) -{ - char *temp = (char *)dest; - for( ; count != 0; count--) *temp++ = val; - return dest; -} +#include +#include +//#include +//#include +//#include +//#include +#include -/* same as above but shorter */ -unsigned short *memsetw(unsigned short *dest, unsigned short val, size_t count) +void main() { - unsigned short *temp = (unsigned short *)dest; - for( ; count != 0; count--) *temp++ = val; - return dest; -} -int strlen(const char *str) -{ - int retval; - for(retval = 0; *str != '\0'; str++) retval++; - return retval; -} + /* Initialize the clock system, */ + clock_init(); + /* Setup the interrupt vector table */ + ivt_init(); + /* Initialze basic input and output over serial */ + uart_init(); + /* Cortex M* integrated systick, can be replaced + * by the more accurate RTC. + systick_init(); + */ + -void main() -{ + /* Set up a very small libc library */ + init_printf(NULL, putc); - ivt_init(); - uart_init(); + /* Display some basic info at startup */ + sysinfo(); + + /* On board LEDs*/ + led_init(); + + /* Real time clock */ + //rtc_init(); - systick_init(); + /* Eeprom Driver + eeprom_at24c_init(); + eeprom_test(); + */ - sysinfo(); + /* LED Segment Driver */ + //tm1637_init(); - terminal(); + /* ASM Blocking routine */ + //for (int i = 0; i < 1000; i++) + // _block(10000); + + /* TEMP SENSOR + tsensor_printid(); + uint16_t temp = tsensor_get_temp(); + printf("Current temperature: %d °C\n", temp); */ + + /* ADC Joystick module */ + // mk450_init(); + /* TFT screen */ + tft_init(); + + /* Start up terminal */ + terminal(); + + /* Should not be here, endless loop */ for(;;) { }