1 2 3 4
5
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
37 import xdc.bld.ITarget2;
38
39 /*!
40 * ======== M3.xdc ========
41 * Embedded little endian Cortex M3 bare metal target
42 *
43 * This module defines an embedded bare metal target on Cortex M3. The target
44 * generates code compatible with the "v7M" architecture.
45 *
46 */
47 metaonly module M3 inherits IM {
48 override readonly config string name = "M3";
49 override readonly config string suffix = "m3g";
50 override readonly config string isa = "v7M";
51
52 override config string platform = "ti.platforms.tiva:TM4C1294NCPDT";
53
54 override readonly config ITarget2.Command cc = {
55 cmd: "$(rootDir)/bin/$(GCCTARG)-gcc -c -MD -MF $@.dep",
56 opts: "-mcpu=cortex-m3 -mthumb -mabi=aapcs -g"
57 };
58
59 readonly config ITarget2.Command ccBin = {
60 cmd: "bin/arm-none-eabi-gcc -c -MD -MF $@.dep",
61 opts: "-mcpu=cortex-m3 -mthumb -mabi=aapcs -g"
62 };
63
64 override readonly config ITarget2.Command asm = {
65 cmd: "$(rootDir)/bin/$(GCCTARG)-gcc -c -x assembler-with-cpp",
66 opts: "-Wa,-mcpu=cortex-m3 -Wa,-mthumb"
67 };
68
69 readonly config ITarget2.Command asmBin = {
70 cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
71 opts: "-Wa,-mcpu=cortex-m3 -Wa,-mthumb"
72 };
73
74 override config ITarget2.Options lnkOpts = {
75 prefix: "-mcpu=cortex-m3 -mthumb -nostartfiles -Wl,-static -Wl,--gc-sections",
76 suffix: "-L$(packageBase)/libs/install-native/$(GCCTARG)/lib/thumb/v7-m/nofp -Wl,--start-group -lgcc -lc -lm -Wl,--end-group --specs=nano.specs -Wl,-Map=$(XDCCFGDIR)/$@.map"
77 };
78
79 /*!
80 * ======== includeOpts ========
81 * Additional user configurable target-specific include path options
82 *
83 * This target uses newlib-nano run-time.
84 */
85 override config string includeOpts = "-I$(packageBase)/libs/install-native/$(GCCTARG)/include/newlib-nano -I$(packageBase)/libs/install-native/$(GCCTARG)/include";
86 }
87 88 89 90
91