summaryrefslogtreecommitdiff
path: root/gcc_nrf52-mcuboot.ld
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2020-05-24 16:58:29 +0200
committerGitea <gitea@fake.local>2020-05-24 16:58:29 +0200
commit82b4ddc25b4c7913e0e6a13a209a4415dff044f1 (patch)
tree8eeafef1f4150a1cf238ee80e53c8901b0ec67af /gcc_nrf52-mcuboot.ld
parentbe1ad9b07083e656a649d223750ff4b14b781b7b (diff)
parent073717980f5c00f553ac3b58a50b792b32a14c7a (diff)
Merge branch 'nimble-ota' of JF/PineTime into develop
Diffstat (limited to 'gcc_nrf52-mcuboot.ld')
-rw-r--r--gcc_nrf52-mcuboot.ld136
1 files changed, 136 insertions, 0 deletions
diff --git a/gcc_nrf52-mcuboot.ld b/gcc_nrf52-mcuboot.ld
new file mode 100644
index 00000000..0746f491
--- /dev/null
+++ b/gcc_nrf52-mcuboot.ld
@@ -0,0 +1,136 @@
+/* Linker script to configure memory regions. */
+
+SEARCH_DIR(.)
+GROUP(-lgcc -lc -lnosys)
+
+MEMORY
+{
+ FLASH (rx) : ORIGIN = 0x08020, LENGTH = 0x78000
+ RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 0x10000
+}
+
+SECTIONS
+{
+}
+
+SECTIONS
+{
+ . = ALIGN(4);
+ .mem_section_dummy_ram :
+ {
+ }
+ .cli_sorted_cmd_ptrs :
+ {
+ PROVIDE(__start_cli_sorted_cmd_ptrs = .);
+ KEEP(*(.cli_sorted_cmd_ptrs))
+ PROVIDE(__stop_cli_sorted_cmd_ptrs = .);
+ } > RAM
+ .fs_data :
+ {
+ PROVIDE(__start_fs_data = .);
+ KEEP(*(.fs_data))
+ PROVIDE(__stop_fs_data = .);
+ } > RAM
+ .log_dynamic_data :
+ {
+ PROVIDE(__start_log_dynamic_data = .);
+ KEEP(*(SORT(.log_dynamic_data*)))
+ PROVIDE(__stop_log_dynamic_data = .);
+ } > RAM
+ .log_filter_data :
+ {
+ PROVIDE(__start_log_filter_data = .);
+ KEEP(*(SORT(.log_filter_data*)))
+ PROVIDE(__stop_log_filter_data = .);
+ } > RAM
+
+} INSERT AFTER .data;
+
+SECTIONS
+{
+ .mem_section_dummy_rom :
+ {
+ }
+ .sdh_soc_observers :
+ {
+ PROVIDE(__start_sdh_soc_observers = .);
+ KEEP(*(SORT(.sdh_soc_observers*)))
+ PROVIDE(__stop_sdh_soc_observers = .);
+ } > FLASH
+ .sdh_ble_observers :
+ {
+ PROVIDE(__start_sdh_ble_observers = .);
+ KEEP(*(SORT(.sdh_ble_observers*)))
+ PROVIDE(__stop_sdh_ble_observers = .);
+ } > FLASH
+ .sdh_req_observers :
+ {
+ PROVIDE(__start_sdh_req_observers = .);
+ KEEP(*(SORT(.sdh_req_observers*)))
+ PROVIDE(__stop_sdh_req_observers = .);
+ } > FLASH
+ .sdh_state_observers :
+ {
+ PROVIDE(__start_sdh_state_observers = .);
+ KEEP(*(SORT(.sdh_state_observers*)))
+ PROVIDE(__stop_sdh_state_observers = .);
+ } > FLASH
+ .sdh_stack_observers :
+ {
+ PROVIDE(__start_sdh_stack_observers = .);
+ KEEP(*(SORT(.sdh_stack_observers*)))
+ PROVIDE(__stop_sdh_stack_observers = .);
+ } > FLASH
+ .nrf_queue :
+ {
+ PROVIDE(__start_nrf_queue = .);
+ KEEP(*(.nrf_queue))
+ PROVIDE(__stop_nrf_queue = .);
+ } > FLASH
+ .nrf_balloc :
+ {
+ PROVIDE(__start_nrf_balloc = .);
+ KEEP(*(.nrf_balloc))
+ PROVIDE(__stop_nrf_balloc = .);
+ } > FLASH
+ .cli_command :
+ {
+ PROVIDE(__start_cli_command = .);
+ KEEP(*(.cli_command))
+ PROVIDE(__stop_cli_command = .);
+ } > FLASH
+ .crypto_data :
+ {
+ PROVIDE(__start_crypto_data = .);
+ KEEP(*(SORT(.crypto_data*)))
+ PROVIDE(__stop_crypto_data = .);
+ } > FLASH
+ .pwr_mgmt_data :
+ {
+ PROVIDE(__start_pwr_mgmt_data = .);
+ KEEP(*(SORT(.pwr_mgmt_data*)))
+ PROVIDE(__stop_pwr_mgmt_data = .);
+ } > FLASH
+ .log_const_data :
+ {
+ PROVIDE(__start_log_const_data = .);
+ KEEP(*(SORT(.log_const_data*)))
+ PROVIDE(__stop_log_const_data = .);
+ } > FLASH
+ .log_backends :
+ {
+ PROVIDE(__start_log_backends = .);
+ KEEP(*(SORT(.log_backends*)))
+ PROVIDE(__stop_log_backends = .);
+ } > FLASH
+ .nrf_balloc :
+ {
+ PROVIDE(__start_nrf_balloc = .);
+ KEEP(*(.nrf_balloc))
+ PROVIDE(__stop_nrf_balloc = .);
+ } > FLASH
+
+} INSERT AFTER .text
+
+
+INCLUDE "./nrf_common.ld"