t
Fork of mbed-dev by
targets/TARGET_ONSEMI/TARGET_NCS36510/device/TOOLCHAIN_IAR/NCS36510.icf@178:c26431f84b0d, 2017-11-09 (annotated)
- Committer:
- amithy
- Date:
- Thu Nov 09 22:14:37 2017 +0000
- Revision:
- 178:c26431f84b0d
- Parent:
- 149:156823d33999
- Child:
- 164:289d4deac6e4
test export
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
<> | 144:ef7eb2e8f9f7 | 1 | |
<> | 144:ef7eb2e8f9f7 | 2 | /* The memory space denoting the maximum possible amount of addressable memory */ |
<> | 144:ef7eb2e8f9f7 | 3 | define memory Mem with size = 4G; |
<> | 144:ef7eb2e8f9f7 | 4 | |
<> | 144:ef7eb2e8f9f7 | 5 | /* Memory regions in an address space */ |
<> | 144:ef7eb2e8f9f7 | 6 | define region FLASHA = Mem:[from 0x00003000 size 0x4D000]; /* 308K = 320K - 4K(FIB table) - 8K(Persistent) */ |
<> | 144:ef7eb2e8f9f7 | 7 | define region FLASHB = Mem:[from 0x00100000 size 0x50000]; |
<> | 144:ef7eb2e8f9f7 | 8 | define region RAMA = Mem:[from 0x3FFFC000 size 0x4000]; |
<> | 144:ef7eb2e8f9f7 | 9 | define region RAMB = Mem:[from 0x3FFF8000 size 0x4000]; |
<> | 144:ef7eb2e8f9f7 | 10 | /* G2H ZPRO requires RAMC to be enabled */ |
<> | 144:ef7eb2e8f9f7 | 11 | define region RAMC = Mem:[from 0x3FFF4000 size 0x4000]; |
<> | 144:ef7eb2e8f9f7 | 12 | define region RAM_ALL = Mem:[from 0x3FFF4000 size 0xC000]; |
<> | 144:ef7eb2e8f9f7 | 13 | |
<> | 144:ef7eb2e8f9f7 | 14 | /* Create a stack */ |
<> | 144:ef7eb2e8f9f7 | 15 | define block CSTACK with size = 0x200, alignment = 8 { }; |
<> | 144:ef7eb2e8f9f7 | 16 | |
<> | 144:ef7eb2e8f9f7 | 17 | /* No Heap is created for C library, all memory management should be handled by the application */ |
<> | 144:ef7eb2e8f9f7 | 18 | define block HEAP with alignment = 8, size = 0x4000 { }; |
<> | 144:ef7eb2e8f9f7 | 19 | |
<> | 144:ef7eb2e8f9f7 | 20 | /* Handle initialization */ |
<> | 144:ef7eb2e8f9f7 | 21 | do not initialize { section .noinit }; |
<> | 144:ef7eb2e8f9f7 | 22 | |
<> | 144:ef7eb2e8f9f7 | 23 | /* Initialize RW sections, exclude zero-initialized sections */ |
<> | 144:ef7eb2e8f9f7 | 24 | initialize by copy with packing = none { readwrite }; |
<> | 144:ef7eb2e8f9f7 | 25 | |
<> | 144:ef7eb2e8f9f7 | 26 | /* Initialize the code in RAM, copied over from FLASH */ |
<> | 144:ef7eb2e8f9f7 | 27 | initialize by copy with packing = none { readonly code section EXECINRAM }; |
<> | 144:ef7eb2e8f9f7 | 28 | /*keep { readonly code section .EXECINRAM* } except { readonly code section EXECINRAM };*/ |
<> | 144:ef7eb2e8f9f7 | 29 | |
<> | 144:ef7eb2e8f9f7 | 30 | /* Place startup code at a fixed address */ |
<> | 144:ef7eb2e8f9f7 | 31 | place at start of FLASHA { readonly section .intvec, readonly section SWVERSION,readonly section FIBTABLE,readonly section .cstartup }; |
<> | 144:ef7eb2e8f9f7 | 32 | |
<> | 144:ef7eb2e8f9f7 | 33 | /* Place code and data */ |
<> | 144:ef7eb2e8f9f7 | 34 | |
<> | 144:ef7eb2e8f9f7 | 35 | /* Place constants and initializers in FLASHA: .rodata and .data_init */ |
<> | 144:ef7eb2e8f9f7 | 36 | place in FLASHA { readonly }; |
<> | 144:ef7eb2e8f9f7 | 37 | |
<> | 144:ef7eb2e8f9f7 | 38 | /* Place .data, .bss, and .noinit */ |
<> | 144:ef7eb2e8f9f7 | 39 | /* and STACK */ |
<> | 144:ef7eb2e8f9f7 | 40 | /* The relocatable exception table needs to be aligned at 0x0 or multiple of 0x100, |
<> | 144:ef7eb2e8f9f7 | 41 | * hence, place it as first block in RAM. |
<> | 144:ef7eb2e8f9f7 | 42 | */ |
<> | 144:ef7eb2e8f9f7 | 43 | place at start of RAM_ALL { section RAM_VECTORS }; |
<> | 144:ef7eb2e8f9f7 | 44 | place in RAM_ALL { readonly code section EXECINRAM }; |
<> | 144:ef7eb2e8f9f7 | 45 | place at end of RAM_ALL { block CSTACK }; |
<> | 144:ef7eb2e8f9f7 | 46 | |
<> | 144:ef7eb2e8f9f7 | 47 | |
<> | 144:ef7eb2e8f9f7 | 48 | place in RAM_ALL { readwrite }; |
<> | 144:ef7eb2e8f9f7 | 49 | place in RAM_ALL { block HEAP }; |