summaryrefslogtreecommitdiff
path: root/controller/ld/TM4C123GH6PM.ld
diff options
context:
space:
mode:
authorDuncan Wilkie <antigravityd@gmail.com>2023-07-14 11:17:59 -0500
committerDuncan Wilkie <antigravityd@gmail.com>2023-07-14 11:17:59 -0500
commit1fd366764d17874b8211ef63d41313995833e36d (patch)
treed221220abeff8c951faa185ecde0babcbb94fa5c /controller/ld/TM4C123GH6PM.ld
The start-ish of it all.
Diffstat (limited to 'controller/ld/TM4C123GH6PM.ld')
-rw-r--r--controller/ld/TM4C123GH6PM.ld72
1 files changed, 72 insertions, 0 deletions
diff --git a/controller/ld/TM4C123GH6PM.ld b/controller/ld/TM4C123GH6PM.ld
new file mode 100644
index 0000000..29ff8d8
--- /dev/null
+++ b/controller/ld/TM4C123GH6PM.ld
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 2018, Shawn D'silva <shawn@shawndsilva.com>
+* All rights reserved.
+*
+* This file is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library. If not, see <http://www.gnu.org/licenses/>.
+*
+* File: TM4C123GH6PHM.ld
+* Author: Shawn D'silva <https://www.shawndsilva.com>.
+* Version: 1.0.0.
+* Description: linker file for the TM4C Launchpad
+*/
+
+MEMORY
+{
+ FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 256K /* FLASH size 256KB */
+ RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 32K/* RAM size 32KB */
+
+}
+
+SECTIONS
+{
+
+
+ /*
+ * initial stack pointer pointing to top of stack,starts from higher addresses
+ * i.e ORIGIN(RAM) + LENGTH(RAM)-1 in this case 0x20007FFF to lower addesses i.e
+ * those lesser than 0x20007FFF to 0x2000000,which is the origina address of RAM,
+ * until it comes in contact with .bss or .data in which case a buffer overflow occurs
+ */
+ PROVIDE( _stack_ptr = ORIGIN(RAM) + LENGTH(RAM));
+
+ /* constants and other code stored in FLASH */
+ .text :
+ {
+ _text = .; /* beginning of .text segment,also called code memory */
+ KEEP(*(.vector_table)) /* vector table defined in startup.c to be included */
+ *(.text*) /* other code */
+ *(.rodata*) /* constants go here */
+ _etext = .; /* end of .text segment */
+ } > FLASH
+
+ /* data, initialized variables, to be copied to RAM upon <RESET> by startup.c */
+ .data :
+ {
+ _data = .; /* beginning of .data segment */
+ *(.data*) /* data goes here */
+ _edata = .; /* end of .data segment */
+ } > RAM AT >FLASH /* .data segment starts directly after the .text section in FLASH */
+
+ /* uninitialized data which is initialized to 0 upon <RESET> by startup.c */
+ .bss :
+ {
+ _bss = .; /* beginning of .bss segment */
+ *(.bss*) /* .bss content goes here */
+ *(COMMON)
+ _ebss = .; /* end of .bss segment */
+ } > RAM
+
+
+
+}