Skip to content

Commit bd8c335

Browse files
committed
add scater files forARM CC and IAR for nRF52
add the startup file for IAR modyfi object.h for strict compiler
1 parent a8c27bd commit bd8c335

File tree

4 files changed

+650
-3
lines changed

4 files changed

+650
-3
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
;WITHOUT SOFTDEVICE:
2+
;LR_IROM1 0x00000000 0x00040000 {
3+
; ER_IROM1 0x00000000 0x00040000 {
4+
; *.o (RESET, +First)
5+
; *(InRoot$$Sections)
6+
; .ANY (+RO)
7+
; }
8+
; RW_IRAM1 0x20000000 0x00004000 {
9+
; .ANY (+RW +ZI)
10+
; }
11+
;}
12+
;
13+
;WITH SOFTDEVICE:
14+
15+
LR_IROM1 0x1C000 0x0064000 {
16+
ER_IROM1 0x1C000 0x0064000 {
17+
*.o (RESET, +First)
18+
*(InRoot$$Sections)
19+
.ANY (+RO)
20+
}
21+
RW_IRAM1 0x20002080 0x0000DF80 {
22+
.ANY (+RW +ZI)
23+
}
24+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*###ICF### Section handled by ICF editor, don't touch! ****/
2+
/*-Editor annotation file-*/
3+
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
4+
/*-Specials-*/
5+
define symbol __ICFEDIT_intvec_start__ = 0x1c000;
6+
/*-Memory Regions-*/
7+
define symbol __ICFEDIT_region_ROM_start__ = 0x1c000;
8+
define symbol __ICFEDIT_region_ROM_end__ = 0x7ffff;
9+
define symbol __ICFEDIT_region_RAM_start__ = 0x20002080;
10+
define symbol __ICFEDIT_region_RAM_end__ = 0x2000ffff;
11+
export symbol __ICFEDIT_region_RAM_start__;
12+
export symbol __ICFEDIT_region_RAM_end__;
13+
/*-Sizes-*/
14+
/*Heap 1/4 of ram and stack 1/8*/
15+
define symbol __ICFEDIT_size_cstack__ = 0xc00;
16+
define symbol __ICFEDIT_size_heap__ = 0x1800;
17+
/**** End of ICF editor section. ###ICF###*/
18+
19+
define symbol __code_start_soft_device__ = 0x0;
20+
21+
define memory mem with size = 4G;
22+
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
23+
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
24+
25+
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
26+
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
27+
28+
initialize by copy { readwrite };
29+
do not initialize { section .noinit };
30+
31+
keep { section .intvec };
32+
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
33+
place in ROM_region { readonly };
34+
place in RAM_region { readwrite,
35+
block CSTACK,
36+
block HEAP };
37+
38+
/*This is used for mbed applications build inside the Embedded workbench
39+
Applications build with the python scritps use a hex merge so need to merge it
40+
inside the linker. The linker can only use binary files so the hex merge is not possible
41+
through the linker. That is why a binary is used instead of a hex image for the embedded project.
42+
*/
43+
if(isdefinedsymbol(SOFT_DEVICE_BIN))
44+
{
45+
place at address mem:__code_start_soft_device__ { section .noinit_softdevice };
46+
}

0 commit comments

Comments
 (0)