1 2 3 4 5 6 7 8 9 10 11
12 13 14 15
16
17 /*!
18 * ======== C64P ========
19 * TI C64P little endian target -- for ELF
20 */
21 metaonly module C64P inherits ITarget {
22 override readonly config string name = "C64P";
23 override readonly config string suffix = "e64P";
24 override readonly config string isa = "64P";
25 override readonly config xdc.bld.ITarget.Model model = {
26 endian: "little"
27 };
28 override readonly config xdc.bld.ITarget.Module base = ti.targets.C62;
29
30 31 32
33 override config String compatibleSuffixes[] = ["", "e64", "e62"];
34
35 override readonly config string rts = "ti.targets.rts6000";
36 override config string platform = "ti.platforms.sim6xxx:TMS320CDM420";
37
38 override readonly config ti.targets.ITarget.Command ar = {
39 cmd: "ar6x",
40 opts: "rq"
41 };
42
43 override readonly config ti.targets.ITarget.Command cc = {
44 cmd: "cl6x -c",
45 opts: "-mv64p --abi=elfabi"
46 };
47
48 override readonly config ti.targets.ITarget.Command vers = {
49 cmd: "cl6x",
50 opts: "-version"
51 };
52
53 override readonly config ti.targets.ITarget.Command asm = {
54 cmd: "cl6x -c",
55 opts: "-mv64P --abi=elfabi"
56 };
57
58 override readonly config ti.targets.ITarget.Command lnk = {
59 cmd: "lnk6x",
60 opts: "--abi=elfabi"
61 };
62
63 /*!
64 * ======== asmOpts ========
65 * User configurable assembler options.
66 *
67 * Defaults:
68 * @p(dlist)
69 * -`-qq`
70 * super quiet mode
71 */
72 override config ti.targets.ITarget.Options asmOpts = {
73 prefix: "-qq",
74 suffix: ""
75 };
76
77 /*!
78 * ======== ccOpts ========
79 * User configurable compiler options.
80 *
81 * Defaults:
82 * @p(dlist)
83 * -`-qq`
84 * super quiet mode
85 * -`-pdsw225`
86 * generate a warning for implicitly declared functions; i.e.,
87 * functions without prototypes
88 */
89 override config ti.targets.ITarget.Options ccOpts = {
90 prefix: "-qq -pdsw225",
91 suffix: ""
92 };
93
94 /*!
95 * ======== ccConfigOpts ========
96 * User configurable compiler options for the generated config C file.
97 *
98 * -mo places all functions into subsections
99 * --no_compress helps with compile time with no real difference in
100 * code size since the generated config.c is mostly data and small
101 * function stubs.
102 */
103 override config ti.targets.ITarget.Options ccConfigOpts = {
104 prefix: "$(ccOpts.prefix) -mo --no_compress",
105 suffix: "$(ccOpts.suffix)"
106 };
107
108 /*!
109 * ======== lnkOpts ========
110 * User configurable linker options.
111 *
112 * Defaults:
113 * @p(dlist)
114 * -`-w`
115 * Display linker warnings
116 * -`-q`
117 * Quite run
118 * -`-u`
119 * Place unresolved external symbol into symbol table
120 * -`-c`
121 * ROM autoinitialization model
122 * -`-m`
123 * create a map file
124 * -`-l`
125 * archive library file as linker input
126 */
127 override config ti.targets.ITarget.Options lnkOpts = {
128 prefix: "-w -q -u _c_int00",
129 suffix: "-c -m $(XDCCFGDIR)/$@.map -l $(rootDir)/lib/rts64plus_elf.lib"
130 };
131
132 override config string includeOpts = "-I$(rootDir)/include";
133
134 override readonly config Int bitsPerChar =
135 ti.targets.C62.bitsPerChar;
136 }
137 138 139
140