When we ported BASIC to the Pokitto, we wanted to be able to support both C and BASIC program development and allow users to easily switch back and forth. To do that we modified our C IDE to be able to use the BASIC firmware for setup and a number of firmware built in routines.
Our IDE still supports bare metal development on more than 30 ARM CPUs, and this simplifies the intialization code for users. This is illustrated in a simple example.
int main(void) {
printf("Hello World\n");
}
versus bare metal setup
#include "coridium_pcb.h" // this one is required for the proper CPU configures
#include "printf.h"
#include "uart.h"
#include "breakpoint.h"
#include "adc.h"
int main(void) {
SystemInit(); // initializes clocks
UART_init(0,115200); // turns on UART0
systick_init(); // sets up SysTick as the TIMER 1usec tick
setup_chip();
initAD();
printf("Hello World\n");
}