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 /*!
24 * ======== ccConfigOpts ========
25 * User configurable compiler options for the generated config C file.
26 */
27 override config ti.targets.ITarget.Options ccConfigOpts = {
28 prefix: "$(ccOpts.prefix) -ms",
29 suffix: "$(ccOpts.suffix)"
30 };
31
32 final override readonly config string sectMap[string] = [
33 [".text: { *<copy*>(.text) }", "code"],
34 [".text", "code"],
35 [".stack", "stack"],
36 [".bss", "data"],
37 [".cinit", "data"],
38 [".pinit", "data"],
39 [".const", "data"],
40 [".data", "data"],
41 [".rodata", "data"],
42 [".neardata", "data"],
43 [".fardata", "data"],
44 [".switch", "data"],
45 [".sysmem", "data"],
46 [".far", "data"],
47 [".args", "data"],
48 [".cio", "data"],
49 ["__TI_handler_table", "data"],
50 ];
51
52 override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
53 t_IArg : { size: 4, align: 4 },
54 t_Char : { size: 1, align: 1 },
55 t_Double : { size: 8, align: 8 },
56 t_Float : { size: 4, align: 4 },
57 t_Fxn : { size: 4, align: 4 },
58 t_Int : { size: 4, align: 4 },
59 t_Int8 : { size: 1, align: 1 },
60 t_Int16 : { size: 2, align: 2 },
61 t_Int32 : { size: 4, align: 4 },
62 t_Int64 : { size: 8, align: 8 },
63 t_Long : { size: 4, align: 4 },
64 t_LDouble : { size: 8, align: 8 },
65 t_LLong : { size: 8, align: 8 },
66 t_Ptr : { size: 4, align: 4 },
67 t_Short : { size: 2, align: 2 },
68 };
69
70 override config String stdInclude = "ti/targets/arm/elf/std.h";
71 }
72 73 74
75