LP-72 BL wouldnt build because it didnt know DSM structs
[librepilot.git] / flight / pios / stm32f10x / link_STM32103CB_OPLINKMINI_BL_sections.ld
blob6763f4275ea3d8602f0fae3f186d033b7fed05ad
1 /* Stub out these functions since we don't use them anyway */
2 PROVIDE (   vPortSVCHandler = 0 ) ;
3 PROVIDE (   xPortPendSVHandler = 0 ) ;
4 PROVIDE (   xPortSysTickHandler = 0 ) ;
6 /* This is the size of the stack for early init and for all FreeRTOS IRQs */
7 _irq_stack_size = 0x400;
9 /* Section Definitions */
10 SECTIONS
12     .text :
13     {
14         PROVIDE (pios_isr_vector_table_base = .);
15         KEEP(*(.isr_vector .isr_vector.*))
16         *(.text .text.* .gnu.linkonce.t.*)
17         *(.glue_7t) *(.glue_7)
18         *(.rodata .rodata* .gnu.linkonce.r.*)
19     } > BL_FLASH
21     .ARM.extab :
22     {
23         *(.ARM.extab* .gnu.linkonce.armextab.*)
24     } > BL_FLASH
26     .ARM.exidx :
27     {
28         *(.ARM.exidx* .gnu.linkonce.armexidx.*)
29     } > BL_FLASH
31     . = ALIGN(4);
32     _etext = .;
33     _sidata = .;
35     .data : AT (_etext)
36     {
37         _sdata = .;
38         *(.data .data.*)
39         . = ALIGN(4);
40         _edata = . ;
41     } > SRAM
43     /* .bss section which is used for uninitialized data */
44     .bss (NOLOAD) :
45     {
46         _sbss = . ;
47         *(.bss .bss.*)
48         *(COMMON)
49         . = ALIGN(4);
50         _ebss = . ;
51     } > SRAM
53     /* 
54      * This stack is used both as the initial sp during early init as well as ultimately
55      * being used as the STM32's MSP (Main Stack Pointer) which is the same stack that
56      * is used for _all_ interrupt handlers.  The end of this stack should be placed
57      * against the lowest address in RAM so that a stack overrun results in a hard fault
58      * at the first access beyond the end of the stack.
59      */
60     .irq_stack :
61     {
62          . = ALIGN(4);
63          _irq_stack_end = . ;
64          . = . + _irq_stack_size ;
65          . = ALIGN(4);
66          _irq_stack_top = . - 4 ;
67          _init_stack_top = _irq_stack_top;
68          . = ALIGN(4);
69     } > SRAM
70     
71     . = ALIGN(4);
72     _end = . ;
74     .boardinfo :
75     {
76         . = ALIGN(4);
77         KEEP(*(.boardinfo))
78         . = ALIGN(ORIGIN(BD_INFO)+LENGTH(BD_INFO));
79     } > BD_INFO
81     /* Stabs debugging sections.  */
82     .stab          0 : { *(.stab) }
83     .stabstr       0 : { *(.stabstr) }
84     .stab.excl     0 : { *(.stab.excl) }
85     .stab.exclstr  0 : { *(.stab.exclstr) }
86     .stab.index    0 : { *(.stab.index) }
87     .stab.indexstr 0 : { *(.stab.indexstr) }
88     .comment       0 : { *(.comment) }
89     /* DWARF debug sections.
90        Symbols in the DWARF debugging sections are relative to the beginning
91        of the section so we begin them at 0.  */
92     /* DWARF 1 */
93     .debug          0 : { *(.debug) }
94     .line           0 : { *(.line) }
95     /* GNU DWARF 1 extensions */
96     .debug_srcinfo  0 : { *(.debug_srcinfo) }
97     .debug_sfnames  0 : { *(.debug_sfnames) }
98     /* DWARF 1.1 and DWARF 2 */
99     .debug_aranges  0 : { *(.debug_aranges) }
100     .debug_pubnames 0 : { *(.debug_pubnames) }
101     /* DWARF 2 */
102     .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
103     .debug_abbrev   0 : { *(.debug_abbrev) }
104     .debug_line     0 : { *(.debug_line) }
105     .debug_frame    0 : { *(.debug_frame) }
106     .debug_str      0 : { *(.debug_str) }
107     .debug_loc      0 : { *(.debug_loc) }
108     .debug_macinfo  0 : { *(.debug_macinfo) }
109     /* SGI/MIPS DWARF 2 extensions */
110     .debug_weaknames 0 : { *(.debug_weaknames) }
111     .debug_funcnames 0 : { *(.debug_funcnames) }
112     .debug_typenames 0 : { *(.debug_typenames) }
113     .debug_varnames  0 : { *(.debug_varnames) }