Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
[fw/altos] / src / lpc / ao_arch.h
index 99c646f9361018a3f55cee9713caf7c8e2e38e53..35dcc9de57e2ad58286beab8d3f7cb5cfe67d45d 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_naked_declare  __attribute__((naked))
 #define ao_arch_naked_define
-#define __pdata
-#define __data
-#define __xdata
-#define __code const
-#define __reentrant
 #define __interrupt(n)
 #define __at(n)
 
 
 #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
  */
 
-#define AO_ROMCONFIG_VERSION   2
-
-#define AO_ROMCONFIG_SYMBOL(a) __attribute__((section(".romconfig"))) const
-
-extern const uint16_t ao_romconfig_version;
-extern const uint16_t ao_romconfig_check;
-extern const uint16_t ao_serial_number;
-extern const uint32_t ao_radio_cal;
+#define AO_ROMCONFIG_SYMBOL __attribute__((section(".romconfig"))) const
 
 #define ao_arch_task_members\
        uint32_t *sp;                   /* saved stack pointer */
@@ -109,10 +94,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 +108,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_ */