467 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			467 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
INCLUDE $LDS_EXTERN
 | 
						|
/* Linker script for malta
 | 
						|
 *
 | 
						|
 * Version: Sourcery G++ Lite 4.3-221
 | 
						|
 * Support: https://support.codesourcery.com/GNUToolchain/
 | 
						|
 *
 | 
						|
 * Copyright (c) 2007, 2008, 2009 CodeSourcery, Inc.
 | 
						|
 *
 | 
						|
 * The authors hereby grant permission to use, copy, modify, distribute,
 | 
						|
 * and license this software and its documentation for any purpose, provided
 | 
						|
 * that existing copyright notices are retained in all copies and that this
 | 
						|
 * notice is included verbatim in any distributions.  No written agreement,
 | 
						|
 * license, or royalty fee is required for any of the authorized uses.
 | 
						|
 * Modifications to this software may be copyrighted by their authors
 | 
						|
 * and need not follow the licensing terms described here, provided that
 | 
						|
 * the new terms are clearly indicated on the first page of each file where
 | 
						|
 * they apply.
 | 
						|
 * */
 | 
						|
 | 
						|
/* _RTOS_HEAP_SIZE: for FreeRTOS's heap-method5, only be used on FreeRTOS-Kernel */
 | 
						|
_RTOS_HEAP_SIZE = DEFINED(_RTOS_HEAP_SIZE) ? _RTOS_HEAP_SIZE : 0x100000;
 | 
						|
 | 
						|
/* Following Stacks are used for each CPU modes on boot.S */
 | 
						|
_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0xA000;
 | 
						|
_ABORT_STACK_SIZE = DEFINED(_ABORT_STACK_SIZE) ? _ABORT_STACK_SIZE : 1024;
 | 
						|
_SUPERVISOR_STACK_SIZE = DEFINED(_SUPERVISOR_STACK_SIZE) ? _SUPERVISOR_STACK_SIZE : 2048;
 | 
						|
_IRQ_STACK_SIZE = DEFINED(_IRQ_STACK_SIZE) ? _IRQ_STACK_SIZE : 1024;
 | 
						|
_FIQ_STACK_SIZE = DEFINED(_FIQ_STACK_SIZE) ? _FIQ_STACK_SIZE : 1024;
 | 
						|
_UNDEF_STACK_SIZE = DEFINED(_UNDEF_STACK_SIZE) ? _UNDEF_STACK_SIZE : 1024;
 | 
						|
 | 
						|
OUTPUT_ARCH(arm)
 | 
						|
ENTRY(_vector_table)
 | 
						|
SECTIONS
 | 
						|
{
 | 
						|
    .START_UP $START_UP: {
 | 
						|
        _section_01_addr = ABSOLUTE(.);
 | 
						|
        KEEP (*(.vectors))
 | 
						|
    }
 | 
						|
	.BIN_INFO $BIN_INFO: {
 | 
						|
        KEEP(./SrcCode/Startup/bin_info.o(.data*));
 | 
						|
    }
 | 
						|
    .CODE_INFO $CODE_INFO: {
 | 
						|
        KEEP(./SrcCode/Startup/code_info.o(.data*));
 | 
						|
		_load_core2_entry_program_start_base = .;
 | 
						|
		KEEP(./SrcCode/Startup/smp_entry.o(.smp*));
 | 
						|
		KEEP(./SrcCode/Startup/smp_entry.o(.data*));
 | 
						|
		_load_core2_entry_program_end_base = .;
 | 
						|
    }
 | 
						|
 | 
						|
	.DOCHG_DMA_CLK 0xF07C0000:
 | 
						|
    AT (LOADADDR(.CODE_INFO) + SIZEOF(.CODE_INFO))
 | 
						|
    {
 | 
						|
		_ram_change_dma_clock_start = LOADADDR(.CODE_INFO) + SIZEOF(.CODE_INFO);
 | 
						|
		_load_change_dma_clock_start = ABSOLUTE(.);
 | 
						|
		KEEP(./SrcCode/Startup/clock_api.o(.vtrs* .text* .data*));
 | 
						|
		KEEP(./SrcCode/Startup/power_down_isr.o(.text* .data*));
 | 
						|
		_load_change_dma_clock_base = ABSOLUTE(.);
 | 
						|
		*(.chgdma_data*) /* collect variables used in change DMA flow */
 | 
						|
    }
 | 
						|
 | 
						|
    .DUMMY_ALIGN LOADADDR(.CODE_INFO) + SIZEOF(.CODE_INFO) + SIZEOF(.DOCHG_DMA_CLK):
 | 
						|
    AT (LOADADDR(.CODE_INFO) + SIZEOF(.CODE_INFO) + SIZEOF(.DOCHG_DMA_CLK)) {
 | 
						|
        . = . + 1;
 | 
						|
        . = ALIGN(64);
 | 
						|
    }
 | 
						|
 | 
						|
    _stext = .;
 | 
						|
 | 
						|
	.ctors LOADADDR(.CODE_INFO) + SIZEOF(.CODE_INFO) + SIZEOF(.DOCHG_DMA_CLK):
 | 
						|
	AT (LOADADDR(.CODE_INFO) + SIZEOF(.CODE_INFO) + SIZEOF(.DOCHG_DMA_CLK))
 | 
						|
    {
 | 
						|
        __CTOR_LIST__ = .;
 | 
						|
        KEEP (*(SORT(.ctors.*)))
 | 
						|
        KEEP (*(.ctors))
 | 
						|
        KEEP (*(SORT(.init_array.*)))
 | 
						|
        KEEP (*(.init_array))
 | 
						|
        __CTOR_END__ = .;
 | 
						|
    }
 | 
						|
 | 
						|
    .dtors ALIGN (0x4) : {
 | 
						|
        __DTOR_LIST__ = .;
 | 
						|
        KEEP (*(SORT(.dtors.*)))
 | 
						|
        KEEP (*(.dtors))
 | 
						|
        KEEP (*(SORT(.fini_array.*)))
 | 
						|
        KEEP (*(.fini_array))
 | 
						|
        __DTOR_END__ = .;
 | 
						|
    }
 | 
						|
 | 
						|
    .init : {
 | 
						|
        KEEP (*(.init))
 | 
						|
    }
 | 
						|
 | 
						|
    .fini : {
 | 
						|
        KEEP (*(.fini))
 | 
						|
    }
 | 
						|
 | 
						|
    .fixup : {
 | 
						|
        __fixup_start = .;
 | 
						|
        *(.fixup)
 | 
						|
        __fixup_end = .;
 | 
						|
    }
 | 
						|
 | 
						|
    .gcc_except_table : {
 | 
						|
        *(.gcc_except_table)
 | 
						|
    }
 | 
						|
 | 
						|
    .ARM.exidx : {
 | 
						|
        __exidx_start = .;
 | 
						|
        *(.ARM.exidx*)
 | 
						|
        *(.gnu.linkonce.armexidix.*.*)
 | 
						|
        __exidx_end = .;
 | 
						|
    }
 | 
						|
 | 
						|
    .ARM.attributes : {
 | 
						|
        __ARM.attributes_start = .;
 | 
						|
        *(.ARM.attributes)
 | 
						|
        __ARM.attributes_end = .;
 | 
						|
    }
 | 
						|
 | 
						|
    .devtab ALIGN (0x4) : {
 | 
						|
        __MAINFUNCTAB_BEGIN__ = .;
 | 
						|
        . = .; KEEP(*( SORT (.cmdsys.table.*))) ;
 | 
						|
        __MAINFUNCTAB_END__ = .;
 | 
						|
        __EXAMFUNCTAB_BEGIN__ = .;
 | 
						|
        . = .; KEEP(*( SORT (.examsys.table.*))) ;
 | 
						|
        __EXAMFUNCTAB_END__ = .;
 | 
						|
    }
 | 
						|
 | 
						|
    . = ALIGN(4);
 | 
						|
    .SECTION_01 :
 | 
						|
    {
 | 
						|
        *(.boot)
 | 
						|
        *(.gcc_except_table)
 | 
						|
        *(.newlib)
 | 
						|
        *(.jcr)
 | 
						|
        /* app */
 | 
						|
        ./SrcCode/Startup/startup.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit* .got*)
 | 
						|
        ./SrcCode/System/rtos-main.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/System/sys_fdt.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/System/sys_fwload.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/System/sys_fastboot.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/System/sys_storage_partition.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/FastFlow/flow_preview.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/FastFlow/flow_movie.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/FastFlow/flow_system.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/Dx/$DX_MODEL/DxHunting.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/UIWnd/SPORTCAM/UIInfo/UIInfo.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/UIWnd/SPORTCAM/UIInfo/UIPhotoMapping.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/System/SysSensor_Exe.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/UIApp/Photo/UIAppPhoto_Param.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* lib */
 | 
						|
        libfwsrv.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libutility.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libzlib.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libmem.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libDbgUt.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* driver */
 | 
						|
        libdrv_portable.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libdrv_drtc.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libdrv_rtc.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libdrv_serial.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libdrv_storage.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* kdrv */
 | 
						|
        libkdrv_comm.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit* .init* .exit*)
 | 
						|
        libarb_protected.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkdrv_cpu.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkdrv_rtosfdt.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkdrv_top.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkdrv_pll.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkdrv_gpio.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkdrv_adc.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkdrv_interrupt.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* os */
 | 
						|
        ./SrcCode/Startup/bin_info.o(.got*)
 | 
						|
        libker_pkg.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkwrap.a (.text.* .rodata.* .text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libvos.a (.text.* .rodata.* .text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* freertos.a must be located after kwrap.a for linking text.xEventGroup* */
 | 
						|
        libfreertos.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* std-c */
 | 
						|
        libc.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libgcc.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libstdc++.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* ISP */
 | 
						|
        libnvt_ae.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libnvt_awb.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libnvt_iq.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libnvt_isp.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libvendor_isp.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
    }
 | 
						|
 | 
						|
    . = ALIGN(4);
 | 
						|
    .SECTION_02 :
 | 
						|
    {
 | 
						|
        _section_01_size = ABSOLUTE(.) - _section_01_addr;
 | 
						|
        _section_02_addr = ABSOLUTE(.);
 | 
						|
        /* fdt */
 | 
						|
        _fdt_sensor = ABSOLUTE(.);
 | 
						|
        KEEP(./SrcCode/Dx/$MODEL/sensor.o (.sensor*));
 | 
						|
        /* ext_drivers */
 | 
						|
        $SENSOR1.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* kflow */
 | 
						|
        libkflow_videocapture.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* kdrv */
 | 
						|
        libkdrv_videocapture.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libvendor_media.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* IO */
 | 
						|
        libkdrv_i2c.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
    }
 | 
						|
 | 
						|
    . = ALIGN(4);
 | 
						|
    .SECTION_03 :
 | 
						|
    {
 | 
						|
        _section_02_size = ABSOLUTE(.) - _section_02_addr;
 | 
						|
        _section_03_addr = ABSOLUTE(.);
 | 
						|
        /* app */
 | 
						|
        ./SrcCode/System/sys_nvtmpp.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/System/sys_mempool.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* hdal */
 | 
						|
        libhdal.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
#if (_PACKAGE_VIDEO_)
 | 
						|
        /* kflow */
 | 
						|
        libkflow_common.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkflow_videoprocess.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libnvt_videosprite.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libnvt_gfx.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* kdrv */
 | 
						|
        libkdrv_videoprocess.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkdrv_gfx2d.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkdrv_builtin.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* ISP */
 | 
						|
        /* libnvt_ae.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*) */
 | 
						|
        /* libnvt_awb.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*) */
 | 
						|
        /* libnvt_iq.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*) */
 | 
						|
        /* libnvt_isp.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*) */
 | 
						|
#endif
 | 
						|
        ./SrcCode/UIApp/PhotoFast/PhotoFast.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
	./SrcCode/UIApp/PhotoFast/PhotoFastCapDateImprint.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
    }
 | 
						|
 | 
						|
    . = ALIGN(4);
 | 
						|
    .SECTION_04 :
 | 
						|
    {
 | 
						|
        _section_03_size = ABSOLUTE(.) - _section_03_addr;
 | 
						|
        _section_04_addr = ABSOLUTE(.);
 | 
						|
        /* display */
 | 
						|
#if (_PACKAGE_DISPLAY_)
 | 
						|
        $LCD1.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libnvt_dispdev_panel.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkflow_videoout.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkdrv_videoout.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libnvt_sif.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libnvt_ide.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
#endif
 | 
						|
        /* storage */
 | 
						|
        ./SrcCode/System/sys_card.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/System/sys_filesys.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
#if (_PACKAGE_FILESYS_)
 | 
						|
        libFileSys.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libFsUitron.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
		libfiledb.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
#endif
 | 
						|
    }
 | 
						|
 | 
						|
    . = ALIGN(4);
 | 
						|
    .SECTION_05 :
 | 
						|
    {
 | 
						|
        _section_04_size = ABSOLUTE(.) - _section_04_addr;
 | 
						|
        _section_05_addr = ABSOLUTE(.);
 | 
						|
        /* app */
 | 
						|
        ./SrcCode/UIApp/ExifVendor.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/UIWnd/SPORTCAM/Resource/DemoKit_Image.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/UIWnd/SPORTCAM/Resource/DemoKit_Font.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        ./SrcCode/UIWnd/SPORTCAM/Resource/DemoKit_Palette.o (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        /* lib */
 | 
						|
        libvf_gfx.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libsizeconvert.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libexif.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
		libgximagefile.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libgxgfx.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
#if (_PACKAGE_VIDEO_)
 | 
						|
        /* video codec */
 | 
						|
        libkflow_videoenc.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkdrv_h26x.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkdrv_jpg.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libnvt_tse.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libFontConv.a (.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
#endif
 | 
						|
        /* audio */
 | 
						|
#if (_PACKAGE_AUDIO_)
 | 
						|
        libkflow_audiocap.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libkflow_audioenc.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libnvt_audio.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libnvt_kdrv_audio.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libaud_aec.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libaud_aace.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
        libaudlib_IIR.a(.text* .data* .data1* .rodata* .rodata1* .reginfo* .init* .exit*)
 | 
						|
#endif
 | 
						|
    }
 | 
						|
 | 
						|
    . = ALIGN(4);
 | 
						|
    .SECTION_06 :
 | 
						|
    {
 | 
						|
        _section_05_size = ABSOLUTE(.) - _section_05_addr;
 | 
						|
        _section_06_addr = ABSOLUTE(.);
 | 
						|
    }
 | 
						|
 | 
						|
    . = ALIGN(4);
 | 
						|
    .SECTION_07 :
 | 
						|
    {
 | 
						|
        _section_06_size = ABSOLUTE(.) - _section_06_addr;
 | 
						|
        _section_07_addr = ABSOLUTE(.);
 | 
						|
    }
 | 
						|
 | 
						|
    . = ALIGN(4);
 | 
						|
    .SECTION_08 :
 | 
						|
    {
 | 
						|
        _section_07_size = ABSOLUTE(.) - _section_07_addr;
 | 
						|
        _section_08_addr = ABSOLUTE(.);
 | 
						|
    }
 | 
						|
 | 
						|
    . = ALIGN(4);
 | 
						|
    .SECTION_09 :
 | 
						|
    {
 | 
						|
        _section_08_size = ABSOLUTE(.) - _section_08_addr;
 | 
						|
        _section_09_addr = ABSOLUTE(.);
 | 
						|
    }
 | 
						|
 | 
						|
    . = ALIGN(4);
 | 
						|
    .SECTION_10 :
 | 
						|
    {
 | 
						|
    	_section_09_size = ABSOLUTE(.) - _section_09_addr;
 | 
						|
        _section_10_addr = ABSOLUTE(.);
 | 
						|
		KEEP (*(.nvtversioninfo.begin*))
 | 
						|
		_section_verinfostart = ABSOLUTE(.);
 | 
						|
        KEEP(*(.version.info.*))
 | 
						|
		_section_verinfoend = ABSOLUTE(.);
 | 
						|
        KEEP (*(.nvtversioninfo.end*))
 | 
						|
        *(.text*)
 | 
						|
        *(.gnu.linkonce.t.*)
 | 
						|
        *(.gnu_warning)
 | 
						|
        *(.glue_7)
 | 
						|
        *(.glue_7t)
 | 
						|
        *(.vfp11_veneer)
 | 
						|
        *(.ARM.extab.*)
 | 
						|
        *(.gnu.linkonce.armextab.*)
 | 
						|
        *(.got)
 | 
						|
        *(.got.plt)
 | 
						|
 | 
						|
        __rodata_start = .;
 | 
						|
        *(.rodata)
 | 
						|
        *(.rodata.*)
 | 
						|
        *(.gnu.linkonce.r.*)
 | 
						|
        __rodata_end = .;
 | 
						|
 | 
						|
        __rodata1_start = .;
 | 
						|
        *(.rodata1)
 | 
						|
        *(.rodata1.*)
 | 
						|
        __rodata1_end = .;
 | 
						|
 | 
						|
        __sdata2_start = .;
 | 
						|
        *(.sdata2)
 | 
						|
        *(.sdata2.*)
 | 
						|
        *(.gnu.linkonce.s2.*)
 | 
						|
        __sdata2_end = .;
 | 
						|
 | 
						|
        __data_start = .;
 | 
						|
        _load_general_var_base = .;
 | 
						|
    	_image_general_var_base = .;
 | 
						|
        *(.data)
 | 
						|
        *(.data.*)
 | 
						|
        _image_general_var_limit = .;
 | 
						|
        __data_end = .;
 | 
						|
 | 
						|
        __data1_start = .;
 | 
						|
        *(.data1)
 | 
						|
        *(.data1.*)
 | 
						|
        *(.gnu.linkonce.d.*)
 | 
						|
        __data1_end = .;
 | 
						|
 | 
						|
        __sdata_start = .;
 | 
						|
        *(.sdata)
 | 
						|
        *(.sdata.*)
 | 
						|
        *(.gnu.linkonce.s.*)
 | 
						|
        __sdata_end = .;
 | 
						|
    }
 | 
						|
 | 
						|
    _section_10_size = ABSOLUTE(.) - _section_10_addr;
 | 
						|
	_etext = ABSOLUTE(.);
 | 
						|
 | 
						|
    . = ALIGN(8);
 | 
						|
	/* collect zero initialized global data (mark "B" in sym file) */
 | 
						|
    /* collect static local data (mark "b" in sym file) */
 | 
						|
    _section_zi_addr = ABSOLUTE(.);
 | 
						|
    _image_general_zi_zi_base = ABSOLUTE(.);
 | 
						|
 | 
						|
    .bss (NOLOAD) : {
 | 
						|
        __bss_start = .;
 | 
						|
        *(.bss)
 | 
						|
        *(.bss.*)
 | 
						|
        *(.gnu.linkonce.b.*)
 | 
						|
        *(COMMON)
 | 
						|
        __bss_end = .;
 | 
						|
    }
 | 
						|
 | 
						|
	/* stack area start for RTOS tasks */
 | 
						|
    _image_general_zi_zi_limit = ABSOLUTE(.);
 | 
						|
 | 
						|
	.ttb (NOLOAD) : {
 | 
						|
        . = ALIGN(0x4000);
 | 
						|
        _ttb = .;
 | 
						|
        . = . + 0x4000;
 | 
						|
    }
 | 
						|
 | 
						|
    /* Generate Stack and Heap definitions */
 | 
						|
    .stack (NOLOAD) : {
 | 
						|
        . = ALIGN(16);
 | 
						|
        _stack_end = .;
 | 
						|
        . += _STACK_SIZE;
 | 
						|
        . = ALIGN(16);
 | 
						|
        _stack = .;
 | 
						|
        __stack = _stack;
 | 
						|
        . = ALIGN(16);
 | 
						|
        _irq_stack_end = .;
 | 
						|
        . += _IRQ_STACK_SIZE;
 | 
						|
        . = ALIGN(16);
 | 
						|
        __irq_stack = .;
 | 
						|
        _supervisor_stack_end = .;
 | 
						|
        . += _SUPERVISOR_STACK_SIZE;
 | 
						|
        . = ALIGN(16);
 | 
						|
        __supervisor_stack = .;
 | 
						|
        _abort_stack_end = .;
 | 
						|
        . += _ABORT_STACK_SIZE;
 | 
						|
        . = ALIGN(16);
 | 
						|
        __abort_stack = .;
 | 
						|
        _fiq_stack_end = .;
 | 
						|
        . += _FIQ_STACK_SIZE;
 | 
						|
        . = ALIGN(16);
 | 
						|
        __fiq_stack = .;
 | 
						|
        _undef_stack_end = .;
 | 
						|
        . += _UNDEF_STACK_SIZE;
 | 
						|
        . = ALIGN(16);
 | 
						|
        __undef_stack = .;
 | 
						|
    }
 | 
						|
 | 
						|
    .rtos_heap (NOLOAD) : {
 | 
						|
        . = ALIGN(16);
 | 
						|
        _rtos_heap_start = .;
 | 
						|
        . += _RTOS_HEAP_SIZE;
 | 
						|
        _rtos_heap_end = .;
 | 
						|
    }
 | 
						|
 | 
						|
    .libc_heap (NOLOAD) : {
 | 
						|
        . = ALIGN(64); /* 64 bytes alignment for cache issue */
 | 
						|
        _libc_heap_start = .; /* LibC's heap is from here to end of rtos memory */
 | 
						|
    }
 | 
						|
 | 
						|
    end = .;
 | 
						|
}
 | 
						|
 | 
						|
/* libkdrv_videocapture.a is for sensor_register_rate out of section range */
 | 
						|
GROUP(libgcc.a libc.a libdrv_portable.a libfreertos.a libkwrap.a libkdrv_comm.a libnvt_sif.a libkdrv_top.a libkdrv_videocapture.a libkflow_common.a)
 | 
						|
 | 
						|
EXTERN("_init")
 | 
						|
EXTERN("SwTimer_Open")
 |