1 2 3 4 5 6 7 8 9 10 11
12
13 import ti.targets.ITarget;
14
15 /*!
16 * ======== MSP430X_small.xdc ========
17 * ELF MSP430X small code, small data model, little endian
18 */
19 metaonly module MSP430X_small inherits ITarget {
20 override readonly config string name = "MSP430X_small";
21 override readonly config string suffix = "e430XS";
22 override readonly config string isa = "430X";
23 override readonly config string rts = "ti.targets.msp430.rts430";
24 override readonly config xdc.bld.ITarget.Model model = {
25 endian: "little",
26 dataModel: "small",
27 codeModel: "small"
28 };
29
30 override readonly config string stdInclude = "ti/targets/msp430/elf/std.h";
31
32 override readonly config ITarget.Command ar = {
33 cmd: "ar430",
34 opts: "rq"
35 };
36
37 override readonly config ITarget.Command cc = {
38 cmd: "cl430 --abi=eabi -c",
39 opts: " -vmspx --code_model=small --data_model=small"
40 };
41
42 override readonly config ITarget.Command vers = {
43 cmd: "cl430",
44 opts: "--compiler_revision"
45 };
46
47 override readonly config ITarget.Command asm = {
48 cmd: "cl430 --abi=eabi -c",
49 opts: " -vmspx --code_model=small --data_model=small"
50 };
51
52 override readonly config ITarget.Command lnk = {
53 cmd: "cl430",
54 opts: "-z"
55 };
56
57 /*!
58 * ======== asmOpts ========
59 * User configurable assembler options.
60 *
61 * Defaults:
62 * @p(dlist)
63 * -`-qq`
64 * super quiet mode
65 */
66 override config ITarget.Options asmOpts = {
67 prefix: "-qq",
68 suffix: ""
69 };
70
71 /*!
72 * ======== ccOpts ========
73 * User configurable compiler options.
74 *
75 * Defaults:
76 * @p(dlist)
77 * -`-qq`
78 * super quiet mode
79 * -`-pdsw225`
80 * generate a warning for implicitly declared functions; i.e.,
81 * functions without prototypes
82 */
83 override config ITarget.Options ccOpts = {
84 prefix: "-qq -pdsw225",
85 suffix: ""
86 };
87
88 /*!
89 * ======== ccConfigOpts ========
90 * User configurable compiler options for the generated config C file.
91 */
92 override config ITarget.Options ccConfigOpts = {
93 prefix: "$(ccOpts.prefix)",
94 suffix: "$(ccOpts.suffix)"
95 };
96
97 /*!
98 * ======== profiles ========
99 * Standard options profiles for the TI tool-chain.
100 */
101 override config xdc.bld.ITarget.OptionSet profiles[string] = [
102 ["debug", {
103 compileOpts: {
104 copts: "-g",
105 defs: "-D_DEBUG_=1",
106 }
107 }],
108 ["release", {
109 compileOpts: {
110 copts: "-O2 -g --optimize_with_debug",
111 },
112 }],
113 ["profile", {
114 compileOpts: {
115 copts: "-g",
116 },
117 }],
118 ["coverage", {
119 compileOpts: {
120 copts: "-g",
121 },
122 }],
123 ];
124
125 override config string includeOpts = "-I$(rootDir)/include ";
126
127 final override readonly config string sectMap[string] = [
128 [".text", "code"],
129 [".cinit", "code"],
130 [".const", "code"],
131
132 [".init_array", "data"],
133 [".bss", "data"],
134 [".data", "data"],
135 [".sysmem", "data"],
136 [".stack", "stack"],
137 [".args", "data"],
138 [".cio", "data"],
139 [".reset", "data"],
140 [".mspabi.extab", "code"],
141 [".mspabi.exidx", "code"]
142 ];
143
144 final override readonly config Bool splitMap[string] =
145 MSP430.splitMap;
146
147 override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
148 t_IArg : { size: 2, align: 2 },
149 t_Char : { size: 1, align: 1 },
150 t_Double : { size: 8, align: 2 },
151 t_Float : { size: 4, align: 2 },
152 t_Fxn : { size: 2, align: 2 },
153 t_Int : { size: 2, align: 2 },
154 t_Int8 : { size: 1, align: 1 },
155 t_Int16 : { size: 2, align: 2 },
156 t_Int32 : { size: 4, align: 2 },
157 t_Long : { size: 4, align: 2 },
158 t_LDouble : { size: 8, align: 2 },
159 t_LLong : { size: 8, align: 2 },
160 t_Ptr : { size: 2, align: 2 },
161 t_Short : { size: 2, align: 2 },
162 t_Size : { size: 2, align: 2 },
163 };
164
165 override config String binaryParser = "ti.targets.omf.elf.Elf32";
166 };
167 168 169 170
171