1 2 3 4 5 6 7 8 9 10 11
12 import xdc.bld.ITarget2;
13
14 /*!
15 * ======== A15.xdc ========
16 * Embedded Cortex A15, little endian, bare metal target
17 *
18 * This module defines an embedded bare metal target on Cortex A15. The target
19 * generates code compatible with the "v7A" architecture.
20 *
21 */
22 metaonly module A15 inherits gnu.targets.ITarget {
23 override readonly config string name = "A15";
24 override readonly config string suffix = "a15g";
25 override readonly config string isa = "v7A15";
26 override readonly config xdc.bld.ITarget.Model model= {
27 endian: "little",
28 shortEnums: true
29 };
30
31 override readonly config Bool alignDirectiveSupported = true;
32
33 override readonly config string rts = "gnu.targets.arm.rtsv7A";
34 override config string platform = "ti.platforms.sdp5430";
35
36 override config string LONGNAME = "bin/arm-none-eabi-gcc";
37
38 override readonly config String stdInclude = "gnu/targets/arm/std.h";
39
40 override readonly config ITarget2.Command cc = {
41 cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
42 opts: "-mcpu=cortex-a15 -mfpu=neon -mfloat-abi=softfp"
43 };
44
45 readonly config ITarget2.Command ccBin = {
46 cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
47 opts: "-mabi=aapcs -mapcs"
48 };
49
50 override config ITarget2.Options ccOpts = {
51 prefix: "-fPIC -Wunused -Wunknown-pragmas",
52 suffix: "-Dfar= "
53 };
54
55 override readonly config ITarget2.Command asm = {
56 cmd: "$(rootDir)/$(LONGNAME) -c -x assembler-with-cpp",
57 opts: "-mcpu=cortex-a15 -mfpu=neon -mfloat-abi=softfp"
58 };
59
60 readonly config ITarget2.Command asmBin = {
61 cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
62 opts: "-mcpu=cortex-a15 -mfpu=neon -mfloat-abi=softfp"
63 };
64
65 override config ITarget2.Options lnkOpts = {
66 prefix: "-nostartfiles -Wl,-static -Wl,--gc-sections",
67 suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -L$(rootDir)/$(GCCTARG)/lib"
68 };
69
70 readonly config ITarget2.Command arBin = {
71 cmd: "bin/arm-none-eabi-ar ",
72 opts: ""
73 };
74
75 76 77
78 override config xdc.bld.ITarget.OptionSet profiles[string] = [
79 ["debug", {
80 compileOpts: {
81 copts: "-g",
82 defs: "-D_DEBUG_=1",
83 },
84 linkOpts: "-g",
85 }],
86
87 ["release", {
88 compileOpts: {
89 copts: " -O2 ",
90 },
91 linkOpts: " ",
92 }],
93 ];
94
95 96 97
98 override config String compatibleSuffixes[] = [];
99
100 override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
101 t_IArg : { size: 4, align: 4 },
102 t_Char : { size: 1, align: 1 },
103 t_Double : { size: 8, align: 4 },
104 t_Float : { size: 4, align: 4 },
105 t_Fxn : { size: 4, align: 4 },
106 t_Int : { size: 4, align: 4 },
107 t_Int8 : { size: 1, align: 1 },
108 t_Int16 : { size: 2, align: 2 },
109 t_Int32 : { size: 4, align: 4 },
110 t_Int64 : { size: 8, align: 4 },
111 t_Long : { size: 4, align: 4 },
112 t_LDouble : { size: 8, align: 4 },
113 t_LLong : { size: 8, align: 4 },
114 t_Ptr : { size: 4, align: 4 },
115 t_Short : { size: 2, align: 2 },
116 t_Size : { size: 4, align: 4 },
117 };
118 }
119 120 121 122
123