mirror of
https://github.com/m-labs/artiq.git
synced 2024-12-30 05:33:33 +08:00
62fdc75d2d
It is currently possible to run the idle experiment, and it can raise and catch exceptions, but exceptions are not yet propagated across RPC boundaries.
82 lines
1.5 KiB
Plaintext
82 lines
1.5 KiB
Plaintext
INCLUDE generated/output_format.ld
|
|
ENTRY(_start)
|
|
|
|
INCLUDE generated/regions.ld
|
|
|
|
/* Assume ORIGIN(main_ram) = 0x40000000. Unfortunately,
|
|
* ld does not allow this expression here.
|
|
*/
|
|
MEMORY {
|
|
runtime : ORIGIN = 0x40000000, LENGTH = 0x400000 /* 4M */
|
|
}
|
|
|
|
/* First 4M of main memory are reserved for runtime code/data
|
|
* then comes kernel memory. First 32K of kernel memory are for support code.
|
|
*/
|
|
MEMORY {
|
|
kernel : ORIGIN = 0x40400000, LENGTH = 0x8000
|
|
}
|
|
|
|
/* Kernel memory space start right after the runtime,
|
|
* and ends before the runtime stack.
|
|
* Runtime stack is always at the end of main_ram.
|
|
* This stack is shared with the kernel on UP systems.
|
|
*/
|
|
PROVIDE(_fstack = 0x40000000 + LENGTH(main_ram) - 4);
|
|
|
|
/* On AMP systems, kernel stack is at the end of main RAM,
|
|
* before the runtime stack. Leave 1M for runtime stack.
|
|
*/
|
|
PROVIDE(_kernel_fstack = 0x40000000 + LENGTH(main_ram) - 1024*1024 - 4);
|
|
|
|
SECTIONS
|
|
{
|
|
.text :
|
|
{
|
|
_ftext = .;
|
|
*(.text .stub .text.* .gnu.linkonce.t.*)
|
|
_etext = .;
|
|
} > runtime
|
|
|
|
.rodata :
|
|
{
|
|
. = ALIGN(4);
|
|
_frodata = .;
|
|
*(.rodata .rodata.* .gnu.linkonce.r.*)
|
|
*(.rodata1)
|
|
_erodata = .;
|
|
} > runtime
|
|
|
|
.data :
|
|
{
|
|
. = ALIGN(4);
|
|
_fdata = .;
|
|
*(.data .data.* .gnu.linkonce.d.*)
|
|
*(.data1)
|
|
*(.sdata .sdata.* .gnu.linkonce.s.*)
|
|
_edata = .;
|
|
} > runtime
|
|
|
|
.bss :
|
|
{
|
|
. = ALIGN(4);
|
|
_fbss = .;
|
|
*(.dynsbss)
|
|
*(.sbss .sbss.* .gnu.linkonce.sb.*)
|
|
*(.scommon)
|
|
*(.dynbss)
|
|
*(.bss .bss.* .gnu.linkonce.b.*)
|
|
*(COMMON)
|
|
. = ALIGN(4);
|
|
_ebss = .;
|
|
. = ALIGN(8);
|
|
} > runtime
|
|
|
|
/DISCARD/ :
|
|
{
|
|
*(.eh_frame)
|
|
}
|
|
|
|
_heapstart = .;
|
|
}
|