1 2 3 4 5 6 7 8 9 10 11
12 13 14 15
16
17 /*!
18 * ======== C55_huge ========
19 * TI C55 huge model target
20 */
21 metaonly module C55_huge inherits ti.targets.ITarget {
22 override readonly config string name = "C55_huge";
23 override readonly config string suffix = "55H";
24 override readonly config string isa = "55";
25 override readonly config xdc.bld.ITarget.Model model= {
26 endian: "big",
27 dataModel: "huge"
28 };
29 override readonly config string rts = "ti.targets.rts5500";
30
31 override readonly config xdc.bld.ITarget.Module base= ti.targets.C55;
32
33 override readonly config ITarget.Command ar = {
34 cmd: "ar55",
35 opts: "rq"
36 };
37
38 /*!
39 * ======== cc ========
40 * Required options:
41 * @p(dlist)
42 * -`--memory_model=huge`
43 * huge model; data pointers are greater than 16-bits
44 */
45 override readonly config ITarget.Command cc = {
46 cmd: "cl55 -c",
47 opts: "--memory_model=huge"
48 };
49
50 override readonly config ITarget.Command vers = {
51 cmd: "cl55",
52 opts: ""
53 };
54
55 /*!
56 * ======== asm ========
57 * Required options:
58 * @p(dlist)
59 * -`--memory_model=huge`
60 * huge model; data pointers are greater than 16-bits
61 */
62 override readonly config ITarget.Command asm = {
63 cmd: "cl55 -c",
64 opts: "--memory_model=huge"
65 };
66
67 override readonly config ITarget.Command lnk = {
68 cmd: "lnk55",
69 opts: ""
70 };
71
72 /*!
73 * ======== asmOpts ========
74 * User configurable assembler options.
75 *
76 * Defaults:
77 * @p(dlist)
78 * -`-qq`
79 * super quiet mode
80 * -`-vcore:3`
81 * huge model is only supported on rev 3 cores (and above)
82 */
83 override config ITarget.Options asmOpts = {
84 prefix: "-qq -vcore:3",
85 suffix: ""
86 };
87
88 /*!
89 * ======== ccOpts ========
90 * User configurable compiler options.
91 *
92 * Defaults:
93 * @p(dlist)
94 * -`-qq`
95 * super quiet mode
96 * -`-vcore:3`
97 * huge model is only supported on rev 3 cores (and above)
98 * -`-pdsw225`
99 * generate a warning for implicitly declared functions; i.e.,
100 * functions without prototypes
101 * -`-Dfar=`
102 * ignore keyword far; this allows one to write code that can
103 * be compiled in large model and small model without #ifdef's
104 */
105 override config ITarget.Options ccOpts = {
106 prefix: "-qq -vcore:3 -pdsw225 -Dfar= ",
107 suffix: ""
108 };
109
110 /*!
111 * ======== lnkOpts ========
112 * User configurable linker options.
113 *
114 * Defaults:
115 * @p(dlist)
116 * -`-w`
117 * Display linker warnings
118 * -`-q`
119 * Quite run
120 * -`-u`
121 * Place unresolved external symbol into symbol table
122 * -`-c`
123 * ROM autoinitialization model
124 * -`-m`
125 * create a map file
126 * -`-l`
127 * archive library file as linker input
128 */
129 override config ITarget.Options lnkOpts = {
130 prefix: "-w -q -u _c_int00",
131 suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts55h.lib"
132 };
133
134 override config string includeOpts = "-I$(rootDir)/include";
135
136 final override readonly config string sectMap[string] =
137 ti.targets.C55.sectMap;
138
139 override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
140 t_IArg : { size: 2, align: 2 },
141 t_Char : { size: 1, align: 1 },
142 t_Double : { size: 2, align: 2 },
143 t_Float : { size: 2, align: 2 },
144 t_Fxn : { size: 2, align: 2 },
145 t_Int : { size: 1, align: 1 },
146 t_Int8 : { size: 1, align: 1 },
147 t_Int16 : { size: 1, align: 1 },
148 t_Int32 : { size: 2, align: 2 },
149 t_Int40 : { size: 4, align: 2 },
150 t_Long : { size: 2, align: 2 },
151 t_LDouble : { size: 2, align: 2 },
152 t_LLong : { size: 4, align: 2 },
153 t_Ptr : { size: 2, align: 2 },
154 t_Short : { size: 1, align: 1 },
155 t_Size : { size: 2, align: 2 },
156 };
157
158 override readonly config Int bitsPerChar = 16;
159
160 }
161 162 163
164