add freertos
This commit is contained in:
		
							parent
							
								
									4cdd9a24c4
								
							
						
					
					
						commit
						912f18d7fb
					
				
					 43 changed files with 30269 additions and 1 deletions
				
			
		
							
								
								
									
										189
									
								
								vendor/FreeRTOS/Ld/Link.ld
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										189
									
								
								vendor/FreeRTOS/Ld/Link.ld
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,189 @@ | |||
| ENTRY( _start ) | ||||
| 
 | ||||
| __stack_size = 512; | ||||
| 
 | ||||
| PROVIDE( _stack_size = __stack_size ); | ||||
| 
 | ||||
| MEMORY | ||||
| { | ||||
| 	FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 448K | ||||
| 	RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 26K | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| SECTIONS | ||||
| { | ||||
| 	.init : | ||||
| 	{ | ||||
| 		_sinit = .; | ||||
| 		. = ALIGN(4); | ||||
| 		KEEP(*(SORT_NONE(.init))) | ||||
| 		. = ALIGN(4); | ||||
| 		_einit = .; | ||||
| 	} >FLASH AT>FLASH | ||||
| 	 | ||||
|  /*   .vector : | ||||
|     { | ||||
|         *(.vector); | ||||
|     } >FLASH AT>FLASH */ | ||||
|      | ||||
|     .highcodelalign :  | ||||
|     {        | ||||
|         . = ALIGN(4); | ||||
|         PROVIDE(_highcode_lma = .);  | ||||
|     } >FLASH AT>FLASH  | ||||
|      | ||||
|     .highcode :  | ||||
|     { | ||||
|         . = ALIGN(4); | ||||
|         PROVIDE(_highcode_vma_start = .); | ||||
|         *(.vector); | ||||
| 		KEEP(*(SORT_NONE(.vector_handler))) | ||||
| 		. = ALIGN(4); | ||||
| 		KEEP(*(wch_user_vectors)) | ||||
| 		. = ALIGN(4); | ||||
|         *(.highcode); | ||||
|         *(.highcode.*); | ||||
| 		. = ALIGN(4);  | ||||
|         PROVIDE(_highcode_vma_end = .); | ||||
|     } >RAM AT>FLASH | ||||
|       | ||||
| 	.text : | ||||
| 	{ | ||||
| 		. = ALIGN(4); | ||||
| 		KEEP(*(SORT_NONE(.handle_reset))) | ||||
| 		*(.text) | ||||
| 		*(.text.*) | ||||
| 		*(.rodata) | ||||
| 		*(.rodata*) | ||||
|   		*(.sdata2.*) | ||||
| 		*(.glue_7) | ||||
| 		*(.glue_7t) | ||||
| 		*(.gnu.linkonce.t.*) | ||||
| 		. = ALIGN(4); | ||||
| 	} >FLASH AT>FLASH  | ||||
| 
 | ||||
| 	.fini : | ||||
| 	{ | ||||
| 		KEEP(*(SORT_NONE(.fini))) | ||||
| 		. = ALIGN(4); | ||||
| 	} >FLASH AT>FLASH | ||||
| 
 | ||||
| 	PROVIDE( _etext = . ); | ||||
| 	PROVIDE( _eitcm = . );	 | ||||
| 
 | ||||
| 	.preinit_array  : | ||||
| 	{ | ||||
| 	  PROVIDE_HIDDEN (__preinit_array_start = .); | ||||
| 	  KEEP (*(.preinit_array)) | ||||
| 	  PROVIDE_HIDDEN (__preinit_array_end = .); | ||||
| 	} >FLASH AT>FLASH  | ||||
| 	 | ||||
| 	.init_array     : | ||||
| 	{ | ||||
| 	  PROVIDE_HIDDEN (__init_array_start = .); | ||||
| 	  KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) | ||||
| 	  KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors)) | ||||
| 	  PROVIDE_HIDDEN (__init_array_end = .); | ||||
| 	} >FLASH AT>FLASH  | ||||
| 	 | ||||
| 	.fini_array     : | ||||
| 	{ | ||||
| 	  PROVIDE_HIDDEN (__fini_array_start = .); | ||||
| 	  KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*))) | ||||
| 	  KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors)) | ||||
| 	  PROVIDE_HIDDEN (__fini_array_end = .); | ||||
| 	} >FLASH AT>FLASH  | ||||
| 	 | ||||
| 	.ctors          : | ||||
| 	{ | ||||
| 	  /* gcc uses crtbegin.o to find the start of | ||||
| 	     the constructors, so we make sure it is | ||||
| 	     first.  Because this is a wildcard, it | ||||
| 	     doesn't matter if the user does not | ||||
| 	     actually link against crtbegin.o; the | ||||
| 	     linker won't look for a file to match a | ||||
| 	     wildcard.  The wildcard also means that it | ||||
| 	     doesn't matter which directory crtbegin.o | ||||
| 	     is in.  */ | ||||
| 	  KEEP (*crtbegin.o(.ctors)) | ||||
| 	  KEEP (*crtbegin?.o(.ctors)) | ||||
| 	  /* We don't want to include the .ctor section from | ||||
| 	     the crtend.o file until after the sorted ctors. | ||||
| 	     The .ctor section from the crtend file contains the | ||||
| 	     end of ctors marker and it must be last */ | ||||
| 	  KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) | ||||
| 	  KEEP (*(SORT(.ctors.*))) | ||||
| 	  KEEP (*(.ctors)) | ||||
| 	} >FLASH AT>FLASH  | ||||
| 	 | ||||
| 	.dtors          : | ||||
| 	{ | ||||
| 	  KEEP (*crtbegin.o(.dtors)) | ||||
| 	  KEEP (*crtbegin?.o(.dtors)) | ||||
| 	  KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) | ||||
| 	  KEEP (*(SORT(.dtors.*))) | ||||
| 	  KEEP (*(.dtors)) | ||||
| 	} >FLASH AT>FLASH  | ||||
| 
 | ||||
| 	.dalign    :  | ||||
| 	{ | ||||
| 		. = ORIGIN(RAM) + SIZEOF(.highcode); | ||||
| 	} >RAM AT>FLASH	 | ||||
| 
 | ||||
| 	.dlalign : | ||||
| 	{ | ||||
| 		. = ALIGN(4);  | ||||
| 		PROVIDE(_data_lma = .); | ||||
| 	} >FLASH AT>FLASH | ||||
| 
 | ||||
| 	.data : | ||||
| 	{ | ||||
| 		. = ALIGN(4);  | ||||
| 		PROVIDE(_data_vma = .); | ||||
|     	*(.gnu.linkonce.r.*) | ||||
|     	*(.data .data.*) | ||||
|     	*(.gnu.linkonce.d.*) | ||||
| 		. = ALIGN(8); | ||||
|     	PROVIDE( __global_pointer$ = . + 0x800 ); | ||||
|     	*(.sdata .sdata.*) | ||||
|     	*(.gnu.linkonce.s.*) | ||||
|     	. = ALIGN(8); | ||||
|     	*(.srodata.cst16) | ||||
|     	*(.srodata.cst8) | ||||
|     	*(.srodata.cst4) | ||||
|     	*(.srodata.cst2) | ||||
|     	*(.srodata .srodata.*) | ||||
|     	. = ALIGN(4); | ||||
| 		PROVIDE( _edata = .); | ||||
| 	} >RAM AT>FLASH | ||||
| 
 | ||||
| 	.bss : | ||||
| 	{ | ||||
| 		. = ALIGN(4); | ||||
| 		PROVIDE( _sbss = .); | ||||
|   	    *(.sbss*) | ||||
|         *(.gnu.linkonce.sb.*) | ||||
| 		*(.bss*) | ||||
|      	*(.gnu.linkonce.b.*)		 | ||||
| 		*(COMMON*) | ||||
| 		. = ALIGN(4); | ||||
| 		PROVIDE( _ebss = .); | ||||
| 	} >RAM AT>FLASH | ||||
| 
 | ||||
| 	PROVIDE( _end = _ebss); | ||||
| 	PROVIDE( end = . ); | ||||
| 	 | ||||
|     .stack ORIGIN(RAM) + LENGTH(RAM) - __stack_size : | ||||
|     { | ||||
|         PROVIDE( _heap_end = . );    | ||||
|         . = ALIGN(4); | ||||
|         PROVIDE(_susrstack = . ); | ||||
|         . = . + __stack_size; | ||||
|         PROVIDE( _eusrstack = .); | ||||
|         PROVIDE( __freertos_irq_stack_top = .); | ||||
|     } >RAM  | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue