1 2 3 4 5 6 7 8 9 10 11
12
13 /*!
14 * ======== MSP430.xdc ========
15 * MSP430 small code, small data model, little endian
16 *
17 * This target corresponds to the TI default runtime model for MSP430 devices.
18 */
19 metaonly module MSP430 inherits ti.targets.ITarget {
20 override readonly config string name = "MSP430";
21 override readonly config string suffix = "430";
22 override readonly config string isa = "430";
23 override readonly config string rts = "ti.targets.msp430.rts430";
24 override readonly config xdc.bld.ITarget.Model model = {
25 endian: "little",
26 codeModel: "small",
27 dataModel: "small"
28 };
29
30 override readonly config string stdInclude = "ti/targets/msp430/std.h";
31
32 override readonly config ti.targets.ITarget.Command ar = {
33 cmd: "ar430",
34 opts: "rq"
35 };
36
37 override readonly config ti.targets.ITarget.Command cc = {
38 cmd: "cl430 -c",
39 opts: " -vmsp"
40 };
41
42 override readonly config ti.targets.ITarget.Command vers = {
43 cmd: "cl430",
44 opts: "--compiler_revision"
45 };
46
47 override readonly config ti.targets.ITarget.Command asm = {
48 cmd: "cl430 -c",
49 opts: " -vmsp"
50 };
51
52 override readonly config ti.targets.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 ti.targets.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 ti.targets.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 ti.targets.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: "-gp",
116 },
117 }],
118 ["coverage", {
119 compileOpts: {
120 copts: "-gp",
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 [".pinit", "code"],
132
133 [".bss", "data"],
134 [".sysmem", "data"],
135 [".stack", "stack"],
136 [".args", "data"],
137 [".cio", "data"],
138 [".reset", "data"],
139 ];
140
141 final override readonly config Bool splitMap[string] = [
142 [".text", true],
143 [".const", true],
144 [".args", true],
145 [".cio", true]
146 ];
147
148 override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
149 t_IArg : { size: 2, align: 2 },
150 t_Char : { size: 1, align: 1 },
151 t_Double : { size: 4, align: 2 },
152 t_Float : { size: 4, align: 2 },
153 t_Fxn : { size: 2, align: 2 },
154 t_Int : { size: 2, align: 2 },
155 t_Int8 : { size: 1, align: 1 },
156 t_Int16 : { size: 2, align: 2 },
157 t_Int32 : { size: 4, align: 2 },
158 t_Long : { size: 4, align: 2 },
159 t_LDouble : { size: 4, align: 2 },
160 t_LLong : { size: 8, align: 2 },
161 t_Ptr : { size: 2, align: 2 },
162 t_Short : { size: 2, align: 2 },
163 t_Size : { size: 2, align: 2 },
164 };
165 };
166 167 168 169
170