luckfox-pico-sdk/sysdrv/source/mcu/rt-thread/bsp/rockchip/rv1106-mcu/link.lds
luckfox-eng29 8f34c2760d project:build.sh: Added fastboot support; custom modifications to U-Boot and kernel implemented using patches.
project:cfg:BoardConfig_IPC: Added fastboot BoardConfig file and firmware post-scripts, distinguishing between
the BoardConfigs for Luckfox Pico Pro and Luckfox Pico Max. project:app: Added fastboot_client and rk_smart_door
for quick boot applications; updated rkipc app to adapt to the latest media library. media:samples: Added more
usage examples. media:rockit: Fixed bugs; removed support for retrieving data frames from VPSS. media:isp:
Updated rkaiq library and related tools to support connection to RKISP_Tuner. sysdrv:Makefile: Added support for
compiling drv_ko on Luckfox Pico Ultra W using Ubuntu; added support for custom root filesystem.
sysdrv:tools:board: Updated Buildroot optional mirror sources, updated some software versions, and stored device
tree files and configuration files that undergo multiple modifications for U-Boot and kernel separately.
sysdrv:source:mcu: Used RISC-V MCU SDK with RT-Thread system, mainly for initializing camera AE during quick
boot. sysdrv:source:uboot: Added support for fastboot; added high baud rate DDR bin for serial firmware upgrades.
sysdrv:source:kernel: Upgraded to version 5.10.160; increased NPU frequency for RV1106G3; added support for
fastboot.

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>
2024-10-14 09:47:04 +08:00

124 lines
2.8 KiB
Plaintext

OUTPUT_ARCH( "riscv" )
ENTRY(_start)
MEMORY {
RAM (rwx) : ORIGIN = 0x40000, LENGTH = 0x3c000
}
STACK_SIZE = (1024 * 2);
CL_SIZE = 0;
SECTIONS {
.text : {
PROVIDE(__TEXT_START__ = .);
*start_rv1106_mcu.o(.text .text.*)
*(.text .text.*)
*(sc_test_section)
/* section information for finsh shell */
. = ALIGN(4);
__fsymtab_start = .;
KEEP(*(FSymTab))
__fsymtab_end = .;
. = ALIGN(4);
__vsymtab_start = .;
KEEP(*(VSymTab))
__vsymtab_end = .;
. = ALIGN(4);
. = ALIGN(4);
__rt_init_start = .;
KEEP(*(SORT(.rti_fn*)))
__rt_init_end = .;
. = ALIGN(4);
/* section information for modules */
. = ALIGN(4);
__rtmsymtab_start = .;
KEEP(*(RTMSymTab))
__rtmsymtab_end = .;
. = ALIGN(CL_SIZE);
PROVIDE(__TEXT_END__ = .);
} > RAM
/* data segment */
.data : {
PROVIDE(__DATA_START__ = .);
*(.data .data.*)
. = ALIGN(CL_SIZE);
PROVIDE(__DATA_END__ = .);
} > RAM
.sdata : {
_gp = . + 0x800;
*(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata*)
*(.sdata .sdata.* .gnu.linkonce.s.*)
. = ALIGN(CL_SIZE);
} > RAM
/* thread-local data segment */
.tdata : {
PROVIDE(_tls_data = .);
PROVIDE(_tdata_begin = .);
*(.tdata .tdata.*)
PROVIDE(_tdata_end = .);
. = ALIGN(CL_SIZE);
} > RAM
.tbss : {
PROVIDE(__BSS_START__ = .);
*(.tbss .tbss.*)
. = ALIGN(CL_SIZE);
PROVIDE(_tbss_end = .);
} > RAM
/* bss segment */
.sbss : {
*(.sbss .sbss.* .gnu.linkonce.sb.*)
*(.scommon)
} > RAM
.bss : {
*(.bss .bss.*)
*(COMMON)
. = ALIGN(CL_SIZE);
PROVIDE(__BSS_END__ = .);
} > RAM
.stack (NOLOAD): {
FILL(0);
PROVIDE(__STACK_START__ = .);
. += STACK_SIZE;
PROVIDE(__C_STACK_TOP__ = .);
PROVIDE(_sp = .);
PROVIDE(__STACK_END__ = .);
} > RAM
.save_data (NOLOAD):
{
. = . + 8;
. = ALIGN(8);
SAVE_DATA_LENGTH = _tdata_end - __TEXT_END__;
PROVIDE ( __SAVE_DATA_START__ = .);
. = . + SAVE_DATA_LENGTH;
. = ALIGN(8);
PROVIDE ( __SAVE_DATA_END__ = .);
} > RAM
/* End of uninitalized data segement */
._user_heap (NOLOAD):
{
. = ALIGN(8);
PROVIDE ( end = . );
PROVIDE ( _end = . );
PROVIDE ( __HEAP_START__ = .);
HEAP_SIZE = ORIGIN(RAM) + LENGTH(RAM) - __HEAP_START__;
. = . + HEAP_SIZE;
. = ALIGN(8);
PROVIDE ( __HEAP_END__ = .);
PROVIDE ( _heap_end = .);
} > RAM
}