|
25 | 25 | FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoapollo3")
|
26 | 26 | assert isdir(FRAMEWORK_DIR)
|
27 | 27 |
|
28 |
| -CORE_DIR = join(FRAMEWORK_DIR, "cores", "arduino") |
29 |
| -SDK_DIR = join(CORE_DIR, "am_sdk_ap3") |
30 |
| -CMSIS_DIR = join(SDK_DIR, "CMSIS") |
31 |
| -THIRD_PARTY_DIR = join(SDK_DIR, "third_party") |
32 |
| -EXACTLE_DIR = join(THIRD_PARTY_DIR, "exactle") |
| 28 | +BASE_CORE_DIR = join(FRAMEWORK_DIR, "cores") |
| 29 | +CORE_DIR = join(BASE_CORE_DIR, "arduino") |
| 30 | +MBED_DIR = join(FRAMEWORK_DIR, "cores", "mbed-os") |
| 31 | +BRIDGE_DIR = join(CORE_DIR, "mbed-bridge") |
| 32 | +TARGETS_DIR = join(MBED_DIR, "targets", "TARGET_Ambiq_Micro", "TARGET_Apollo3") |
| 33 | +SDK_DIR = join(TARGETS_DIR, "sdk") |
| 34 | +SDK_TARGETS_DIR = join(MBED_DIR, "targets", "TARGET_Ambiq_Micro", "sdk") |
| 35 | +CMSIS_DIR = join(SDK_DIR, "CMSIS") |
| 36 | + |
33 | 37 | LIBRARY_DIR = join(FRAMEWORK_DIR, "libraries")
|
34 | 38 |
|
35 | 39 | VARIANTS_DIR = join(FRAMEWORK_DIR, "variants")
|
36 |
| -BOARD_VARIANTS_DIR = join(VARIANTS_DIR, board.get("build.variant")) |
| 40 | +BOARD_VARIANTS_DIR = join(VARIANTS_DIR, board.get("build.variant").replace("TARGET_", "", 1)) |
| 41 | +BOARD_TARGET_DIR = join(TARGETS_DIR, board.get("build.variant")) |
| 42 | + |
| 43 | + |
| 44 | +TOOLS_DIR = join(FRAMEWORK_DIR, "tools") |
37 | 45 |
|
38 | 46 | env.Append(
|
39 | 47 | ASFLAGS=[
|
|
43 | 51 | ],
|
44 | 52 |
|
45 | 53 | CFLAGS=[
|
46 |
| - "-std=gnu11", |
47 |
| - "--function-sections", "-mfpu=fpv4-sp-d16", "-Wall" |
| 54 | + "-include", join(BOARD_VARIANTS_DIR, "mbed", "mbed_config.h"), |
| 55 | + "-include", join(CORE_DIR, "sdk", "ArduinoSDK.h"), |
| 56 | + "-iprefix{}/".format(BASE_CORE_DIR), |
| 57 | + join("@{}".format(BOARD_VARIANTS_DIR), "mbed", ".c-flags"), |
| 58 | + join("@{}".format(BOARD_VARIANTS_DIR), "mbed", ".includes"), |
| 59 | + join("@{}".format(BOARD_VARIANTS_DIR), "mbed", ".c-symbols"), |
48 | 60 | ],
|
49 | 61 |
|
50 | 62 | CPPFLAGS=[
|
51 |
| - "-c", "-g", "-MMD", |
52 |
| - "-mthumb", |
53 |
| - "-mfloat-abi=hard", |
54 |
| - "-fdata-sections", |
55 |
| - "-Os", |
56 |
| - "-ffunction-sections", |
57 |
| - |
58 |
| - "-nostdlib", |
59 |
| - "--param", "max-inline-insns-single=500", |
60 |
| - |
61 |
| - "-fno-exceptions", |
62 |
| - "-mcpu=%s" % board.get("build.cpu") |
63 | 63 | ],
|
64 | 64 |
|
65 | 65 | CXXFLAGS=[
|
66 |
| - "-std=gnu++11", |
67 |
| - "-fno-threadsafe-statics", |
68 |
| - "-fno-rtti", |
| 66 | + "-include", join(BOARD_VARIANTS_DIR, "mbed", "mbed_config.h"), |
| 67 | + "-include", join(CORE_DIR, "sdk", "ArduinoSDK.h"), |
| 68 | + "-iprefix{}/".format(BASE_CORE_DIR), |
| 69 | + join("@{}".format(BOARD_VARIANTS_DIR), "mbed", ".cxx-flags"), |
| 70 | + join("@{}".format(BOARD_VARIANTS_DIR), "mbed", ".includes"), |
| 71 | + join("@{}".format(BOARD_VARIANTS_DIR), "mbed", ".cxx-symbols"), |
69 | 72 | ],
|
70 | 73 |
|
71 | 74 | CPPDEFINES=[
|
72 |
| - ("F_CPU", "$BOARD_F_CPU"), |
73 |
| - ("ARDUINO", "10809"), |
| 75 | + "MBED_NO_GLOBAL_USING_DIRECTIVE", |
| 76 | + ("ARDUINO", "10811"), |
| 77 | + "ARDUINO_ARCH_APOLLO3" |
| 78 | + "ARDUINO_ARCH_MBED", |
| 79 | + "ARDUINO_ARCH_APOLLO3", |
| 80 | + "MBED_NO_GLOBAL_USING_DIRECTIVE", |
| 81 | + "CORDIO_ZERO_COPY_HCI", |
74 | 82 | ],
|
75 |
| - |
76 | 83 | CPPPATH=[
|
77 |
| - join(BOARD_VARIANTS_DIR, "config"), |
78 |
| - join(BOARD_VARIANTS_DIR, "bsp"), |
79 |
| - join(CORE_DIR, "ard_sup"), |
80 |
| - join(CORE_DIR, "ard_sup", "ard_supers"), |
81 |
| - join(CORE_DIR), |
82 |
| - join(VARIANTS_DIR, board.get("build.variant")), |
83 |
| - join(SDK_DIR, "mcu", "apollo3"), |
84 |
| - join(SDK_DIR, "mcu", "apollo3", "hal"), |
85 |
| - join(SDK_DIR, "mcu", "apollo3", "regs"), |
86 |
| - join(SDK_DIR, "utils"), |
87 |
| - join(SDK_DIR, "devices"), |
88 |
| - join(CMSIS_DIR, "AmbiqMicro", "Include"), |
89 |
| - join(CMSIS_DIR, "ARM", "Include"), |
90 |
| - join(THIRD_PARTY_DIR, "uecc", "micro-ecc"), |
91 |
| - join(EXACTLE_DIR, "sw", "hci", "ambiq"), |
92 |
| - join(EXACTLE_DIR, "sw", "hci", "include"), |
93 |
| - join(EXACTLE_DIR, "sw", "hci", "ambiq", "apollo3"), |
94 |
| - join(EXACTLE_DIR, "sw", "apps", "app"), |
95 |
| - join(EXACTLE_DIR, "sw", "apps", "app", "include"), |
96 |
| - join(EXACTLE_DIR, "sw", "services"), |
97 |
| - join(EXACTLE_DIR, "sw", "stack", "hci"), |
98 |
| - join(EXACTLE_DIR, "sw", "stack", "cfg"), |
99 |
| - join(EXACTLE_DIR, "sw", "sec", "include"), |
100 |
| - join(EXACTLE_DIR, "sw", "sec", "common"), |
101 |
| - join(EXACTLE_DIR, "sw", "services"), |
102 |
| - join(EXACTLE_DIR, "ws-core", "include"), |
103 |
| - join(EXACTLE_DIR, "ws-core", "sw", "util"), |
104 |
| - join(EXACTLE_DIR, "ws-core", "sw", "wsf", "ambiq"), |
105 |
| - join(EXACTLE_DIR, "ws-core", "sw", "wsf", "include"), |
106 |
| - join(EXACTLE_DIR, "sw", "stack", "include"), |
107 |
| - join(EXACTLE_DIR, "sw", "profiles"), |
108 |
| - join(EXACTLE_DIR, "sw", "profiles", "gatt"), |
109 |
| - join(EXACTLE_DIR, "sw", "profiles", "gap"), |
110 |
| - |
111 |
| - join(LIBRARY_DIR, "EEPROM", "src"), |
112 |
| - join(LIBRARY_DIR, "PDM", "src"), |
113 |
| - join(LIBRARY_DIR, "RTC", "src"), |
114 |
| - join(LIBRARY_DIR, "Servo", "src"), |
115 |
| - join(LIBRARY_DIR, "SoftwareSerial", "src"), |
116 |
| - join(LIBRARY_DIR, "SPI", "src"), |
117 |
| - join(LIBRARY_DIR, "Wire", "src"), |
| 84 | + CORE_DIR, |
| 85 | + BOARD_VARIANTS_DIR, |
| 86 | + BRIDGE_DIR, |
| 87 | + join(BRIDGE_DIR, "cort-api"), |
| 88 | +## MBED_DIR, |
| 89 | + #join(MBED_DIR, "cmsis", "TARGET_CORTEX_M"), |
| 90 | + #join(MBED_DIR, "hal"), |
| 91 | + #join(MBED_DIR, "rtos"), |
| 92 | + #join(MBED_DIR, "platform", "cxxsupport"), |
| 93 | + #join(BRIDGE_DIR, "core-api"), |
| 94 | + #join(TARGETS_DIR, "device"), |
| 95 | + #join(SDK_DIR, "mcu", "apollo3"), |
| 96 | + #join(CMSIS_DIR, "AmbiqMicro", "Include"), |
| 97 | +## BOARD_TARGET_DIR, |
| 98 | + #join(BOARD_TARGET_DIR, "bsp"), |
| 99 | + #join(SDK_DIR, "mcu", "apollo3"), |
| 100 | + #join(SDK_DIR, "mcu", "apollo3", "hal"), |
| 101 | + #join(SDK_DIR, "mcu", "apollo3", "regs"), |
| 102 | + #join(SDK_TARGETS_DIR, "utils"), |
| 103 | + #join(SDK_TARGETS_DIR, "devices"), |
118 | 104 |
|
119 | 105 | ],
|
120 | 106 |
|
121 | 107 | LINKFLAGS=[
|
122 |
| - "-T%s" % join(VARIANTS_DIR, board.get("build.variant"), "linker_scripts", "gcc", board.get("build.linker_script")), |
123 |
| - # "-Os", |
124 |
| - "-mthumb", |
125 |
| - "-mcpu=%s" % board.get("build.cpu"), |
126 |
| - "-mfpu=fpv4-sp-d16", |
127 |
| - "-mfloat-abi=hard", |
128 |
| - "--specs=nano.specs", |
129 |
| - "-mfloat-abi=hard", |
130 |
| - "-nostdlib", |
131 |
| - "-fno-exceptions", |
132 |
| - "-static", |
133 |
| - "-Wl,--gc-sections,--entry,Reset_Handler", |
134 |
| - "-Wl,--check-sections", |
135 |
| - "-Wl,--unresolved-symbols=report-all", |
136 |
| - "-Wl,--warn-common", |
137 |
| - "-Wl,--warn-section-align", |
| 108 | + "-T%s" % join(TOOLS_DIR, "uploaders", "asb", board.get("build.linker_script")), |
| 109 | + join("@{}".format(BOARD_VARIANTS_DIR), "mbed", ".ld-flags"), |
| 110 | + join("@{}".format(BOARD_VARIANTS_DIR), "mbed", ".ld-symbols"), |
| 111 | + ## "-Os", |
| 112 | + #"-mthumb", |
| 113 | + #"-mcpu=%s" % board.get("build.cpu"), |
| 114 | + #"-mfpu=fpv4-sp-d16", |
| 115 | + #"-mfloat-abi=hard", |
| 116 | + #"--specs=nano.specs", |
| 117 | + #"-mfloat-abi=hard", |
| 118 | + #"-nostdlib", |
| 119 | + #"-fno-exceptions", |
| 120 | + #"-static", |
| 121 | + #"-Wl,--gc-sections,--entry,Reset_Handler", |
| 122 | + #"-Wl,--check-sections", |
| 123 | + #"-Wl,--unresolved-symbols=report-all", |
| 124 | + #"-Wl,--warn-common", |
| 125 | + #"-Wl,--warn-section-align", |
138 | 126 |
|
139 | 127 | "-Wl,-Map=%s" % join("$BUILD_DIR", "program.map")
|
140 | 128 | ],
|
141 | 129 |
|
142 |
| - LIBS=["m", "arm_cortexM4lf_math", "gcc", "stdc++", "nosys", "c"], |
| 130 | + #LIBS=["m", "arm_cortexM4lf_math", "gcc", "stdc++", "nosys", "c", "libmbed-os.a"], |
| 131 | + LIBS=["stdc++", "supc++", "libmbed-os.a"], |
143 | 132 |
|
144 | 133 | LIBPATH=[
|
145 |
| - join(VARIANTS_DIR, board.get("build.variant")), |
| 134 | + join(BOARD_VARIANTS_DIR, "mbed"), |
146 | 135 | join(CMSIS_DIR, "ARM", "Lib", "ARM")
|
147 | 136 | ]
|
148 | 137 | )
|
149 | 138 |
|
150 | 139 | libs = []
|
151 | 140 |
|
152 |
| -libs.append(env.BuildLibrary( |
153 |
| - join("$BUILD_DIR", "FrameworkArduino"), |
154 |
| - join(CORE_DIR, "ard_sup"), |
155 |
| - |
156 |
| -)) |
| 141 | +print("------------------->", BRIDGE_DIR) |
| 142 | +print("------------------->", env) |
157 | 143 |
|
158 | 144 | libs.append(env.BuildLibrary(
|
159 |
| - join("$BUILD_DIR", "apollo3_sdk_mcu"), |
160 |
| - join(SDK_DIR, "mcu"), |
161 |
| - # join(SDK_DIR, "devices")] |
| 145 | + join("$BUILD_DIR", "varient"), |
| 146 | + BOARD_VARIANTS_DIR |
| 147 | + #BRIDGE_DIR, |
162 | 148 | ))
|
163 | 149 |
|
164 | 150 | libs.append(env.BuildLibrary(
|
165 |
| - join("$BUILD_DIR", "apollo3_sdk_devices"), |
166 |
| - join(SDK_DIR, "devices"), |
| 151 | + join("$BUILD_DIR", "mbed_bridge"), |
| 152 | + BRIDGE_DIR, |
167 | 153 | ))
|
168 | 154 |
|
169 |
| -libs.append(env.BuildLibrary( |
170 |
| - join("$BUILD_DIR", "apollo3_sdk_utils"), |
171 |
| - join(SDK_DIR, "utils"), |
172 |
| -)) |
173 |
| - |
174 |
| -libs.append(env.BuildLibrary( |
175 |
| - join("$BUILD_DIR", "variant"), |
176 |
| - join(BOARD_VARIANTS_DIR), |
177 |
| - |
178 |
| -)) |
| 155 | +# |
| 156 | +#libs.append(env.BuildLibrary( |
| 157 | +# join("$BUILD_DIR", "apollo3_sdk_mcu"), |
| 158 | +# join(SDK_DIR, "mcu"), |
| 159 | +# # join(SDK_DIR, "devices")] |
| 160 | +#)) |
| 161 | +# |
| 162 | +#libs.append(env.BuildLibrary( |
| 163 | +# join("$BUILD_DIR", "apollo3_sdk_devices"), |
| 164 | +# join(SDK_DIR, "devices"), |
| 165 | +#)) |
| 166 | +# |
| 167 | +#libs.append(env.BuildLibrary( |
| 168 | +# join("$BUILD_DIR", "apollo3_sdk_utils"), |
| 169 | +# join(SDK_DIR, "utils"), |
| 170 | +#)) |
| 171 | +# |
| 172 | +#libs.append(env.BuildLibrary( |
| 173 | +# join("$BUILD_DIR", "variant"), |
| 174 | +# join(BOARD_VARIANTS_DIR), |
| 175 | +# |
| 176 | +#)) |
179 | 177 |
|
180 | 178 | # Libraries
|
181 |
| -libs.append(env.BuildLibrary( |
182 |
| - join("$BUILD_DIR", "EEPROM"), |
183 |
| - join(LIBRARY_DIR, "EEPROM", "src"), |
184 |
| -)) |
| 179 | +#libs.append(env.BuildLibrary( |
| 180 | +# join("$BUILD_DIR", "EEPROM"), |
| 181 | +# join(LIBRARY_DIR, "EEPROM", "src"), |
| 182 | +#)) |
185 | 183 |
|
186 | 184 | libs.append(env.BuildLibrary(
|
187 | 185 | join("$BUILD_DIR", "PDM"),
|
|
0 commit comments