lp_core_riscv.ld 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #include "sdkconfig.h"
  7. ENTRY(reset_vector)
  8. MEMORY
  9. {
  10. /*first 128byte for exception/interrupt vectors*/
  11. vector_table(RX) : ORIGIN = 0x50000000, LENGTH = 0x80
  12. ram(RWX) : ORIGIN = 0x50000080, LENGTH = CONFIG_ULP_COPROC_RESERVE_MEM - 0x80 - CONFIG_ULP_SHARED_MEM
  13. }
  14. SECTIONS
  15. {
  16. .vector.text :
  17. {
  18. /*exception/interrupt vectors*/
  19. __mtvec_base = .;
  20. KEEP (*(.init.vector .init.vector.*))
  21. } > vector_table
  22. . = ORIGIN(ram);
  23. .text ALIGN(4):
  24. {
  25. *(.text.vectors) /* Default reset vector must link to offset 0x80 */
  26. *(.text)
  27. *(.text*)
  28. } >ram
  29. .rodata ALIGN(4):
  30. {
  31. *(.rodata)
  32. *(.rodata*)
  33. } > ram
  34. .data ALIGN(4):
  35. {
  36. *(.data)
  37. *(.data*)
  38. *(.sdata)
  39. *(.sdata*)
  40. } > ram
  41. .bss ALIGN(4) :
  42. {
  43. *(.bss)
  44. *(.bss*)
  45. *(.sbss)
  46. *(.sbss*)
  47. PROVIDE(end = .);
  48. } >ram
  49. __stack_top = ORIGIN(ram) + LENGTH(ram);
  50. }