1 2 3 4 5 6 7 8 9 10 11
12
13 import xdc.bld.ITarget2;
14
15 /*!
16 * ======== GCArmv6.xdc ========
17 * Embedded little endian Arm v6 Linux target
18 *
19 * This module defines an embedded target for Linux on Arm. The target
20 * generates code compatible with the "v6" architecture.
21 *
22 */
23 metaonly module GCArmv6 inherits gnu.targets.ITarget {
24 override readonly config string name = "GCArmv6";
25 override readonly config string os = "Linux";
26 override readonly config string suffix = "v6";
27 override readonly config string isa = "v6";
28 override readonly config xdc.bld.ITarget.Model model= {
29 endian: "little"
30 };
31
32 override readonly config string rts = "gnu.targets.arm.rtsv6";
33 override config string platform = "host.platforms.arm";
34
35 override config string LONGNAME;
36
37 override readonly config String stdInclude = "gnu/targets/arm/std.h";
38
39 override readonly config ITarget2.Command cc = {
40 cmd: "$(rootDir)/$(LONGNAME) -c -MD -MF $@.dep",
41 opts: "-march=armv6"
42 };
43
44 override config ITarget2.Options ccOpts = {
45 prefix: "-fPIC -Wunused",
46 suffix: "-Dfar= "
47 };
48
49 override readonly config ITarget2.Command asm = {
50 cmd: "$(rootDir)/$(LONGNAME) -c -x assembler",
51 opts: "-march=armv6"
52 };
53
54 override config ITarget2.Options lnkOpts = {
55 prefix: "",
56 suffix: "-Wl,-Map=$(XDCCFGDIR)/$@.map -lstdc++ -L$(rootDir)/$(GCCTARG)/lib"
57
58 };
59
60 61 62
63 override config String compatibleSuffixes[] = ["v5T", "470MV", "v5t"];
64
65 override readonly config xdc.bld.ITarget.StdTypes stdTypes = {
66 t_IArg : { size: 4, align: 4 },
67 t_Char : { size: 1, align: 1 },
68 t_Double : { size: 8, align: 4 },
69 t_Float : { size: 4, align: 4 },
70 t_Fxn : { size: 4, align: 4 },
71 t_Int : { size: 4, align: 4 },
72 t_Int8 : { size: 1, align: 1 },
73 t_Int16 : { size: 2, align: 2 },
74 t_Int32 : { size: 4, align: 4 },
75 t_Int64 : { size: 8, align: 4 },
76 t_Long : { size: 4, align: 4 },
77 t_LDouble : { size: 8, align: 4 },
78 t_LLong : { size: 8, align: 4 },
79 t_Ptr : { size: 4, align: 4 },
80 t_Short : { size: 2, align: 2 },
81 };
82 }
83 84 85 86
87