altos: Use explicit boot loader signal in ao_boot_reboot
[fw/altos] / src / lpc / ao_arch.h
index 611821601b99b6bfcfd185f07e26ac85bb4c1b8c..5fbb8dfaa0f24183341d1d78dbbc49e80cdf16b3 100644 (file)
  * 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 __interrupt(n)
 #define __at(n)
 
-#define ao_arch_reboot() 
+#define ao_arch_reboot() arm_scb.aircr = ((0x05fa << 16) |     \
+                                         (0 << 15) |           \
+                                         (1 << 2) |            \
+                                         (0 << 1))
 
 #define ao_arch_nop()          asm("nop")
 
@@ -106,17 +113,39 @@ 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);
 
-
+#define AO_USB_OUT_EP  2
+#define AO_USB_IN_EP   3
 
 void
 ao_serial_init(void);
 
+/* SPI definitions */
+
+#define AO_SPI_SPEED_12MHz             4
+#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_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_ */