crashtest-r0ket/firmware/main.c

86 lines
1.8 KiB
C
Raw Permalink Normal View History

#include <sysinit.h>
2011-07-18 16:25:14 +00:00
#include "core/cpu/cpu.h"
#include "core/pmu/pmu.h"
2011-07-18 16:25:14 +00:00
#include "basic/basic.h"
2012-01-28 18:42:44 +00:00
#include "basic/config.h"
#include "lcd/render.h"
2012-01-28 18:42:44 +00:00
#include "lcd/print.h"
#include "usb/usbmsc.h"
2011-08-01 03:22:24 +00:00
#include "filesystem/ff.h"
#ifdef CRP1
#define CRP_VALUE 0x12345678 // CRP1
#endif
#ifdef CRP2
#define CRP_VALUE 0x87654321 // CRP2
#endif
#ifdef CRP3
#define CRP_VALUE 0x43218765 // CRP3
#endif
#ifdef NO_ISP
#define CRP_VALUE 0x4e697370 // NO_ISP
#endif
#ifndef CRP_VALUE
#define CRP_VALUE 0x0 // ANY non-magic value disables CRP
#endif
2011-12-11 15:13:29 +00:00
//__attribute__ ((used, section("crp"))) const uint32_t the_crp=CRP_VALUE;
/**************************************************************************/
void wrapper(void);
2012-01-28 18:42:44 +00:00
void main(void) {
// Configure cpu and mandatory peripherals
cpuInit(); // Configure the CPU
// we do it later
// systickInit(CFG_SYSTICK_DELAY_IN_MS); // Start systick timer
// cpuInit already calls this
// gpioInit(); // Enable GPIO
pmuInit(); // Configure power management
adcInit(); // Config adc pins to save power
// initialise basic badge functions
rbInit();
initUUID(); // Cache UUID values.
lcdInit(); // display
lcdFill(0);
lcdDisplay();
2011-12-17 21:32:49 +00:00
2011-12-23 12:22:13 +00:00
switch(getInputRaw()){
case BTN_ENTER:
lcdPrint("ISP active");
lcdRefresh();
ReinvokeISP();
break;
case BTN_DOWN:
lcdPrint("MSC active");
lcdRefresh();
usbMSCInit();
while(1);
break;
};
2011-12-17 21:32:49 +00:00
fsInit();
2011-12-23 12:22:13 +00:00
if( getInputRaw() == BTN_UP ){ // Reset config
saveConfig();
}
wrapper(); // see module/ subdirectory
}
int getrelease(void){
return 0x0000010e;
};