Skip to content

Commit 48ee225

Browse files
committed
vectors and flash protection area are separated
1 parent afab75f commit 48ee225

File tree

2 files changed

+27
-20
lines changed

2 files changed

+27
-20
lines changed

libraries/mbed/targets/cmsis/TARGET_Freescale/TARGET_KL25Z/TOOLCHAIN_GCC_ARM/MKL25Z4.ld

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44

55
MEMORY
66
{
7-
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 128K
7+
VECTORS (rx) : ORIGIN = 0x00000000, LENGTH = 0x00000400
8+
FLASH_PROTECTION (rx) : ORIGIN = 0x00000400, LENGTH = 0x00000010
9+
FLASH (rx) : ORIGIN = 0x00000410, LENGTH = 128K - 0x00000410
810
RAM (rwx) : ORIGIN = 0x1FFFF000, LENGTH = 16K
911
}
1012

@@ -41,11 +43,17 @@ SECTIONS
4143
.isr_vector :
4244
{
4345
__vector_table = .;
44-
. = ALIGN(4);
45-
KEEP(*(.isr_vector))
46-
*(.text.SystemInit)
47-
. = ALIGN(4);
48-
} > FLASH
46+
KEEP(*(.vector_table))
47+
*(.text.Reset_Handler)
48+
*(.text.System_Init)
49+
. = ALIGN(4);
50+
} > VECTORS
51+
52+
.flash_protect :
53+
{
54+
KEEP(*(.kinetis_flash_config_field))
55+
. = ALIGN(4);
56+
} > FLASH_PROTECTION
4957

5058
.text :
5159
{

libraries/mbed/targets/cmsis/TARGET_Freescale/TARGET_KL25Z/TOOLCHAIN_GCC_ARM/startup_MKL25Z4.s

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ __HeapBase:
7474
__HeapLimit:
7575
.size __HeapLimit, . - __HeapLimit
7676

77-
.section .isr_vector
77+
.section .vector_table,"a",%progbits
7878
.align 2
7979
.globl __isr_vector
8080
__isr_vector:
@@ -100,7 +100,7 @@ __isr_vector:
100100
.long DMA1_IRQHandler /* DMA channel 1 transfer complete interrupt */
101101
.long DMA2_IRQHandler /* DMA channel 2 transfer complete interrupt */
102102
.long DMA3_IRQHandler /* DMA channel 3 transfer complete interrupt */
103-
.long Reserved20_IRQHandler /* Reserved interrupt 20 */
103+
.long Default_Handler /* Reserved interrupt 20 */
104104
.long FTFA_IRQHandler /* FTFA interrupt */
105105
.long LVD_LVW_IRQHandler /* Low Voltage Detect, Low Voltage Warning */
106106
.long LLW_IRQHandler /* Low Leakage Wakeup */
@@ -119,19 +119,19 @@ __isr_vector:
119119
.long RTC_IRQHandler /* RTC interrupt */
120120
.long RTC_Seconds_IRQHandler /* RTC seconds interrupt */
121121
.long PIT_IRQHandler /* PIT timer interrupt */
122-
.long Reserved39_IRQHandler /* Reserved interrupt 39 */
122+
.long Default_Handler /* Reserved interrupt 39 */
123123
.long USB0_IRQHandler /* USB0 interrupt */
124124
.long DAC0_IRQHandler /* DAC interrupt */
125125
.long TSI0_IRQHandler /* TSI0 interrupt */
126126
.long MCG_IRQHandler /* MCG interrupt */
127127
.long LPTimer_IRQHandler /* LPTimer interrupt */
128-
.long Reserved45_IRQHandler /* Reserved interrupt 45 */
128+
.long Default_Handler /* Reserved interrupt 45 */
129129
.long PORTA_IRQHandler /* Port A interrupt */
130130
.long PORTD_IRQHandler /* Port D interrupt */
131131

132132
.size __isr_vector, . - __isr_vector
133133

134-
.section .text
134+
.section .text.Reset_Handler
135135
.thumb
136136
.thumb_func
137137
.align 2
@@ -187,11 +187,12 @@ Reset_Handler:
187187
def_default_handler SVC_Handler
188188
def_default_handler PendSV_Handler
189189
def_default_handler SysTick_Handler
190+
def_default_handler Default_Handler
191+
190192
def_default_handler DMA0_IRQHandler
191193
def_default_handler DMA1_IRQHandler
192194
def_default_handler DMA2_IRQHandler
193195
def_default_handler DMA3_IRQHandler
194-
def_default_handler Reserved20_IRQHandler
195196
def_default_handler FTFA_IRQHandler
196197
def_default_handler LVD_LVW_IRQHandler
197198
def_default_handler LLW_IRQHandler
@@ -210,28 +211,26 @@ Reset_Handler:
210211
def_default_handler RTC_IRQHandler
211212
def_default_handler RTC_Seconds_IRQHandler
212213
def_default_handler PIT_IRQHandler
213-
def_default_handler Reserved39_IRQHandler
214214
def_default_handler USB0_IRQHandler
215215
def_default_handler DAC0_IRQHandler
216216
def_default_handler TSI0_IRQHandler
217217
def_default_handler MCG_IRQHandler
218218
def_default_handler LPTimer_IRQHandler
219-
def_default_handler Reserved45_IRQHandler
220219
def_default_handler PORTA_IRQHandler
221220
def_default_handler PORTD_IRQHandler
222221

223-
.weak DEF_IRQHandler
222+
.weak DEF_IRQHandler
224223
.set DEF_IRQHandler, Default_Handler
225224

226-
/* Flash protection region, placed inside isr_vector section */
227-
.section .isr_vector
225+
/* Flash protection region, placed at 0x400 */
226+
.text
227+
.thumb
228228
.align 2
229-
.org 0x400
230-
.globl kinetis_flash_config
229+
.section .kinetis_flash_config_field,"a",%progbits
231230
kinetis_flash_config:
232231
.long 0xffffffff
233232
.long 0xffffffff
234233
.long 0xffffffff
235-
.long 0xffffffff
234+
.long 0xfffffffe
236235

237236
.end

0 commit comments

Comments
 (0)