]> git.sur5r.net Git - freertos/blob - Demo/ColdFire_MCF51CN128_CodeWarrior/prm/Project.lcf
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / ColdFire_MCF51CN128_CodeWarrior / prm / Project.lcf
1 # Sample Linker Command File for CodeWarrior for ColdFire MCF51CN128\r
2 \r
3 # Memory ranges\r
4 \r
5 MEMORY {\r
6    code        (RX)  : ORIGIN = 0x00000410, LENGTH = 0x0001FBF0\r
7    userram     (RWX) : ORIGIN = 0x00800000, LENGTH = 0x00006000\r
8 }\r
9 \r
10 SECTIONS {\r
11 \r
12 # Heap and Stack sizes definition\r
13   ___heap_size     = 0x04;\r
14   ___stack_size    = 0x0200;\r
15 \r
16 # MCF51CN128 Derivative Memory map definitions from linker command files:\r
17 # ___RAM_ADDRESS, ___RAM_SIZE, ___FLASH_ADDRESS, ___FLASH_SIZE linker\r
18 # symbols must be defined in the linker command file.\r
19 \r
20 # 24 Kbytes Internal SRAM\r
21    ___RAM_ADDRESS = 0x00800000;\r
22    ___RAM_SIZE    = 0x00006000;\r
23 \r
24 # 128 KByte Internal Flash Memory\r
25    ___FLASH_ADDRESS  = 0x00000000;\r
26    ___FLASH_SIZE     = 0x00020000;\r
27 \r
28   .userram        : {} > userram\r
29   .code     : {} > code\r
30 \r
31   .text :\r
32   {\r
33     *(.text)\r
34     . = ALIGN (0x4);\r
35     *(.rodata)\r
36     . = ALIGN (0x4);\r
37     ___ROM_AT = .;\r
38     ___DATA_ROM = .;\r
39   } >> code\r
40 \r
41   .data : AT(___ROM_AT)\r
42   {\r
43     ___DATA_RAM = .;\r
44     . = ALIGN(0x4);\r
45     *(.exception)\r
46     . = ALIGN(0x4);\r
47     __exception_table_start__ = .;\r
48     EXCEPTION\r
49     __exception_table_end__ = .;\r
50 \r
51     ___sinit__ = .;\r
52       STATICINIT\r
53     __START_DATA = .;\r
54 \r
55     *(.data)\r
56     . = ALIGN (0x4);\r
57     __END_DATA = .;\r
58 \r
59     __START_SDATA = .;\r
60     *(.sdata)\r
61     . = ALIGN (0x4);\r
62     __END_SDATA = .;\r
63 \r
64     ___DATA_END = .;\r
65     __SDA_BASE = .;\r
66     . = ALIGN (0x4);\r
67   } >> userram\r
68 \r
69   .bss :\r
70   {\r
71     ___BSS_START = .;\r
72     __START_SBSS = .;\r
73     *(.sbss)\r
74     . = ALIGN (0x4);\r
75     *(SCOMMON)\r
76     __END_SBSS = .;\r
77 \r
78     __START_BSS = .;\r
79     *(.bss)\r
80     . = ALIGN (0x4);\r
81     *(COMMON)\r
82     __END_BSS = .;\r
83     ___BSS_END = .;\r
84 \r
85     . = ALIGN(0x4);\r
86   } >> userram\r
87 \r
88   .custom :\r
89   {\r
90     ___HEAP_START       = .;\r
91     ___heap_addr        = ___HEAP_START;\r
92     ___HEAP_END         = ___HEAP_START + ___heap_size;\r
93     ___SP_END             = ___HEAP_END;\r
94     ___SP_INIT          = ___SP_END + ___stack_size;\r
95 \r
96     . = ALIGN (0x4);\r
97   } >> userram\r
98 \r
99   __SP_INIT             = ___SP_INIT;\r
100 \r
101   ___SP_AFTER_RESET     = __SP_INIT;\r
102 \r
103   _romp_at = ___ROM_AT + SIZEOF(.data);\r
104   .romp : AT(_romp_at)\r
105   {\r
106     __S_romp = _romp_at;\r
107     WRITEW(___ROM_AT);\r
108     WRITEW(ADDR(.data));\r
109     WRITEW(SIZEOF(.data));\r
110     WRITEW(0);\r
111     WRITEW(0);\r
112     WRITEW(0);\r
113   }\r
114 }\r