1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-01-29 14:52:12 +01:00

INS: Almost got Bootloader compiling *sigh*

This commit is contained in:
James Cotton 2011-08-06 20:40:06 -05:00
parent a0d77faf4b
commit 558bdddeaf
12 changed files with 1261 additions and 211 deletions

View File

@ -1,8 +1,8 @@
#####
# Project: OpenPilot AHRS_BOOTLOADER
# Project: OpenPilot INS_BOOTLOADER
#
#
# Makefile for OpenPilot AHRS_BOOTLOADER project
# Makefile for OpenPilot INS project
#
# The OpenPilot Team, http://www.openpilot.org, Copyright (C) 2009.
#
@ -49,8 +49,8 @@ endif
FLASH_TOOL = OPENOCD
# Paths
AHRS_BL = ./
AHRS_BLINC = $(AHRS_BL)/inc
INS_BL = ./
INS_BLINC = $(INS_BL)/inc
PIOS = ../../PiOS
PIOSINC = $(PIOS)/inc
FLIGHTLIB = ../Libraries
@ -76,7 +76,7 @@ SRC += bl_fsm.c
#SRC += insgps.c
#SRC += $(FLIGHTLIB)/CoordinateConversions.c
## PIOS Hardware (STM32F10x)
## PIOS Hardware (STM32F2xx)
SRC += $(PIOSSTM32FXX)/pios_sys.c
SRC += $(PIOSSTM32FXX)/pios_led.c
SRC += $(PIOSSTM32FXX)/pios_delay.c
@ -86,6 +86,7 @@ SRC += $(PIOSSTM32FXX)/pios_irq.c
SRC += $(PIOSSTM32FXX)/pios_gpio.c
SRC += $(PIOSSTM32FXX)/pios_spi.c
SRC += $(PIOSSTM32FXX)/pios_iap.c
SRC += $(PIOSSTM32FXX)/pios_debug.c
## PIOS Hardware (Common)
#SRC += $(PIOSCOMMON)/pios_com.c
@ -97,24 +98,24 @@ SRC += $(PIOSCOMMON)/pios_bl_helper.c
## CMSIS for STM32
SRC += $(CMSISDIR)/core_cm3.c
SRC += $(CMSISDIR)/system_stm32f10x.c
SRC += $(CMSISDIR)/system_stm32f2xx.c
## Used parts of the STM-Library
SRC += $(STMSPDSRCDIR)/stm32f10x_adc.c
SRC += $(STMSPDSRCDIR)/stm32f10x_bkp.c
SRC += $(STMSPDSRCDIR)/stm32f10x_crc.c
SRC += $(STMSPDSRCDIR)/stm32f10x_dac.c
SRC += $(STMSPDSRCDIR)/stm32f10x_dma.c
SRC += $(STMSPDSRCDIR)/stm32f10x_exti.c
SRC += $(STMSPDSRCDIR)/stm32f10x_flash.c
SRC += $(STMSPDSRCDIR)/stm32f10x_gpio.c
SRC += $(STMSPDSRCDIR)/stm32f10x_i2c.c
SRC += $(STMSPDSRCDIR)/stm32f10x_pwr.c
SRC += $(STMSPDSRCDIR)/stm32f10x_rcc.c
SRC += $(STMSPDSRCDIR)/stm32f10x_rtc.c
SRC += $(STMSPDSRCDIR)/stm32f10x_spi.c
SRC += $(STMSPDSRCDIR)/stm32f10x_tim.c
SRC += $(STMSPDSRCDIR)/stm32f10x_usart.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_adc.c
# SRC += $(STMSPDSRCDIR)/stm32f2xx_bkp.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_crc.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_dac.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_dma.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_exti.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_flash.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_gpio.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_i2c.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_pwr.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_rcc.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_rtc.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_spi.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_tim.c
SRC += $(STMSPDSRCDIR)/stm32f2xx_usart.c
SRC += $(STMSPDSRCDIR)/misc.c
# List C source files here which must be compiled in ARM-Mode (no -mthumb).
@ -153,7 +154,7 @@ EXTRAINCDIRS += $(PIOSCOMMON)
EXTRAINCDIRS += $(PIOSBOARDS)
EXTRAINCDIRS += $(STMSPDINCDIR)
EXTRAINCDIRS += $(CMSISDIR)
EXTRAINCDIRS += $(AHRS_BLINC)
EXTRAINCDIRS += $(INS_BLINC)
# List any extra directories to look for library files here.
# Also add directories where the linker should search for
@ -236,6 +237,8 @@ ifeq ($(DEBUG),YES)
CFLAGS =
endif
CFLAGS += -DHSE_VALUE=$(OSCILLATOR_FREQ)
CFLAGS += -g$(DEBUGF)
CFLAGS += -O$(OPT)
ifeq ($(DEBUG),NO)

View File

@ -28,7 +28,7 @@
#define PIOS_CONFIG_H
#define STM32F2XX
#define HSE_VALUE 8000000
#define MEM_SIZE 1024000000
/* Enable/Disable PiOS Modules */
#define PIOS_INCLUDE_DELAY

View File

@ -9,8 +9,8 @@
#include "STM32103CB_PIPXTREME_Rev1.h"
#elif USE_STM32103CB_CC_Rev1
#include "STM32103CB_CC_Rev1.h"
#elif USE_STM3210E_INS
#include "STM3210E_INS.h"
#elif USE_STM32F2xx_INS
#include "STM32F2xx_INS.h"
#else
#error Board definition has not been provided.
#endif

View File

@ -1,57 +1,367 @@
/* XXX should be based on the SRAM definition */
_estack = 0x2001fff0;
/* This is the size of the stack for early init and for all FreeRTOS IRQs */
_irq_stack_size = 0x400;
/* Check valid alignment for VTOR */
ASSERT(ORIGIN(BL_FLASH) == ALIGN(ORIGIN(BL_FLASH), 0x80), "Start of memory region flash not aligned for startup vector table");
/*
this sends all unreferenced IRQHandlers to reset
*/
PROVIDE ( Undefined_Handler = 0 ) ;
PROVIDE ( SWI_Handler = 0 ) ;
PROVIDE ( IRQ_Handler = 0 ) ;
PROVIDE ( Prefetch_Handler = 0 ) ;
PROVIDE ( Abort_Handler = 0 ) ;
PROVIDE ( FIQ_Handler = 0 ) ;
PROVIDE ( NMI_Handler = 0 ) ;
PROVIDE ( HardFault_Handler = 0 ) ;
PROVIDE ( MemManage_Handler = 0 ) ;
PROVIDE ( BusFault_Handler = 0 ) ;
PROVIDE ( UsageFault_Handler = 0 ) ;
PROVIDE ( vPortSVCHandler = 0 ) ;
PROVIDE ( DebugMon_Handler = 0 ) ;
PROVIDE ( xPortPendSVHandler = 0 ) ;
PROVIDE ( xPortSysTickHandler = 0 ) ;
PROVIDE ( WWDG_IRQHandler = 0 ) ;
PROVIDE ( PVD_IRQHandler = 0 ) ;
PROVIDE ( TAMPER_IRQHandler = 0 ) ;
PROVIDE ( RTC_IRQHandler = 0 ) ;
PROVIDE ( FLASH_IRQHandler = 0 ) ;
PROVIDE ( RCC_IRQHandler = 0 ) ;
PROVIDE ( EXTI0_IRQHandler = 0 ) ;
PROVIDE ( EXTI1_IRQHandler = 0 ) ;
PROVIDE ( EXTI2_IRQHandler = 0 ) ;
PROVIDE ( EXTI3_IRQHandler = 0 ) ;
PROVIDE ( EXTI4_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel1_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel2_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel3_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel4_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel5_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel6_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel7_IRQHandler = 0 ) ;
PROVIDE ( ADC_IRQHandler = 0 ) ;
PROVIDE ( USB_HP_CAN1_TX_IRQHandler = 0 ) ;
PROVIDE ( USB_LP_CAN1_RX0_IRQHandler = 0 ) ;
PROVIDE ( CAN1_RX1_IRQHandler = 0 ) ;
PROVIDE ( CAN1_SCE_IRQHandler = 0 ) ;
PROVIDE ( EXTI9_5_IRQHandler = 0 ) ;
PROVIDE ( TIM1_BRK_IRQHandler = 0 ) ;
PROVIDE ( TIM1_UP_IRQHandler = 0 ) ;
PROVIDE ( TIM1_TRG_COM_IRQHandler = 0 ) ;
PROVIDE ( TIM1_CC_IRQHandler = 0 ) ;
PROVIDE ( TIM2_IRQHandler = 0 ) ;
PROVIDE ( TIM3_IRQHandler = 0 ) ;
PROVIDE ( TIM4_IRQHandler = 0 ) ;
PROVIDE ( I2C1_EV_IRQHandler = 0 ) ;
PROVIDE ( I2C1_ER_IRQHandler = 0 ) ;
PROVIDE ( I2C2_EV_IRQHandler = 0 ) ;
PROVIDE ( I2C2_ER_IRQHandler = 0 ) ;
PROVIDE ( SPI1_IRQHandler = 0 ) ;
PROVIDE ( SPI2_IRQHandler = 0 ) ;
PROVIDE ( USART1_IRQHandler = 0 ) ;
PROVIDE ( USART2_IRQHandler = 0 ) ;
PROVIDE ( USART3_IRQHandler = 0 ) ;
PROVIDE ( EXTI15_10_IRQHandler = 0 ) ;
PROVIDE ( RTCAlarm_IRQHandler = 0 ) ;
PROVIDE ( USBWakeUp_IRQHandler = 0 ) ;
PROVIDE ( TIM8_BRK_IRQHandler = 0 ) ;
PROVIDE ( TIM8_UP_IRQHandler = 0 ) ;
PROVIDE ( TIM8_TRG_COM_IRQHandler = 0 ) ;
PROVIDE ( TIM8_CC_IRQHandler = 0 ) ;
PROVIDE ( ADC3_IRQHandler = 0 ) ;
PROVIDE ( FSMC_IRQHandler = 0 ) ;
PROVIDE ( SDIO_IRQHandler = 0 ) ;
PROVIDE ( TIM5_IRQHandler = 0 ) ;
PROVIDE ( SPI3_IRQHandler = 0 ) ;
PROVIDE ( UART4_IRQHandler = 0 ) ;
PROVIDE ( UART5_IRQHandler = 0 ) ;
PROVIDE ( TIM6_IRQHandler = 0 ) ;
PROVIDE ( TIM7_IRQHandler = 0 ) ;
PROVIDE ( DMA2_Channel1_IRQHandler = 0 ) ;
PROVIDE ( DMA2_Channel2_IRQHandler = 0 ) ;
PROVIDE ( DMA2_Channel3_IRQHandler = 0 ) ;
PROVIDE ( DMA2_Channel4_5_IRQHandler = 0 ) ;
/******************************************************************************/
/* Peripheral memory map */
/******************************************************************************/
/*this allows to compile the ST lib in "non-debug" mode*/
/* Peripheral and SRAM base address in the alias region */
PERIPH_BB_BASE = 0x42000000;
SRAM_BB_BASE = 0x22000000;
/* Peripheral and SRAM base address in the bit-band region */
SRAM_BASE = 0x20000000;
PERIPH_BASE = 0x40000000;
/* Flash registers base address */
PROVIDE ( FLASH_BASE = 0x40022000);
/* Flash Option Bytes base address */
PROVIDE ( OB_BASE = 0x1FFFF800);
/* Peripheral memory map */
APB1PERIPH_BASE = PERIPH_BASE ;
APB2PERIPH_BASE = (PERIPH_BASE + 0x10000) ;
AHBPERIPH_BASE = (PERIPH_BASE + 0x20000) ;
PROVIDE ( TIM2 = (APB1PERIPH_BASE + 0x0000) ) ;
PROVIDE ( TIM3 = (APB1PERIPH_BASE + 0x0400) ) ;
PROVIDE ( TIM4 = (APB1PERIPH_BASE + 0x0800) ) ;
PROVIDE ( RTC = (APB1PERIPH_BASE + 0x2800) ) ;
PROVIDE ( WWDG = (APB1PERIPH_BASE + 0x2C00) ) ;
PROVIDE ( IWDG = (APB1PERIPH_BASE + 0x3000) ) ;
PROVIDE ( SPI2 = (APB1PERIPH_BASE + 0x3800) ) ;
PROVIDE ( USART2 = (APB1PERIPH_BASE + 0x4400) ) ;
PROVIDE ( USART3 = (APB1PERIPH_BASE + 0x4800) ) ;
PROVIDE ( I2C1 = (APB1PERIPH_BASE + 0x5400) ) ;
PROVIDE ( I2C2 = (APB1PERIPH_BASE + 0x5800) ) ;
PROVIDE ( CAN = (APB1PERIPH_BASE + 0x6400) ) ;
PROVIDE ( BKP = (APB1PERIPH_BASE + 0x6C00) ) ;
PROVIDE ( PWR = (APB1PERIPH_BASE + 0x7000) ) ;
PROVIDE ( AFIO = (APB2PERIPH_BASE + 0x0000) ) ;
PROVIDE ( EXTI = (APB2PERIPH_BASE + 0x0400) ) ;
PROVIDE ( GPIOA = (APB2PERIPH_BASE + 0x0800) ) ;
PROVIDE ( GPIOB = (APB2PERIPH_BASE + 0x0C00) ) ;
PROVIDE ( GPIOC = (APB2PERIPH_BASE + 0x1000) ) ;
PROVIDE ( GPIOD = (APB2PERIPH_BASE + 0x1400) ) ;
PROVIDE ( GPIOE = (APB2PERIPH_BASE + 0x1800) ) ;
PROVIDE ( ADC1 = (APB2PERIPH_BASE + 0x2400) ) ;
PROVIDE ( ADC2 = (APB2PERIPH_BASE + 0x2800) ) ;
PROVIDE ( TIM1 = (APB2PERIPH_BASE + 0x2C00) ) ;
PROVIDE ( SPI1 = (APB2PERIPH_BASE + 0x3000) ) ;
PROVIDE ( USART1 = (APB2PERIPH_BASE + 0x3800) ) ;
PROVIDE ( DMA = (AHBPERIPH_BASE + 0x0000) ) ;
PROVIDE ( DMA_Channel1 = (AHBPERIPH_BASE + 0x0008) ) ;
PROVIDE ( DMA_Channel2 = (AHBPERIPH_BASE + 0x001C) ) ;
PROVIDE ( DMA_Channel3 = (AHBPERIPH_BASE + 0x0030) ) ;
PROVIDE ( DMA_Channel4 = (AHBPERIPH_BASE + 0x0044) ) ;
PROVIDE ( DMA_Channel5 = (AHBPERIPH_BASE + 0x0058) ) ;
PROVIDE ( DMA_Channel6 = (AHBPERIPH_BASE + 0x006C) ) ;
PROVIDE ( DMA_Channel7 = (AHBPERIPH_BASE + 0x0080) ) ;
PROVIDE ( RCC = (AHBPERIPH_BASE + 0x1000) ) ;
/* System Control Space memory map */
SCS_BASE = 0xE000E000;
PROVIDE ( SysTick = (SCS_BASE + 0x0010) ) ;
PROVIDE ( NVIC = (SCS_BASE + 0x0100) ) ;
PROVIDE ( SCB = (SCS_BASE + 0x0D00) ) ;
/* Sections Definitions */
/* Section Definitions */
SECTIONS
{
.text :
{
PROVIDE (pios_isr_vector_table_base = .);
KEEP(*(.isr_vector .isr_vector.*))
*(.text .text.* .gnu.linkonce.t.*)
*(.glue_7t) *(.glue_7)
*(.rodata .rodata* .gnu.linkonce.r.*)
} > BL_FLASH
/* for Cortex devices, the beginning of the startup code is stored in the .isr_vector section, which goes to FLASH */
.isr_vector :
{
PROVIDE (pios_isr_vector_table_base = .);
KEEP(*(.isr_vector)) /* Startup code */
. = ALIGN(4);
} > BL_FLASH
.ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
} > FLASH
/* for some STRx devices, the beginning of the startup code is stored in the .flashtext section, which goes to FLASH */
.flashtext :
{
. = ALIGN(4);
*(.flashtext) /* Startup code */
. = ALIGN(4);
} > BL_FLASH
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > FLASH
. = ALIGN(4);
_etext = .;
_sidata = .;
/* init sections */
.initcalluavobj.init :
{
. = ALIGN(4);
__uavobj_initcall_start = .;
KEEP(*(.initcalluavobj.init))
. = ALIGN(4);
__uavobj_initcall_end = .;
} > BL_FLASH
.data : AT (_etext)
{
_sdata = .;
*(.data .data.*)
. = ALIGN(4);
_edata = . ;
} > SRAM
/* the program code is stored in the .text section, which goes to Flash */
.text :
{
. = ALIGN(4);
/* .bss section which is used for uninitialized data */
.bss (NOLOAD) :
{
_sbss = . ;
*(.bss .bss.*)
*(COMMON)
_ebss = . ;
} > SRAM
*(.text) /* remaining code */
*(.text.*) /* remaining code */
*(.rodata) /* read-only data (constants) */
*(.rodata*)
*(.glue_7)
*(.glue_7t)
. = ALIGN(4);
_end = . ;
. = ALIGN(4);
_etext = .;
/* This is used by the startup in order to initialize the .data secion */
_sidata = _etext;
} > BL_FLASH
.boardinfo :
{
. = ALIGN(4);
KEEP(*(.boardinfo))
} > BD_INFO
/*
* This stack is used both as the initial sp during early init as well as ultimately
* being used as the STM32's MSP (Main Stack Pointer) which is the same stack that
* is used for _all_ interrupt handlers. The end of this stack should be placed
* against the lowest address in RAM so that a stack overrun results in a hard fault
* at the first access beyond the end of the stack.
*/
.irq_stack :
{
. = ALIGN(4);
_irq_stack_end = . ;
. = . + _irq_stack_size ;
. = ALIGN(4);
_irq_stack_top = . - 4 ;
_init_stack_top = _irq_stack_top;
. = ALIGN(4);
} >RAM
/* This is the initialized data section
The program executes knowing that the data is in the RAM
but the loader puts the initial values in the FLASH (inidata).
It is one task of the startup to copy the initial values from FLASH to RAM. */
.data : AT ( _sidata )
{
. = ALIGN(4);
/* This is used by the startup in order to initialize the .data secion */
_sdata = . ;
*(.data)
*(.data.*)
. = ALIGN(4);
/* This is used by the startup in order to initialize the .data secion */
_edata = . ;
} >RAM
/* This is the uninitialized data section */
.bss :
{
. = ALIGN(4);
/* This is used by the startup in order to initialize the .bss secion */
_sbss = .;
*(.bss)
*(COMMON)
. = ALIGN(4);
/* This is used by the startup in order to initialize the .bss secion */
_ebss = . ;
} >RAM
PROVIDE ( end = _ebss );
PROVIDE ( _end = _ebss );
/* this is the FLASH Bank1 */
/* the C or assembly source must explicitly place the code or data there
using the "section" attribute */
.b1text :
{
*(.b1text) /* remaining code */
*(.b1rodata) /* read-only data (constants) */
*(.b1rodata*)
} >FLASHB1
/* this is the EXTMEM */
/* the C or assembly source must explicitly place the code or data there
using the "section" attribute */
/* EXTMEM Bank0 */
.eb0text :
{
*(.eb0text) /* remaining code */
*(.eb0rodata) /* read-only data (constants) */
*(.eb0rodata*)
} >EXTMEMB0
/* EXTMEM Bank1 */
.eb1text :
{
*(.eb1text) /* remaining code */
*(.eb1rodata) /* read-only data (constants) */
*(.eb1rodata*)
} >EXTMEMB1
/* EXTMEM Bank2 */
.eb2text :
{
*(.eb2text) /* remaining code */
*(.eb2rodata) /* read-only data (constants) */
*(.eb2rodata*)
} >EXTMEMB2
/* EXTMEM Bank0 */
.eb3text :
{
*(.eb3text) /* remaining code */
*(.eb3rodata) /* read-only data (constants) */
*(.eb3rodata*)
} >EXTMEMB3
__exidx_start = .;
__exidx_end = .;
.boardinfo :
{
. = ALIGN(4);
KEEP(*(.boardinfo))
. = ALIGN(4);
} > BD_INFO
/* after that it's only debugging information. */
/* remove the debugging information from the standard libraries */
/DISCARD/ :
{
libc.a ( * )
libm.a ( * )
libgcc.a ( * )
}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
}

View File

@ -1,7 +1,12 @@
MEMORY
{
BL_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 0x008000 - 0x000080
BD_INFO (r) : ORIGIN = 0x08008000 - 0x80, LENGTH = 0x000080
FLASH (rx) : ORIGIN = 0x08008000, LENGTH = 0x100000 - 0x008000
SRAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x020000
}
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 0x020000
BL_FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 0x05000 - 0x00080
BD_INFO (r) : ORIGIN = 0x08005000 - 0x80, LENGTH = 0x00080
FLASH (rx) : ORIGIN = 0x08005000, LENGTH = 0x100000 - 0x05000
FLASHB1 (rx) : ORIGIN = 0x00000000, LENGTH = 0
EXTMEMB0 (rx) : ORIGIN = 0x00000000, LENGTH = 0
EXTMEMB1 (rx) : ORIGIN = 0x00000000, LENGTH = 0
EXTMEMB2 (rx) : ORIGIN = 0x00000000, LENGTH = 0
EXTMEMB3 (rx) : ORIGIN = 0x00000000, LENGTH = 0
}

View File

@ -1,156 +1,400 @@
/* This is the size of the stack for all FreeRTOS IRQs */
/* This is the size of the stack for early init and for all FreeRTOS IRQs */
_irq_stack_size = 0x400;
/* This is the size of the stack for early init: life span is until scheduler starts */
_init_stack_size = 0x400;
/* Check valid alignment for VTOR */
ASSERT(ORIGIN(FLASH) == ALIGN(ORIGIN(FLASH), 0x80), "Start of memory region flash not aligned for startup vector table");
/*
this sends all unreferenced IRQHandlers to reset
*/
PROVIDE ( Undefined_Handler = 0 ) ;
PROVIDE ( SWI_Handler = 0 ) ;
PROVIDE ( IRQ_Handler = 0 ) ;
PROVIDE ( Prefetch_Handler = 0 ) ;
PROVIDE ( Abort_Handler = 0 ) ;
PROVIDE ( FIQ_Handler = 0 ) ;
PROVIDE ( NMI_Handler = 0 ) ;
PROVIDE ( HardFault_Handler = 0 ) ;
PROVIDE ( MemManage_Handler = 0 ) ;
PROVIDE ( BusFault_Handler = 0 ) ;
PROVIDE ( UsageFault_Handler = 0 ) ;
PROVIDE ( vPortSVCHandler = 0 ) ;
PROVIDE ( DebugMon_Handler = 0 ) ;
PROVIDE ( xPortPendSVHandler = 0 ) ;
PROVIDE ( xPortSysTickHandler = 0 ) ;
PROVIDE ( WWDG_IRQHandler = 0 ) ;
PROVIDE ( PVD_IRQHandler = 0 ) ;
PROVIDE ( TAMPER_IRQHandler = 0 ) ;
PROVIDE ( RTC_IRQHandler = 0 ) ;
PROVIDE ( FLASH_IRQHandler = 0 ) ;
PROVIDE ( RCC_IRQHandler = 0 ) ;
PROVIDE ( EXTI0_IRQHandler = 0 ) ;
PROVIDE ( EXTI1_IRQHandler = 0 ) ;
PROVIDE ( EXTI2_IRQHandler = 0 ) ;
PROVIDE ( EXTI3_IRQHandler = 0 ) ;
PROVIDE ( EXTI4_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel1_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel2_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel3_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel4_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel5_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel6_IRQHandler = 0 ) ;
PROVIDE ( DMAChannel7_IRQHandler = 0 ) ;
PROVIDE ( ADC_IRQHandler = 0 ) ;
PROVIDE ( USB_HP_CAN1_TX_IRQHandler = 0 ) ;
PROVIDE ( USB_LP_CAN1_RX0_IRQHandler = 0 ) ;
PROVIDE ( CAN1_RX1_IRQHandler = 0 ) ;
PROVIDE ( CAN1_SCE_IRQHandler = 0 ) ;
PROVIDE ( EXTI9_5_IRQHandler = 0 ) ;
PROVIDE ( TIM1_BRK_IRQHandler = 0 ) ;
PROVIDE ( TIM1_UP_IRQHandler = 0 ) ;
PROVIDE ( TIM1_TRG_COM_IRQHandler = 0 ) ;
PROVIDE ( TIM1_CC_IRQHandler = 0 ) ;
PROVIDE ( TIM2_IRQHandler = 0 ) ;
PROVIDE ( TIM3_IRQHandler = 0 ) ;
PROVIDE ( TIM4_IRQHandler = 0 ) ;
PROVIDE ( I2C1_EV_IRQHandler = 0 ) ;
PROVIDE ( I2C1_ER_IRQHandler = 0 ) ;
PROVIDE ( I2C2_EV_IRQHandler = 0 ) ;
PROVIDE ( I2C2_ER_IRQHandler = 0 ) ;
PROVIDE ( SPI1_IRQHandler = 0 ) ;
PROVIDE ( SPI2_IRQHandler = 0 ) ;
PROVIDE ( USART1_IRQHandler = 0 ) ;
PROVIDE ( USART2_IRQHandler = 0 ) ;
PROVIDE ( USART3_IRQHandler = 0 ) ;
PROVIDE ( EXTI15_10_IRQHandler = 0 ) ;
PROVIDE ( RTCAlarm_IRQHandler = 0 ) ;
PROVIDE ( USBWakeUp_IRQHandler = 0 ) ;
PROVIDE ( TIM8_BRK_IRQHandler = 0 ) ;
PROVIDE ( TIM8_UP_IRQHandler = 0 ) ;
PROVIDE ( TIM8_TRG_COM_IRQHandler = 0 ) ;
PROVIDE ( TIM8_CC_IRQHandler = 0 ) ;
PROVIDE ( ADC3_IRQHandler = 0 ) ;
PROVIDE ( FSMC_IRQHandler = 0 ) ;
PROVIDE ( SDIO_IRQHandler = 0 ) ;
PROVIDE ( TIM5_IRQHandler = 0 ) ;
PROVIDE ( SPI3_IRQHandler = 0 ) ;
PROVIDE ( UART4_IRQHandler = 0 ) ;
PROVIDE ( UART5_IRQHandler = 0 ) ;
PROVIDE ( TIM6_IRQHandler = 0 ) ;
PROVIDE ( TIM7_IRQHandler = 0 ) ;
PROVIDE ( DMA2_Channel1_IRQHandler = 0 ) ;
PROVIDE ( DMA2_Channel2_IRQHandler = 0 ) ;
PROVIDE ( DMA2_Channel3_IRQHandler = 0 ) ;
PROVIDE ( DMA2_Channel4_5_IRQHandler = 0 ) ;
/******************************************************************************/
/* Peripheral memory map */
/******************************************************************************/
/*this allows to compile the ST lib in "non-debug" mode*/
/* Peripheral and SRAM base address in the alias region */
PERIPH_BB_BASE = 0x42000000;
SRAM_BB_BASE = 0x22000000;
/* Peripheral and SRAM base address in the bit-band region */
SRAM_BASE = 0x20000000;
PERIPH_BASE = 0x40000000;
/* Flash registers base address */
PROVIDE ( FLASH_BASE = 0x40022000);
/* Flash Option Bytes base address */
PROVIDE ( OB_BASE = 0x1FFFF800);
/* Peripheral memory map */
APB1PERIPH_BASE = PERIPH_BASE ;
APB2PERIPH_BASE = (PERIPH_BASE + 0x10000) ;
AHBPERIPH_BASE = (PERIPH_BASE + 0x20000) ;
PROVIDE ( TIM2 = (APB1PERIPH_BASE + 0x0000) ) ;
PROVIDE ( TIM3 = (APB1PERIPH_BASE + 0x0400) ) ;
PROVIDE ( TIM4 = (APB1PERIPH_BASE + 0x0800) ) ;
PROVIDE ( RTC = (APB1PERIPH_BASE + 0x2800) ) ;
PROVIDE ( WWDG = (APB1PERIPH_BASE + 0x2C00) ) ;
PROVIDE ( IWDG = (APB1PERIPH_BASE + 0x3000) ) ;
PROVIDE ( SPI2 = (APB1PERIPH_BASE + 0x3800) ) ;
PROVIDE ( USART2 = (APB1PERIPH_BASE + 0x4400) ) ;
PROVIDE ( USART3 = (APB1PERIPH_BASE + 0x4800) ) ;
PROVIDE ( I2C1 = (APB1PERIPH_BASE + 0x5400) ) ;
PROVIDE ( I2C2 = (APB1PERIPH_BASE + 0x5800) ) ;
PROVIDE ( CAN = (APB1PERIPH_BASE + 0x6400) ) ;
PROVIDE ( BKP = (APB1PERIPH_BASE + 0x6C00) ) ;
PROVIDE ( PWR = (APB1PERIPH_BASE + 0x7000) ) ;
PROVIDE ( AFIO = (APB2PERIPH_BASE + 0x0000) ) ;
PROVIDE ( EXTI = (APB2PERIPH_BASE + 0x0400) ) ;
PROVIDE ( GPIOA = (APB2PERIPH_BASE + 0x0800) ) ;
PROVIDE ( GPIOB = (APB2PERIPH_BASE + 0x0C00) ) ;
PROVIDE ( GPIOC = (APB2PERIPH_BASE + 0x1000) ) ;
PROVIDE ( GPIOD = (APB2PERIPH_BASE + 0x1400) ) ;
PROVIDE ( GPIOE = (APB2PERIPH_BASE + 0x1800) ) ;
PROVIDE ( ADC1 = (APB2PERIPH_BASE + 0x2400) ) ;
PROVIDE ( ADC2 = (APB2PERIPH_BASE + 0x2800) ) ;
PROVIDE ( TIM1 = (APB2PERIPH_BASE + 0x2C00) ) ;
PROVIDE ( SPI1 = (APB2PERIPH_BASE + 0x3000) ) ;
PROVIDE ( USART1 = (APB2PERIPH_BASE + 0x3800) ) ;
PROVIDE ( DMA = (AHBPERIPH_BASE + 0x0000) ) ;
PROVIDE ( DMA_Channel1 = (AHBPERIPH_BASE + 0x0008) ) ;
PROVIDE ( DMA_Channel2 = (AHBPERIPH_BASE + 0x001C) ) ;
PROVIDE ( DMA_Channel3 = (AHBPERIPH_BASE + 0x0030) ) ;
PROVIDE ( DMA_Channel4 = (AHBPERIPH_BASE + 0x0044) ) ;
PROVIDE ( DMA_Channel5 = (AHBPERIPH_BASE + 0x0058) ) ;
PROVIDE ( DMA_Channel6 = (AHBPERIPH_BASE + 0x006C) ) ;
PROVIDE ( DMA_Channel7 = (AHBPERIPH_BASE + 0x0080) ) ;
PROVIDE ( RCC = (AHBPERIPH_BASE + 0x1000) ) ;
/* System Control Space memory map */
SCS_BASE = 0xE000E000;
PROVIDE ( SysTick = (SCS_BASE + 0x0010) ) ;
PROVIDE ( NVIC = (SCS_BASE + 0x0100) ) ;
PROVIDE ( SCB = (SCS_BASE + 0x0D00) ) ;
PROVIDE(pios_board_info_blob = ORIGIN(BD_INFO));
/* Section Definitions */
/* Sections Definitions */
SECTIONS
{
.text :
{
PROVIDE (pios_isr_vector_table_base = .);
KEEP(*(.isr_vector .isr_vector.*))
*(.text .text.* .gnu.linkonce.t.*)
*(.glue_7t) *(.glue_7)
*(.rodata .rodata* .gnu.linkonce.r.*)
} > FLASH
/* for Cortex devices, the beginning of the startup code is stored in the .isr_vector section, which goes to FLASH */
.isr_vector :
{
PROVIDE (pios_isr_vector_table_base = .);
KEEP(*(.isr_vector)) /* Startup code */
. = ALIGN(4);
} >FLASH
/* init sections */
.initcalluavobj.init :
{
. = ALIGN(4);
__uavobj_initcall_start = .;
KEEP(*(.initcalluavobj.init))
. = ALIGN(4);
__uavobj_initcall_end = .;
} >FLASH
/* for some STRx devices, the beginning of the startup code is stored in the .flashtext section, which goes to FLASH */
.flashtext :
{
. = ALIGN(4);
*(.flashtext) /* Startup code */
. = ALIGN(4);
} >FLASH
/* module sections */
.initcallmodule.init :
{
. = ALIGN(4);
__module_initcall_start = .;
KEEP(*(.initcallmodule.init))
. = ALIGN(4);
__module_initcall_end = .;
} >FLASH
.ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
} > FLASH
/* init sections */
.initcalluavobj.init :
{
. = ALIGN(4);
__uavobj_initcall_start = .;
KEEP(*(.initcalluavobj.init))
. = ALIGN(4);
__uavobj_initcall_end = .;
} >FLASH
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} > FLASH
/* module sections */
.initcallmodule.init :
{
. = ALIGN(4);
__module_initcall_start = .;
KEEP(*(.initcallmodule.init))
. = ALIGN(4);
__module_initcall_end = .;
} >FLASH
. = ALIGN(4);
_etext = .;
_sidata = .;
/* the program code is stored in the .text section, which goes to Flash */
.text :
{
. = ALIGN(4);
/*
* This stack is used both as the initial sp during early init as well as ultimately
* being used as the STM32's MSP (Main Stack Pointer) which is the same stack that
* is used for _all_ interrupt handlers. The end of this stack should be placed
* against the lowest address in RAM so that a stack overrun results in a hard fault
* at the first access beyond the end of the stack.
*/
.irq_stack :
{
. = ALIGN(4);
_irq_stack_end = . ;
. = . + _irq_stack_size ;
. = ALIGN(4);
_irq_stack_top = . - 4 ;
. = ALIGN(4);
} > SRAM
*(.text) /* remaining code */
*(.text.*) /* remaining code */
*(.rodata) /* read-only data (constants) */
*(.rodata*)
*(.glue_7)
*(.glue_7t)
.data : AT (_etext)
{
_sdata = .;
*(.data .data.*)
. = ALIGN(4);
_edata = . ;
} > SRAM
. = ALIGN(4);
_etext = .;
/* This is used by the startup in order to initialize the .data secion */
_sidata = _etext;
} >FLASH
/*
* This stack is used both as the initial sp during early init as well as ultimately
* being used as the STM32's MSP (Main Stack Pointer) which is the same stack that
* is used for _all_ interrupt handlers. The end of this stack should be placed
* against the lowest address in RAM so that a stack overrun results in a hard fault
* at the first access beyond the end of the stack.
*/
.irq_stack :
{
. = ALIGN(4);
_irq_stack_end = . ;
. = . + _irq_stack_size ;
. = ALIGN(4);
_irq_stack_top = . - 4 ;
. = ALIGN(4);
} >RAM
/* This is the initialized data section
The program executes knowing that the data is in the RAM
but the loader puts the initial values in the FLASH (inidata).
It is one task of the startup to copy the initial values from FLASH to RAM. */
.data : AT ( _sidata )
{
. = ALIGN(4);
/* This is used by the startup in order to initialize the .data secion */
_sdata = . ;
*(.data)
*(.data.*)
. = ALIGN(4);
/* This is used by the startup in order to initialize the .data secion */
_edata = . ;
} >RAM
/* .bss section which is used for uninitialized data */
.bss (NOLOAD) :
{
_sbss = . ;
*(.bss .bss.*)
*(COMMON)
_ebss = . ;
} > SRAM
/* This is the uninitialized data section */
.bss :
{
. = ALIGN(4);
/* This is used by the startup in order to initialize the .bss section */
_sbss = .;
.heap (NOLOAD) :
{
. = ALIGN(4);
_heap = ABSOLUTE(.);
_sheap = . ;
*(.heap)
/* fill to the end of SRAM */
. = ORIGIN(SRAM) + LENGTH(SRAM) - _heap ;
. = ALIGN(4) ;
/* place the init stack at the end of SRAM */
_init_stack_top = . - 4 ;
_init_stack_end = . - _init_stack_size ;
/* extend the heap up to the base of the init stack */
_eheap = _init_stack_end ;
} > SRAM
*(.bss)
*(COMMON)
} >RAM
.free_ram (NOLOAD) :
{
_eram = . ;
} > SRAM
.heap (NOLOAD) :
{
. = ALIGN(4);
_sheap = . ;
_sheap_pre_rtos = . ;
*(.heap)
. = ALIGN(4);
_eheap = . ;
_eheap_pre_rtos = . ;
_init_stack_end = . ;
_sheap_post_rtos = . ;
. = . + _init_stack_size ;
. = ALIGN(4);
_eheap_post_rtos = . ;
_init_stack_top = . - 4 ;
} > RAM
/* keep the heap section at the end of the SRAM
* this will allow to claim the remaining bytes not used
* at run time! (done by the reset vector).
*/
_free_ram = . ;
.free_ram (NOLOAD) :
{
. = ORIGIN(RAM) + LENGTH(RAM) - _free_ram ;
/* This is used by the startup in order to initialize the .bss section */
_ebss = . ;
_eram = . ;
} > RAM
PROVIDE ( _end = _ebss ) ;
/* keep the heap section at the end of the SRAM
* this will allow to claim the remaining bytes not used
* at run time! (done by the reset vector).
*/
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
PROVIDE ( end = _ebss );
PROVIDE ( _end = _ebss );
/* this is the FLASH Bank1 */
/* the C or assembly source must explicitly place the code or data there
using the "section" attribute */
.b1text :
{
*(.b1text) /* remaining code */
*(.b1rodata) /* read-only data (constants) */
*(.b1rodata*)
} >FLASHB1
/* this is the EXTMEM */
/* the C or assembly source must explicitly place the code or data there
using the "section" attribute */
/* EXTMEM Bank0 */
.eb0text :
{
*(.eb0text) /* remaining code */
*(.eb0rodata) /* read-only data (constants) */
*(.eb0rodata*)
} >EXTMEMB0
/* EXTMEM Bank1 */
.eb1text :
{
*(.eb1text) /* remaining code */
*(.eb1rodata) /* read-only data (constants) */
*(.eb1rodata*)
} >EXTMEMB1
/* EXTMEM Bank2 */
.eb2text :
{
*(.eb2text) /* remaining code */
*(.eb2rodata) /* read-only data (constants) */
*(.eb2rodata*)
} >EXTMEMB2
/* EXTMEM Bank0 */
.eb3text :
{
*(.eb3text) /* remaining code */
*(.eb3rodata) /* read-only data (constants) */
*(.eb3rodata*)
} >EXTMEMB3
__exidx_start = .;
__exidx_end = .;
/* after that it's only debugging information. */
/* remove the debugging information from the standard libraries */
/DISCARD/ :
{
libc.a ( * )
libm.a ( * )
libgcc.a ( * )
}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
}

View File

@ -83,7 +83,8 @@ void PIOS_IAP_Init( void )
*/
uint32_t PIOS_IAP_CheckRequest( void )
{
#if 0 uint32_t retval = FALSE;
#if 0
uint32_t retval = FALSE;
uint16_t reg1;
uint16_t reg2;
@ -98,6 +99,7 @@ uint32_t PIOS_IAP_CheckRequest( void )
}
return retval;
#endif
return 0;
}

View File

@ -257,7 +257,8 @@ int32_t PIOS_SYS_SerialNumberGet(char *str)
static void NVIC_Configuration(void)
{
/* Set the Vector Table base address as specified in .ld file */
NVIC_SetVectorTable(PIOS_NVIC_VECTTAB_FLASH, 0x0);
extern void *pios_isr_vector_table_base;
NVIC_SetVectorTable((uint32_t)&pios_isr_vector_table_base, 0x0);
/* 4 bits for Interrupt priorities so no sub priorities */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

View File

@ -85,6 +85,163 @@
6549E0D21279B3C800C5476F /* fifo_buffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fifo_buffer.c; sourceTree = "<group>"; };
6549E0D31279B3CF00C5476F /* fifo_buffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fifo_buffer.h; sourceTree = "<group>"; };
655268BC121FBD2900410C6E /* ahrscalibration.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = ahrscalibration.xml; sourceTree = "<group>"; };
6560A30013EE26B700105DA5 /* pios_i2c_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_i2c_config.h; sourceTree = "<group>"; };
6560A30113EE26B700105DA5 /* pios_usart_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_usart_config.h; sourceTree = "<group>"; };
6560A30213EE26B700105DA5 /* pios_usb_hid_core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_usb_hid_core.h; sourceTree = "<group>"; };
6560A30713EE26B700105DA5 /* core_cm3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = core_cm3.c; sourceTree = "<group>"; };
6560A30813EE26B700105DA5 /* core_cm3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = core_cm3.h; sourceTree = "<group>"; };
6560A30913EE26B700105DA5 /* stm32f2xx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx.h; sourceTree = "<group>"; };
6560A30A13EE26B700105DA5 /* system_stm32f2xx.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = system_stm32f2xx.c; sourceTree = "<group>"; };
6560A30B13EE26B700105DA5 /* system_stm32f2xx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = system_stm32f2xx.h; sourceTree = "<group>"; };
6560A30D13EE26B700105DA5 /* CMSIS_Core.htm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = CMSIS_Core.htm; sourceTree = "<group>"; };
6560A30E13EE26B700105DA5 /* License.doc */ = {isa = PBXFileReference; lastKnownFileType = file; path = License.doc; sourceTree = "<group>"; };
6560A31013EE26B700105DA5 /* dfs_sdcard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dfs_sdcard.c; sourceTree = "<group>"; };
6560A31113EE26B700105DA5 /* dosfs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dosfs.c; sourceTree = "<group>"; };
6560A31213EE26B700105DA5 /* dosfs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dosfs.h; sourceTree = "<group>"; };
6560A31313EE26B700105DA5 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
6560A31413EE26B700105DA5 /* README_1st.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README_1st.txt; sourceTree = "<group>"; };
6560A31713EE26B700105DA5 /* croutine.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = croutine.c; sourceTree = "<group>"; };
6560A31913EE26B700105DA5 /* croutine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = croutine.h; sourceTree = "<group>"; };
6560A31A13EE26B700105DA5 /* FreeRTOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FreeRTOS.h; sourceTree = "<group>"; };
6560A31B13EE26B700105DA5 /* list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = list.h; sourceTree = "<group>"; };
6560A31C13EE26B700105DA5 /* mpu_wrappers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mpu_wrappers.h; sourceTree = "<group>"; };
6560A31D13EE26B700105DA5 /* portable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = portable.h; sourceTree = "<group>"; };
6560A31E13EE26B700105DA5 /* projdefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = projdefs.h; sourceTree = "<group>"; };
6560A31F13EE26B700105DA5 /* queue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = queue.h; sourceTree = "<group>"; };
6560A32013EE26B700105DA5 /* semphr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = semphr.h; sourceTree = "<group>"; };
6560A32113EE26B700105DA5 /* StackMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StackMacros.h; sourceTree = "<group>"; };
6560A32213EE26B700105DA5 /* task.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = task.h; sourceTree = "<group>"; };
6560A32313EE26B700105DA5 /* timers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = timers.h; sourceTree = "<group>"; };
6560A32413EE26B700105DA5 /* list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = list.c; sourceTree = "<group>"; };
6560A32813EE26B700105DA5 /* port.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = port.c; sourceTree = "<group>"; };
6560A32913EE26B700105DA5 /* portmacro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = portmacro.h; sourceTree = "<group>"; };
6560A32B13EE26B700105DA5 /* heap_1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = heap_1.c; sourceTree = "<group>"; };
6560A32C13EE26B700105DA5 /* heap_2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = heap_2.c; sourceTree = "<group>"; };
6560A32D13EE26B700105DA5 /* heap_3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = heap_3.c; sourceTree = "<group>"; };
6560A32E13EE26B700105DA5 /* queue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = queue.c; sourceTree = "<group>"; };
6560A32F13EE26B700105DA5 /* tasks.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tasks.c; sourceTree = "<group>"; };
6560A33013EE26B700105DA5 /* timers.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = timers.c; sourceTree = "<group>"; };
6560A33213EE26B700105DA5 /* msd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msd.c; sourceTree = "<group>"; };
6560A33313EE26B700105DA5 /* msd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = msd.h; sourceTree = "<group>"; };
6560A33413EE26B700105DA5 /* msd_bot.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msd_bot.c; sourceTree = "<group>"; };
6560A33513EE26B700105DA5 /* msd_bot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = msd_bot.h; sourceTree = "<group>"; };
6560A33613EE26B700105DA5 /* msd_desc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msd_desc.c; sourceTree = "<group>"; };
6560A33713EE26B700105DA5 /* msd_desc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = msd_desc.h; sourceTree = "<group>"; };
6560A33813EE26B700105DA5 /* msd_memory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msd_memory.c; sourceTree = "<group>"; };
6560A33913EE26B700105DA5 /* msd_memory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = msd_memory.h; sourceTree = "<group>"; };
6560A33A13EE26B700105DA5 /* msd_scsi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msd_scsi.c; sourceTree = "<group>"; };
6560A33B13EE26B700105DA5 /* msd_scsi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = msd_scsi.h; sourceTree = "<group>"; };
6560A33C13EE26B700105DA5 /* msd_scsi_data.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msd_scsi_data.c; sourceTree = "<group>"; };
6560A33F13EE26B700105DA5 /* misc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = misc.h; sourceTree = "<group>"; };
6560A34013EE26B700105DA5 /* stm32f2xx_adc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_adc.h; sourceTree = "<group>"; };
6560A34113EE26B700105DA5 /* stm32f2xx_can.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_can.h; sourceTree = "<group>"; };
6560A34213EE26B700105DA5 /* stm32f2xx_crc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_crc.h; sourceTree = "<group>"; };
6560A34313EE26B700105DA5 /* stm32f2xx_cryp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_cryp.h; sourceTree = "<group>"; };
6560A34413EE26B700105DA5 /* stm32f2xx_dac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_dac.h; sourceTree = "<group>"; };
6560A34513EE26B700105DA5 /* stm32f2xx_dbgmcu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_dbgmcu.h; sourceTree = "<group>"; };
6560A34613EE26B700105DA5 /* stm32f2xx_dcmi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_dcmi.h; sourceTree = "<group>"; };
6560A34713EE26B700105DA5 /* stm32f2xx_dma.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_dma.h; sourceTree = "<group>"; };
6560A34813EE26B700105DA5 /* stm32f2xx_exti.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_exti.h; sourceTree = "<group>"; };
6560A34913EE26B700105DA5 /* stm32f2xx_flash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_flash.h; sourceTree = "<group>"; };
6560A34A13EE26B700105DA5 /* stm32f2xx_fsmc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_fsmc.h; sourceTree = "<group>"; };
6560A34B13EE26B700105DA5 /* stm32f2xx_gpio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_gpio.h; sourceTree = "<group>"; };
6560A34C13EE26B700105DA5 /* stm32f2xx_hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_hash.h; sourceTree = "<group>"; };
6560A34D13EE26B700105DA5 /* stm32f2xx_i2c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_i2c.h; sourceTree = "<group>"; };
6560A34E13EE26B700105DA5 /* stm32f2xx_iwdg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_iwdg.h; sourceTree = "<group>"; };
6560A34F13EE26B700105DA5 /* stm32f2xx_pwr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_pwr.h; sourceTree = "<group>"; };
6560A35013EE26B700105DA5 /* stm32f2xx_rcc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_rcc.h; sourceTree = "<group>"; };
6560A35113EE26B700105DA5 /* stm32f2xx_rng.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_rng.h; sourceTree = "<group>"; };
6560A35213EE26B700105DA5 /* stm32f2xx_rtc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_rtc.h; sourceTree = "<group>"; };
6560A35313EE26B700105DA5 /* stm32f2xx_sdio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_sdio.h; sourceTree = "<group>"; };
6560A35413EE26B700105DA5 /* stm32f2xx_spi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_spi.h; sourceTree = "<group>"; };
6560A35513EE26B700105DA5 /* stm32f2xx_syscfg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_syscfg.h; sourceTree = "<group>"; };
6560A35613EE26B700105DA5 /* stm32f2xx_tim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_tim.h; sourceTree = "<group>"; };
6560A35713EE26B700105DA5 /* stm32f2xx_usart.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_usart.h; sourceTree = "<group>"; };
6560A35813EE26B700105DA5 /* stm32f2xx_wwdg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stm32f2xx_wwdg.h; sourceTree = "<group>"; };
6560A35A13EE26B700105DA5 /* misc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = misc.c; sourceTree = "<group>"; };
6560A35B13EE26B700105DA5 /* stm32f2xx_adc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_adc.c; sourceTree = "<group>"; };
6560A35C13EE26B700105DA5 /* stm32f2xx_can.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_can.c; sourceTree = "<group>"; };
6560A35D13EE26B700105DA5 /* stm32f2xx_crc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_crc.c; sourceTree = "<group>"; };
6560A35E13EE26B700105DA5 /* stm32f2xx_cryp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_cryp.c; sourceTree = "<group>"; };
6560A35F13EE26B700105DA5 /* stm32f2xx_cryp_aes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_cryp_aes.c; sourceTree = "<group>"; };
6560A36013EE26B700105DA5 /* stm32f2xx_cryp_des.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_cryp_des.c; sourceTree = "<group>"; };
6560A36113EE26B700105DA5 /* stm32f2xx_cryp_tdes.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_cryp_tdes.c; sourceTree = "<group>"; };
6560A36213EE26B700105DA5 /* stm32f2xx_dac.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_dac.c; sourceTree = "<group>"; };
6560A36313EE26B700105DA5 /* stm32f2xx_dbgmcu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_dbgmcu.c; sourceTree = "<group>"; };
6560A36413EE26B700105DA5 /* stm32f2xx_dcmi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_dcmi.c; sourceTree = "<group>"; };
6560A36513EE26B700105DA5 /* stm32f2xx_dma.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_dma.c; sourceTree = "<group>"; };
6560A36613EE26B700105DA5 /* stm32f2xx_exti.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_exti.c; sourceTree = "<group>"; };
6560A36713EE26B700105DA5 /* stm32f2xx_flash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_flash.c; sourceTree = "<group>"; };
6560A36813EE26B700105DA5 /* stm32f2xx_fsmc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_fsmc.c; sourceTree = "<group>"; };
6560A36913EE26B700105DA5 /* stm32f2xx_gpio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_gpio.c; sourceTree = "<group>"; };
6560A36A13EE26B700105DA5 /* stm32f2xx_hash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_hash.c; sourceTree = "<group>"; };
6560A36B13EE26B700105DA5 /* stm32f2xx_hash_md5.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_hash_md5.c; sourceTree = "<group>"; };
6560A36C13EE26B700105DA5 /* stm32f2xx_hash_sha1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_hash_sha1.c; sourceTree = "<group>"; };
6560A36D13EE26B700105DA5 /* stm32f2xx_i2c.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_i2c.c; sourceTree = "<group>"; };
6560A36E13EE26B700105DA5 /* stm32f2xx_iwdg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_iwdg.c; sourceTree = "<group>"; };
6560A36F13EE26B700105DA5 /* stm32f2xx_pwr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_pwr.c; sourceTree = "<group>"; };
6560A37013EE26B700105DA5 /* stm32f2xx_rcc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_rcc.c; sourceTree = "<group>"; };
6560A37113EE26B700105DA5 /* stm32f2xx_rng.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_rng.c; sourceTree = "<group>"; };
6560A37213EE26B700105DA5 /* stm32f2xx_rtc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_rtc.c; sourceTree = "<group>"; };
6560A37313EE26B700105DA5 /* stm32f2xx_sdio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_sdio.c; sourceTree = "<group>"; };
6560A37413EE26B700105DA5 /* stm32f2xx_spi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_spi.c; sourceTree = "<group>"; };
6560A37513EE26B700105DA5 /* stm32f2xx_syscfg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_syscfg.c; sourceTree = "<group>"; };
6560A37613EE26B700105DA5 /* stm32f2xx_tim.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_tim.c; sourceTree = "<group>"; };
6560A37713EE26B700105DA5 /* stm32f2xx_usart.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_usart.c; sourceTree = "<group>"; };
6560A37813EE26B700105DA5 /* stm32f2xx_wwdg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stm32f2xx_wwdg.c; sourceTree = "<group>"; };
6560A37913EE26B700105DA5 /* link_STM32F2xx_INS_BL_sections.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM32F2xx_INS_BL_sections.ld; sourceTree = "<group>"; };
6560A37A13EE26B700105DA5 /* link_STM32F2xx_INS_memory.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM32F2xx_INS_memory.ld; sourceTree = "<group>"; };
6560A37B13EE26B700105DA5 /* link_STM32F2xx_INS_sections.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM32F2xx_INS_sections.ld; sourceTree = "<group>"; };
6560A37C13EE26B700105DA5 /* pios_adc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_adc.c; sourceTree = "<group>"; };
6560A37D13EE26B700105DA5 /* pios_debug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_debug.c; sourceTree = "<group>"; };
6560A37E13EE26B700105DA5 /* pios_delay.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_delay.c; sourceTree = "<group>"; };
6560A37F13EE26B700105DA5 /* pios_exti.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_exti.c; sourceTree = "<group>"; };
6560A38013EE26B700105DA5 /* pios_gpio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_gpio.c; sourceTree = "<group>"; };
6560A38113EE26B700105DA5 /* pios_i2c.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_i2c.c; sourceTree = "<group>"; };
6560A38213EE26B700105DA5 /* pios_iap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_iap.c; sourceTree = "<group>"; };
6560A38313EE26B700105DA5 /* pios_irq.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_irq.c; sourceTree = "<group>"; };
6560A38413EE26B700105DA5 /* pios_led.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_led.c; sourceTree = "<group>"; };
6560A38513EE26B700105DA5 /* pios_ppm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_ppm.c; sourceTree = "<group>"; };
6560A38613EE26B700105DA5 /* pios_servo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_servo.c; sourceTree = "<group>"; };
6560A38713EE26B700105DA5 /* pios_spi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_spi.c; sourceTree = "<group>"; };
6560A38813EE26B700105DA5 /* pios_sys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_sys.c; sourceTree = "<group>"; };
6560A38913EE26B700105DA5 /* pios_usart.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_usart.c; sourceTree = "<group>"; };
6560A38A13EE26B700105DA5 /* pios_wdg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_wdg.c; sourceTree = "<group>"; };
6560A38B13EE26B700105DA5 /* startup_stm32f2xx.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = startup_stm32f2xx.S; sourceTree = "<group>"; };
6560A38C13EE26B700105DA5 /* startup_stm32f2xx_BL.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = startup_stm32f2xx_BL.S; sourceTree = "<group>"; };
6560A38D13EE26B700105DA5 /* vectors_stm32f2xx.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = vectors_stm32f2xx.S; sourceTree = "<group>"; };
6560A38E13EE270C00105DA5 /* link_STM3210E_INS_BL_sections.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM3210E_INS_BL_sections.ld; sourceTree = "<group>"; };
6560A38F13EE270C00105DA5 /* link_STM3210E_INS_memory.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM3210E_INS_memory.ld; sourceTree = "<group>"; };
6560A39013EE270C00105DA5 /* link_STM3210E_INS_sections.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM3210E_INS_sections.ld; sourceTree = "<group>"; };
6560A39113EE270C00105DA5 /* link_STM3210E_OP_BL_sections.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM3210E_OP_BL_sections.ld; sourceTree = "<group>"; };
6560A39213EE270C00105DA5 /* link_STM3210E_OP_memory.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM3210E_OP_memory.ld; sourceTree = "<group>"; };
6560A39313EE270C00105DA5 /* link_STM3210E_OP_sections.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM3210E_OP_sections.ld; sourceTree = "<group>"; };
6560A39413EE270C00105DA5 /* link_STM32103CB_AHRS_BL_sections.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM32103CB_AHRS_BL_sections.ld; sourceTree = "<group>"; };
6560A39513EE270C00105DA5 /* link_STM32103CB_AHRS_memory.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM32103CB_AHRS_memory.ld; sourceTree = "<group>"; };
6560A39613EE270C00105DA5 /* link_STM32103CB_AHRS_sections.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM32103CB_AHRS_sections.ld; sourceTree = "<group>"; };
6560A39713EE270C00105DA5 /* link_STM32103CB_CC_Rev1_BL_sections.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM32103CB_CC_Rev1_BL_sections.ld; sourceTree = "<group>"; };
6560A39813EE270C00105DA5 /* link_STM32103CB_PIPXTREME_BL_sections.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM32103CB_PIPXTREME_BL_sections.ld; sourceTree = "<group>"; };
6560A39913EE270C00105DA5 /* link_STM32103CB_PIPXTREME_memory.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM32103CB_PIPXTREME_memory.ld; sourceTree = "<group>"; };
6560A39A13EE270C00105DA5 /* link_STM32103CB_PIPXTREME_sections.ld */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = link_STM32103CB_PIPXTREME_sections.ld; sourceTree = "<group>"; };
6560A39B13EE270C00105DA5 /* startup_stm32f10x_HD_OP.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = startup_stm32f10x_HD_OP.S; sourceTree = "<group>"; };
6560A39C13EE270C00105DA5 /* startup_stm32f10x_MD_CC.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = startup_stm32f10x_MD_CC.S; sourceTree = "<group>"; };
6560A39D13EE277E00105DA5 /* pios_iap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_iap.c; sourceTree = "<group>"; };
6560A39E13EE277E00105DA5 /* pios_sbus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_sbus.c; sourceTree = "<group>"; };
6560A3A013EE2E8B00105DA5 /* ahrs_slave_test.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ahrs_slave_test.c; path = INS/ahrs_slave_test.c; sourceTree = "<group>"; };
6560A3A113EE2E8B00105DA5 /* ahrs_spi_program_master.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ahrs_spi_program_master.c; path = INS/ahrs_spi_program_master.c; sourceTree = "<group>"; };
6560A3A213EE2E8B00105DA5 /* ahrs_spi_program_slave.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ahrs_spi_program_slave.c; path = INS/ahrs_spi_program_slave.c; sourceTree = "<group>"; };
6560A3A313EE2E8B00105DA5 /* ahrs_spi_program.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ahrs_spi_program.c; path = INS/ahrs_spi_program.c; sourceTree = "<group>"; };
6560A3A413EE2E8B00105DA5 /* bl_fsm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bl_fsm.c; path = INS/bl_fsm.c; sourceTree = "<group>"; };
6560A3A613EE2E8B00105DA5 /* ahrs_bl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ahrs_bl.h; sourceTree = "<group>"; };
6560A3A713EE2E8B00105DA5 /* ahrs_spi_program.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ahrs_spi_program.h; sourceTree = "<group>"; };
6560A3A813EE2E8B00105DA5 /* ahrs_spi_program_master.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ahrs_spi_program_master.h; sourceTree = "<group>"; };
6560A3A913EE2E8B00105DA5 /* ahrs_spi_program_slave.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ahrs_spi_program_slave.h; sourceTree = "<group>"; };
6560A3AA13EE2E8B00105DA5 /* bl_fsm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bl_fsm.h; sourceTree = "<group>"; };
6560A3AB13EE2E8B00105DA5 /* ins_bl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ins_bl.h; sourceTree = "<group>"; };
6560A3AC13EE2E8B00105DA5 /* pios_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_config.h; sourceTree = "<group>"; };
6560A3AD13EE2E8B00105DA5 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = main.c; path = INS/main.c; sourceTree = "<group>"; };
6560A3AE13EE2E8B00105DA5 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; name = Makefile; path = INS/Makefile; sourceTree = "<group>"; };
6560A3AF13EE2E8B00105DA5 /* pios_board.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pios_board.c; path = INS/pios_board.c; sourceTree = "<group>"; };
656268C612DC1923007B0A0F /* nedaccel.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = nedaccel.xml; sourceTree = "<group>"; };
6562BE1713CCAD0600C823E8 /* pios_rcvr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pios_rcvr.c; sourceTree = "<group>"; };
65632DF51251650300469B77 /* pios_board.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pios_board.h; sourceTree = "<group>"; };
@ -3544,6 +3701,313 @@
path = inc;
sourceTree = "<group>";
};
6560A2FD13EE26B700105DA5 /* STM32F2xx */ = {
isa = PBXGroup;
children = (
6560A2FF13EE26B700105DA5 /* inc */,
6560A30313EE26B700105DA5 /* Libraries */,
6560A37913EE26B700105DA5 /* link_STM32F2xx_INS_BL_sections.ld */,
6560A37A13EE26B700105DA5 /* link_STM32F2xx_INS_memory.ld */,
6560A37B13EE26B700105DA5 /* link_STM32F2xx_INS_sections.ld */,
6560A37C13EE26B700105DA5 /* pios_adc.c */,
6560A37D13EE26B700105DA5 /* pios_debug.c */,
6560A37E13EE26B700105DA5 /* pios_delay.c */,
6560A37F13EE26B700105DA5 /* pios_exti.c */,
6560A38013EE26B700105DA5 /* pios_gpio.c */,
6560A38113EE26B700105DA5 /* pios_i2c.c */,
6560A38213EE26B700105DA5 /* pios_iap.c */,
6560A38313EE26B700105DA5 /* pios_irq.c */,
6560A38413EE26B700105DA5 /* pios_led.c */,
6560A38513EE26B700105DA5 /* pios_ppm.c */,
6560A38613EE26B700105DA5 /* pios_servo.c */,
6560A38713EE26B700105DA5 /* pios_spi.c */,
6560A38813EE26B700105DA5 /* pios_sys.c */,
6560A38913EE26B700105DA5 /* pios_usart.c */,
6560A38A13EE26B700105DA5 /* pios_wdg.c */,
6560A38B13EE26B700105DA5 /* startup_stm32f2xx.S */,
6560A38C13EE26B700105DA5 /* startup_stm32f2xx_BL.S */,
6560A38D13EE26B700105DA5 /* vectors_stm32f2xx.S */,
);
path = STM32F2xx;
sourceTree = "<group>";
};
6560A2FF13EE26B700105DA5 /* inc */ = {
isa = PBXGroup;
children = (
6560A30013EE26B700105DA5 /* pios_i2c_config.h */,
6560A30113EE26B700105DA5 /* pios_usart_config.h */,
6560A30213EE26B700105DA5 /* pios_usb_hid_core.h */,
);
path = inc;
sourceTree = "<group>";
};
6560A30313EE26B700105DA5 /* Libraries */ = {
isa = PBXGroup;
children = (
6560A30413EE26B700105DA5 /* CMSIS */,
6560A30F13EE26B700105DA5 /* dosfs */,
6560A31513EE26B700105DA5 /* FreeRTOS */,
6560A33113EE26B700105DA5 /* msd */,
6560A33D13EE26B700105DA5 /* STM32F2xx_StdPeriph_Driver */,
);
path = Libraries;
sourceTree = "<group>";
};
6560A30413EE26B700105DA5 /* CMSIS */ = {
isa = PBXGroup;
children = (
6560A30513EE26B700105DA5 /* Core */,
6560A30E13EE26B700105DA5 /* License.doc */,
);
path = CMSIS;
sourceTree = "<group>";
};
6560A30513EE26B700105DA5 /* Core */ = {
isa = PBXGroup;
children = (
6560A30613EE26B700105DA5 /* CM3 */,
6560A30C13EE26B700105DA5 /* Documentation */,
);
path = Core;
sourceTree = "<group>";
};
6560A30613EE26B700105DA5 /* CM3 */ = {
isa = PBXGroup;
children = (
6560A30713EE26B700105DA5 /* core_cm3.c */,
6560A30813EE26B700105DA5 /* core_cm3.h */,
6560A30913EE26B700105DA5 /* stm32f2xx.h */,
6560A30A13EE26B700105DA5 /* system_stm32f2xx.c */,
6560A30B13EE26B700105DA5 /* system_stm32f2xx.h */,
);
path = CM3;
sourceTree = "<group>";
};
6560A30C13EE26B700105DA5 /* Documentation */ = {
isa = PBXGroup;
children = (
6560A30D13EE26B700105DA5 /* CMSIS_Core.htm */,
);
path = Documentation;
sourceTree = "<group>";
};
6560A30F13EE26B700105DA5 /* dosfs */ = {
isa = PBXGroup;
children = (
6560A31013EE26B700105DA5 /* dfs_sdcard.c */,
6560A31113EE26B700105DA5 /* dosfs.c */,
6560A31213EE26B700105DA5 /* dosfs.h */,
6560A31313EE26B700105DA5 /* README.txt */,
6560A31413EE26B700105DA5 /* README_1st.txt */,
);
path = dosfs;
sourceTree = "<group>";
};
6560A31513EE26B700105DA5 /* FreeRTOS */ = {
isa = PBXGroup;
children = (
6560A31613EE26B700105DA5 /* Source */,
);
path = FreeRTOS;
sourceTree = "<group>";
};
6560A31613EE26B700105DA5 /* Source */ = {
isa = PBXGroup;
children = (
6560A31713EE26B700105DA5 /* croutine.c */,
6560A31813EE26B700105DA5 /* include */,
6560A32413EE26B700105DA5 /* list.c */,
6560A32513EE26B700105DA5 /* portable */,
6560A32E13EE26B700105DA5 /* queue.c */,
6560A32F13EE26B700105DA5 /* tasks.c */,
6560A33013EE26B700105DA5 /* timers.c */,
);
path = Source;
sourceTree = "<group>";
};
6560A31813EE26B700105DA5 /* include */ = {
isa = PBXGroup;
children = (
6560A31913EE26B700105DA5 /* croutine.h */,
6560A31A13EE26B700105DA5 /* FreeRTOS.h */,
6560A31B13EE26B700105DA5 /* list.h */,
6560A31C13EE26B700105DA5 /* mpu_wrappers.h */,
6560A31D13EE26B700105DA5 /* portable.h */,
6560A31E13EE26B700105DA5 /* projdefs.h */,
6560A31F13EE26B700105DA5 /* queue.h */,
6560A32013EE26B700105DA5 /* semphr.h */,
6560A32113EE26B700105DA5 /* StackMacros.h */,
6560A32213EE26B700105DA5 /* task.h */,
6560A32313EE26B700105DA5 /* timers.h */,
);
path = include;
sourceTree = "<group>";
};
6560A32513EE26B700105DA5 /* portable */ = {
isa = PBXGroup;
children = (
6560A32613EE26B700105DA5 /* GCC */,
6560A32A13EE26B700105DA5 /* MemMang */,
);
path = portable;
sourceTree = "<group>";
};
6560A32613EE26B700105DA5 /* GCC */ = {
isa = PBXGroup;
children = (
6560A32713EE26B700105DA5 /* ARM_CM3 */,
);
path = GCC;
sourceTree = "<group>";
};
6560A32713EE26B700105DA5 /* ARM_CM3 */ = {
isa = PBXGroup;
children = (
6560A32813EE26B700105DA5 /* port.c */,
6560A32913EE26B700105DA5 /* portmacro.h */,
);
path = ARM_CM3;
sourceTree = "<group>";
};
6560A32A13EE26B700105DA5 /* MemMang */ = {
isa = PBXGroup;
children = (
6560A32B13EE26B700105DA5 /* heap_1.c */,
6560A32C13EE26B700105DA5 /* heap_2.c */,
6560A32D13EE26B700105DA5 /* heap_3.c */,
);
path = MemMang;
sourceTree = "<group>";
};
6560A33113EE26B700105DA5 /* msd */ = {
isa = PBXGroup;
children = (
6560A33213EE26B700105DA5 /* msd.c */,
6560A33313EE26B700105DA5 /* msd.h */,
6560A33413EE26B700105DA5 /* msd_bot.c */,
6560A33513EE26B700105DA5 /* msd_bot.h */,
6560A33613EE26B700105DA5 /* msd_desc.c */,
6560A33713EE26B700105DA5 /* msd_desc.h */,
6560A33813EE26B700105DA5 /* msd_memory.c */,
6560A33913EE26B700105DA5 /* msd_memory.h */,
6560A33A13EE26B700105DA5 /* msd_scsi.c */,
6560A33B13EE26B700105DA5 /* msd_scsi.h */,
6560A33C13EE26B700105DA5 /* msd_scsi_data.c */,
);
path = msd;
sourceTree = "<group>";
};
6560A33D13EE26B700105DA5 /* STM32F2xx_StdPeriph_Driver */ = {
isa = PBXGroup;
children = (
6560A33E13EE26B700105DA5 /* inc */,
6560A35913EE26B700105DA5 /* src */,
);
path = STM32F2xx_StdPeriph_Driver;
sourceTree = "<group>";
};
6560A33E13EE26B700105DA5 /* inc */ = {
isa = PBXGroup;
children = (
6560A33F13EE26B700105DA5 /* misc.h */,
6560A34013EE26B700105DA5 /* stm32f2xx_adc.h */,
6560A34113EE26B700105DA5 /* stm32f2xx_can.h */,
6560A34213EE26B700105DA5 /* stm32f2xx_crc.h */,
6560A34313EE26B700105DA5 /* stm32f2xx_cryp.h */,
6560A34413EE26B700105DA5 /* stm32f2xx_dac.h */,
6560A34513EE26B700105DA5 /* stm32f2xx_dbgmcu.h */,
6560A34613EE26B700105DA5 /* stm32f2xx_dcmi.h */,
6560A34713EE26B700105DA5 /* stm32f2xx_dma.h */,
6560A34813EE26B700105DA5 /* stm32f2xx_exti.h */,
6560A34913EE26B700105DA5 /* stm32f2xx_flash.h */,
6560A34A13EE26B700105DA5 /* stm32f2xx_fsmc.h */,
6560A34B13EE26B700105DA5 /* stm32f2xx_gpio.h */,
6560A34C13EE26B700105DA5 /* stm32f2xx_hash.h */,
6560A34D13EE26B700105DA5 /* stm32f2xx_i2c.h */,
6560A34E13EE26B700105DA5 /* stm32f2xx_iwdg.h */,
6560A34F13EE26B700105DA5 /* stm32f2xx_pwr.h */,
6560A35013EE26B700105DA5 /* stm32f2xx_rcc.h */,
6560A35113EE26B700105DA5 /* stm32f2xx_rng.h */,
6560A35213EE26B700105DA5 /* stm32f2xx_rtc.h */,
6560A35313EE26B700105DA5 /* stm32f2xx_sdio.h */,
6560A35413EE26B700105DA5 /* stm32f2xx_spi.h */,
6560A35513EE26B700105DA5 /* stm32f2xx_syscfg.h */,
6560A35613EE26B700105DA5 /* stm32f2xx_tim.h */,
6560A35713EE26B700105DA5 /* stm32f2xx_usart.h */,
6560A35813EE26B700105DA5 /* stm32f2xx_wwdg.h */,
);
path = inc;
sourceTree = "<group>";
};
6560A35913EE26B700105DA5 /* src */ = {
isa = PBXGroup;
children = (
6560A35A13EE26B700105DA5 /* misc.c */,
6560A35B13EE26B700105DA5 /* stm32f2xx_adc.c */,
6560A35C13EE26B700105DA5 /* stm32f2xx_can.c */,
6560A35D13EE26B700105DA5 /* stm32f2xx_crc.c */,
6560A35E13EE26B700105DA5 /* stm32f2xx_cryp.c */,
6560A35F13EE26B700105DA5 /* stm32f2xx_cryp_aes.c */,
6560A36013EE26B700105DA5 /* stm32f2xx_cryp_des.c */,
6560A36113EE26B700105DA5 /* stm32f2xx_cryp_tdes.c */,
6560A36213EE26B700105DA5 /* stm32f2xx_dac.c */,
6560A36313EE26B700105DA5 /* stm32f2xx_dbgmcu.c */,
6560A36413EE26B700105DA5 /* stm32f2xx_dcmi.c */,
6560A36513EE26B700105DA5 /* stm32f2xx_dma.c */,
6560A36613EE26B700105DA5 /* stm32f2xx_exti.c */,
6560A36713EE26B700105DA5 /* stm32f2xx_flash.c */,
6560A36813EE26B700105DA5 /* stm32f2xx_fsmc.c */,
6560A36913EE26B700105DA5 /* stm32f2xx_gpio.c */,
6560A36A13EE26B700105DA5 /* stm32f2xx_hash.c */,
6560A36B13EE26B700105DA5 /* stm32f2xx_hash_md5.c */,
6560A36C13EE26B700105DA5 /* stm32f2xx_hash_sha1.c */,
6560A36D13EE26B700105DA5 /* stm32f2xx_i2c.c */,
6560A36E13EE26B700105DA5 /* stm32f2xx_iwdg.c */,
6560A36F13EE26B700105DA5 /* stm32f2xx_pwr.c */,
6560A37013EE26B700105DA5 /* stm32f2xx_rcc.c */,
6560A37113EE26B700105DA5 /* stm32f2xx_rng.c */,
6560A37213EE26B700105DA5 /* stm32f2xx_rtc.c */,
6560A37313EE26B700105DA5 /* stm32f2xx_sdio.c */,
6560A37413EE26B700105DA5 /* stm32f2xx_spi.c */,
6560A37513EE26B700105DA5 /* stm32f2xx_syscfg.c */,
6560A37613EE26B700105DA5 /* stm32f2xx_tim.c */,
6560A37713EE26B700105DA5 /* stm32f2xx_usart.c */,
6560A37813EE26B700105DA5 /* stm32f2xx_wwdg.c */,
);
path = src;
sourceTree = "<group>";
};
6560A39F13EE2E6E00105DA5 /* INS */ = {
isa = PBXGroup;
children = (
6560A3A013EE2E8B00105DA5 /* ahrs_slave_test.c */,
6560A3A113EE2E8B00105DA5 /* ahrs_spi_program_master.c */,
6560A3A213EE2E8B00105DA5 /* ahrs_spi_program_slave.c */,
6560A3A313EE2E8B00105DA5 /* ahrs_spi_program.c */,
6560A3A413EE2E8B00105DA5 /* bl_fsm.c */,
6560A3A513EE2E8B00105DA5 /* inc */,
6560A3AD13EE2E8B00105DA5 /* main.c */,
6560A3AE13EE2E8B00105DA5 /* Makefile */,
6560A3AF13EE2E8B00105DA5 /* pios_board.c */,
);
name = INS;
sourceTree = "<group>";
};
6560A3A513EE2E8B00105DA5 /* inc */ = {
isa = PBXGroup;
children = (
6560A3A613EE2E8B00105DA5 /* ahrs_bl.h */,
6560A3A713EE2E8B00105DA5 /* ahrs_spi_program.h */,
6560A3A813EE2E8B00105DA5 /* ahrs_spi_program_master.h */,
6560A3A913EE2E8B00105DA5 /* ahrs_spi_program_slave.h */,
6560A3AA13EE2E8B00105DA5 /* bl_fsm.h */,
6560A3AB13EE2E8B00105DA5 /* ins_bl.h */,
6560A3AC13EE2E8B00105DA5 /* pios_config.h */,
);
name = inc;
path = INS/inc;
sourceTree = "<group>";
};
65632DF41251650300469B77 /* Boards */ = {
isa = PBXGroup;
children = (
@ -7648,6 +8112,7 @@
65E8F03811EFF25C00BBF654 /* inc */,
65E8F05711EFF25C00BBF654 /* pios.h */,
65E8F05811EFF25C00BBF654 /* STM32F10x */,
6560A2FD13EE26B700105DA5 /* STM32F2xx */,
);
name = PiOS;
path = ../../PiOS;
@ -7728,6 +8193,23 @@
65E8F05811EFF25C00BBF654 /* STM32F10x */ = {
isa = PBXGroup;
children = (
6560A39D13EE277E00105DA5 /* pios_iap.c */,
6560A39E13EE277E00105DA5 /* pios_sbus.c */,
6560A38E13EE270C00105DA5 /* link_STM3210E_INS_BL_sections.ld */,
6560A38F13EE270C00105DA5 /* link_STM3210E_INS_memory.ld */,
6560A39013EE270C00105DA5 /* link_STM3210E_INS_sections.ld */,
6560A39113EE270C00105DA5 /* link_STM3210E_OP_BL_sections.ld */,
6560A39213EE270C00105DA5 /* link_STM3210E_OP_memory.ld */,
6560A39313EE270C00105DA5 /* link_STM3210E_OP_sections.ld */,
6560A39413EE270C00105DA5 /* link_STM32103CB_AHRS_BL_sections.ld */,
6560A39513EE270C00105DA5 /* link_STM32103CB_AHRS_memory.ld */,
6560A39613EE270C00105DA5 /* link_STM32103CB_AHRS_sections.ld */,
6560A39713EE270C00105DA5 /* link_STM32103CB_CC_Rev1_BL_sections.ld */,
6560A39813EE270C00105DA5 /* link_STM32103CB_PIPXTREME_BL_sections.ld */,
6560A39913EE270C00105DA5 /* link_STM32103CB_PIPXTREME_memory.ld */,
6560A39A13EE270C00105DA5 /* link_STM32103CB_PIPXTREME_sections.ld */,
6560A39B13EE270C00105DA5 /* startup_stm32f10x_HD_OP.S */,
6560A39C13EE270C00105DA5 /* startup_stm32f10x_MD_CC.S */,
65E8F05911EFF25C00BBF654 /* Libraries */,
65E8F0D811EFF25C00BBF654 /* link_stm32f10x_HD.ld */,
65E8F0DB11EFF25C00BBF654 /* link_stm32f10x_MD.ld */,
@ -8304,6 +8786,7 @@
65FF4BB313791C3300146BE4 /* Bootloaders */ = {
isa = PBXGroup;
children = (
6560A39F13EE2E6E00105DA5 /* INS */,
65FF4BB413791C3300146BE4 /* AHRS */,
65FF4BC413791C3300146BE4 /* BootloaderUpdater */,
65FF4BCB13791C3300146BE4 /* CopterControl */,

View File

@ -1,8 +1,8 @@
define connect
target remote localhost:3334
monitor cortex_m3 vector_catch all
file ./build/ins/INS.elf
# file ./build/bl_ins/BL_INS.elf
# file ./build/fw_ins/fw_ins.elf
file ./build/bl_ins/bl_ins.elf
end
#monitor reset halt

View File

@ -5,7 +5,7 @@ HW_TYPE := 0x00
MCU := cortex-m3
CHIP := STM32F205RGT
BOARD := STM3210E_INS
BOARD := STM32F2xx_INS
MODEL := HD
MODEL_SUFFIX :=
@ -16,3 +16,5 @@ FW_BANK_BASE := 0x08002000 # Start of firmware flash
FW_BANK_SIZE := 0x0001E000 # Should include FW_DESC_SIZE
FW_DESC_SIZE := 0x00000064
OSCILLATOR_FREQ := 8000000