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 * ======== M0.xdc ========
41 * Embedded little endian Cortex M0 bare metal target
42 *
43 * This module defines an embedded bare metal target on Cortex M0. The target
44 * generates code compatible with the "v6M" architecture.
45 *
46 */
47 metaonly module M0 inherits IM {
48 override readonly config string name = "M0";
49 override readonly config string suffix = "m0g";
50 override readonly config string isa = "v6M";
51
52 override config string platform = "ti.platforms.simCM3";
53
54 override readonly config ITarget2.Command cc = {
55 cmd: "$(rootDir)/bin/$(GCCTARG)-gcc -c -MD -MF $@.dep",
56 opts: "-mcpu=cortex-m0plus -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-m0plus -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: "-mcpu=cortex-m0plus"
67 };
68
69 readonly config ITarget2.Command asmBin = {
70 cmd: "bin/arm-none-eabi-gcc -c -x assembler-with-cpp",
71 opts: "-mcpu=cortex-m0plus"
72 };
73
74 override config ITarget2.Options lnkOpts = {
75 prefix: "-mcpu=cortex-m0 -mthumb -nostartfiles -Wl,-static -Wl,--gc-sections",
76 suffix: "-L$(packageBase)/libs/install-native/$(GCCTARG)/lib/thumb/v6-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