1 2 3 4 5 6 7 8 9 10 11
12 13 14 15
16
17 /*!
18 * ======== ITarget ========
19 * An ELF extension to the `ti.targets.ITarget` interface.
20 */
21 metaonly interface ITarget inherits ti.targets.ITarget {
22
23 override config xdc.bld.ITarget.OptionSet profiles[string] = [
24 ["debug", {
25 compileOpts: {
26 copts: "--symdebug:dwarf",
27 defs: "-D_DEBUG_=1",
28 }
29 }],
30 ["release", {
31 compileOpts: {
32 copts: "-O2",
33 },
34 }],
35 ["profile", {
36 compileOpts: {
37 copts: "--gen_profile_info",
38 },
39 }],
40 ["coverage", {
41 compileOpts: {
42 copts: "--gen_profile_info",
43 },
44 }],
45 ["whole_program", {
46 compileOpts: {
47 copts: "-oe -O2 -mo",
48 },
49 }],
50 ["whole_program_debug", {
51 compileOpts: {
52 copts: "-oe --symdebug:dwarf -mo",
53 },
54 }],
55 ];
56
57 final override readonly config string sectMap[string] = [
58 [".text", "code"],
59 [".ti.decompress", "code"],
60 [".stack", "stack"],
61 [".bss", "data"],
62 [".cinit", "data"],
63 [".init_array", "data"],
64 [".const", "data"],
65 [".data", "data"],
66 [".rodata", "data"],
67 [".neardata", "data"],
68 [".fardata", "data"],
69 [".switch", "data"],
70 [".sysmem", "data"],
71 [".far", "data"],
72 [".args", "data"],
73 [".cio", "data"],
74 [".ti.handler_table", "data"],
75 ];
76
77 override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
78 t_IArg : { size: 4, align: 4 },
79 t_Char : { size: 1, align: 1 },
80 t_Double : { size: 8, align: 8 },
81 t_Float : { size: 4, align: 4 },
82 t_Fxn : { size: 4, align: 4 },
83 t_Int : { size: 4, align: 4 },
84 t_Int8 : { size: 1, align: 1 },
85 t_Int16 : { size: 2, align: 2 },
86 t_Int32 : { size: 4, align: 4 },
87 t_Int64 : { size: 8, align: 8 },
88 t_Long : { size: 4, align: 4 },
89 t_LDouble : { size: 8, align: 8 },
90 t_LLong : { size: 8, align: 8 },
91 t_Ptr : { size: 4, align: 4 },
92 t_Short : { size: 2, align: 2 },
93 t_Size : { size: 4, align: 4 },
94 };
95
96 override config String stdInclude = "ti/targets/elf/std.h";
97
98 override config String binaryParser = "ti.targets.omf.elf.Elf32";
99 }
100 101 102 103
104