altos: Switch to newlib-nano for libc on arm
[fw/altos] / src / lpc / ao_arch.h
index 99c646f9361018a3f55cee9713caf7c8e2e38e53..f1df14eb61ddb712097940d0558d9d3662dd06db 100644 (file)
@@ -3,7 +3,8 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
  * LPC11U14 definitions and code fragments for AltOS
  */
 
+#ifndef AO_STACK_SIZE
 #define AO_STACK_SIZE  512
+#endif
+
+#define AO_PORT_TYPE   uint32_t
 
-#define AO_LED_TYPE    uint16_t
+#define AO_LED_TYPE    AO_PORT_TYPE
 
 #ifndef AO_TICK_TYPE
 #define AO_TICK_TYPE   uint16_t
 
 #define ao_arch_interrupt(n)   /* nothing */
 
-#undef putchar
-#undef getchar
-#define putchar(c)     ao_putchar(c)
-#define getchar                ao_getchar
-
-extern void putchar(char c);
-extern char getchar(void);
-
 /*
  * ao_romconfig.c
  */
@@ -109,10 +106,10 @@ extern const uint32_t ao_radio_cal;
 #define AO_TIM91011_CLK                (2 * AO_PCLK2)
 #endif
 
-#define AO_STM_NVIC_HIGH_PRIORITY      4
-#define AO_STM_NVIC_CLOCK_PRIORITY     6
-#define AO_STM_NVIC_MED_PRIORITY       8
-#define AO_STM_NVIC_LOW_PRIORITY       10
+#define AO_LPC_NVIC_HIGH_PRIORITY      0
+#define AO_LPC_NVIC_CLOCK_PRIORITY     1
+#define AO_LPC_NVIC_MED_PRIORITY       2
+#define AO_LPC_NVIC_LOW_PRIORITY       3
 
 void
 ao_adc_init(void);
@@ -123,4 +120,28 @@ ao_adc_init(void);
 void
 ao_serial_init(void);
 
+/* SPI definitions */
+
+#define AO_SPI_SPEED_12MHz             4
+#define AO_SPI_SPEED_8MHz              6
+#define AO_SPI_SPEED_6MHz              8
+#define AO_SPI_SPEED_4MHz              12
+#define AO_SPI_SPEED_2MHz              24
+#define AO_SPI_SPEED_1MHz              48
+#define AO_SPI_SPEED_500kHz            96
+#define AO_SPI_SPEED_250kHz            192
+#define AO_SPI_SPEED_125kHz            384
+#define AO_SPI_SPEED_62500Hz           768
+
+#define AO_SPI_SPEED_FAST      AO_SPI_SPEED_12MHz
+
+#define AO_BOOT_APPLICATION_BASE       ((uint32_t *) 0x00001000)
+#define AO_BOOT_APPLICATION_BOUND      ((uint32_t *) (0x00000000 + 32 * 1024))
+#define AO_BOOT_LOADER_BASE            ((uint32_t *) 0x00000000)
+#define HAS_BOOT_LOADER                        1
+
+/* ADC definitions */
+
+#define AO_ADC_MAX     32767
+
 #endif /* _AO_ARCH_H_ */