1VENDOR_LOAD_ADDR = 0x10000000 + (((0x00 + 0x80 * 0X200) + 0x80 * 0X200) + 1 * 0X200);; 2VENDOR_LOAD_SIZE = 0x20c00 - (((0x00 + 0x80 * 0X200) + 0x80 * 0X200) + 1 * 0X200);; 3WIFI_LOAD_ADDR = VENDOR_LOAD_ADDR + VENDOR_LOAD_SIZE; 4WIFI_LOAD_SIZE = 0x40000; 5XIP_LOAD_ADDR = WIFI_LOAD_ADDR + WIFI_LOAD_SIZE; 6XIP_LOAD_SIZE = 0x0F00 * 0X200 - (XIP_LOAD_ADDR - 0x10000000); 7ENTRY(Reset_Handler) 8MEMORY 9{ 10 SRAM_CODE (rwx) : ORIGIN = 0x00080000, LENGTH = 0x26000 11 SRAM_DATA (rwx) : ORIGIN = (0x20000000 + 0x26000), LENGTH = (0x20000 + 0x20000 - 0x26000) 12 PSRAM (rwx) : ORIGIN = 0x38000000, LENGTH = 0x00800000 13 VENDOR (rx) : ORIGIN = VENDOR_LOAD_ADDR, LENGTH = VENDOR_LOAD_SIZE 14 WIFI (rx) : ORIGIN = WIFI_LOAD_ADDR, LENGTH = WIFI_LOAD_SIZE 15 XIP (rx) : ORIGIN = XIP_LOAD_ADDR, LENGTH = XIP_LOAD_SIZE 16} 17SECTIONS 18{ 19 .isr.vector : 20 { 21 . = ALIGN(512); 22 KEEP(*(.isr_vector)) 23 . = ALIGN(512); 24 *startup_rk2206.o (.text .text.*) 25 . = ALIGN(4); 26 } >VENDOR 27 .wifi_firmwave : 28 { 29 . = ALIGN(512); 30 KEEP(*(.wifi_firmwave)) 31 . = ALIGN(512); 32 . = ALIGN(4); 33 } >WIFI 34 .zInit : 35 { 36 __zinitcall_bsp_start = .; 37 KEEP (*(.zinitcall.bsp0.init)) 38 KEEP (*(.zinitcall.bsp1.init)) 39 KEEP (*(.zinitcall.bsp2.init)) 40 KEEP (*(.zinitcall.bsp3.init)) 41 KEEP (*(.zinitcall.bsp4.init)) 42 __zinitcall_bsp_end = .; 43 __zinitcall_device_start = .; 44 KEEP (*(.zinitcall.device0.init)) 45 KEEP (*(.zinitcall.device1.init)) 46 KEEP (*(.zinitcall.device2.init)) 47 KEEP (*(.zinitcall.device3.init)) 48 KEEP (*(.zinitcall.device4.init)) 49 __zinitcall_device_end = .; 50 __zinitcall_core_start = .; 51 KEEP (*(.zinitcall.core0.init)) 52 KEEP (*(.zinitcall.core1.init)) 53 KEEP (*(.zinitcall.core2.init)) 54 KEEP (*(.zinitcall.core3.init)) 55 KEEP (*(.zinitcall.core4.init)) 56 __zinitcall_core_end = .; 57 __zinitcall_sys_service_start = .; 58 KEEP (*(.zinitcall.sys.service0.init)) 59 KEEP (*(.zinitcall.sys.service1.init)) 60 KEEP (*(.zinitcall.sys.service2.init)) 61 KEEP (*(.zinitcall.sys.service3.init)) 62 KEEP (*(.zinitcall.sys.service4.init)) 63 __zinitcall_sys_service_end = .; 64 __zinitcall_sys_feature_start = .; 65 KEEP (*(.zinitcall.sys.feature0.init)) 66 KEEP (*(.zinitcall.sys.feature1.init)) 67 KEEP (*(.zinitcall.sys.feature2.init)) 68 KEEP (*(.zinitcall.sys.feature3.init)) 69 KEEP (*(.zinitcall.sys.feature4.init)) 70 __zinitcall_sys_feature_end = .; 71 __zinitcall_run_start = .; 72 KEEP (*(.zinitcall.run0.init)) 73 KEEP (*(.zinitcall.run1.init)) 74 KEEP (*(.zinitcall.run2.init)) 75 KEEP (*(.zinitcall.run3.init)) 76 KEEP (*(.zinitcall.run4.init)) 77 __zinitcall_run_end = .; 78 __zinitcall_app_service_start = .; 79 KEEP (*(.zinitcall.app.service0.init)) 80 KEEP (*(.zinitcall.app.service1.init)) 81 KEEP (*(.zinitcall.app.service2.init)) 82 KEEP (*(.zinitcall.app.service3.init)) 83 KEEP (*(.zinitcall.app.service4.init)) 84 __zinitcall_app_service_end = .; 85 __zinitcall_app_feature_start = .; 86 KEEP (*(.zinitcall.app.feature0.init)) 87 KEEP (*(.zinitcall.app.feature1.init)) 88 KEEP (*(.zinitcall.app.feature2.init)) 89 KEEP (*(.zinitcall.app.feature3.init)) 90 KEEP (*(.zinitcall.app.feature4.init)) 91 __zinitcall_app_feature_end = .; 92 __zinitcall_test_start = .; 93 KEEP (*(.zinitcall.test0.init)) 94 KEEP (*(.zinitcall.test1.init)) 95 KEEP (*(.zinitcall.test2.init)) 96 KEEP (*(.zinitcall.test3.init)) 97 KEEP (*(.zinitcall.test4.init)) 98 __zinitcall_test_end = .; 99 __zinitcall_exit_start = .; 100 KEEP (*(.zinitcall.exit0.init)) 101 KEEP (*(.zinitcall.exit1.init)) 102 KEEP (*(.zinitcall.exit2.init)) 103 KEEP (*(.zinitcall.exit3.init)) 104 KEEP (*(.zinitcall.exit4.init)) 105 __zinitcall_exit_end = .; 106 } >XIP 107 _shdf_text = .; 108 .hdf.text : 109 { 110 _hdf_text_start = .; 111 . = ALIGN(4); 112 *libhardware.a:*.o (.text .text.* .rodata .rodata*) 113 *libboard.a:*.o (.text .text.* .rodata .rodata*) 114 *libarch.a:*.o (.text .text.* .rodata .rodata*) 115 *libkernel.a:*.o (.text .text.* .rodata .rodata*) 116 *libgcc.a:*.o (.text .text.* .rodata .rodata*) 117 *libc.a:*.o (.text .text.* .rodata .rodata*) 118 *libcpup.a:*.o (.text .text.* .rodata .rodata*) 119 . = ALIGN(4); 120 _hdf_text_end = .; 121 } >SRAM_CODE AT >XIP 122 .hdf.driver : 123 { 124 _hdf_drivers_start = .; 125 . = ALIGN(4); 126 KEEP(*(.hdf.driver)) 127 . = ALIGN(4); 128 _hdf_drivers_end = .; 129 } >XIP 130 .text : 131 { 132 _stext = .; 133 . = ALIGN(4); 134 *(.text) 135 *(.text*) 136 *(.glue_7) 137 *(.glue_7t) 138 *(.eh_frame) 139 KEEP (*(.init)) 140 KEEP (*(.fini)) 141 . = ALIGN(4); 142 _etext = .; 143 } >XIP 144 .rodata : 145 { 146 . = ALIGN(4); 147 *(.rodata) 148 *(.rodata*) 149 . = ALIGN(4); 150 } >XIP 151 .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >XIP 152 .ARM : { 153 __exidx_start = .; 154 *(.ARM.exidx*) 155 __exidx_end = .; 156 } >XIP 157 _sdata = .; 158 .data : 159 { 160 . = ALIGN(4); 161 _data_start = .; 162 *(.data) 163 *(.data*) 164 . = ALIGN(4); 165 _data_end = .; 166 } >SRAM_DATA AT >XIP 167 .bss : 168 { 169 . = ALIGN(4); 170 _bss_start = .; 171 *(.bss) 172 *(.bss*) 173 *(COMMON) 174 . = ALIGN(4); 175 _bss_end = .; 176 } >PSRAM 177 .stack : 178 { 179 . = ALIGN(8); 180 _sstack = .; 181 PROVIDE ( end = . ); 182 *(.stack*) 183 . = . + 0x100000; 184 _estack = .; 185 PROVIDE(_StackTop = .); 186 . = ALIGN(8); 187 } >PSRAM 188 .heap : 189 { 190 . = ALIGN(8); 191 _heap_start = .; 192 . = ALIGN(8); 193 } >PSRAM 194 /DISCARD/ : 195 { 196 libc.a ( * ) 197 libm.a ( * ) 198 libgcc.a ( * ) 199 } 200 .ARM.attributes 0 : { *(.ARM.attributes) } 201} 202