Nathan Yonkee / Mbed 2 deprecated Nucleo_sinewave_output_copy

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers build_travis.py Source File

build_travis.py

00001 #!/usr/bin/env python2
00002 
00003 """
00004 Travis-CI build script
00005 
00006 mbed SDK
00007 Copyright (c) 2011-2013 ARM Limited
00008 
00009 Licensed under the Apache License, Version 2.0 (the "License");
00010 you may not use this file except in compliance with the License.
00011 You may obtain a copy of the License at
00012 
00013     http://www.apache.org/licenses/LICENSE-2.0
00014 
00015 Unless required by applicable law or agreed to in writing, software
00016 distributed under the License is distributed on an "AS IS" BASIS,
00017 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00018 See the License for the specific language governing permissions and
00019 limitations under the License.
00020 """
00021 from __future__ import print_function, division, absolute_import
00022 
00023 import os
00024 import sys
00025 
00026 from argparse import ArgumentParser
00027 
00028 ################################################################################
00029 # Configure builds here
00030 # "libs" can contain "dsp", "usb"
00031 
00032 build_list = [
00033     {
00034     "STM":
00035         (
00036         { "target": "B96B_F446VE",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00037         { "target": "NUCLEO_L053R8",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00038         { "target": "NUCLEO_L152RE",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00039         { "target": "NUCLEO_F030R8",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00040         { "target": "NUCLEO_F031K6",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00041         { "target": "NUCLEO_F042K6",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00042         { "target": "NUCLEO_F070RB",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00043         { "target": "NUCLEO_F072RB",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00044         { "target": "NUCLEO_F091RC",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00045         { "target": "NUCLEO_F103RB",     "toolchains": "GCC_ARM" },
00046         { "target": "NUCLEO_F207ZG",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00047         { "target": "NUCLEO_F302R8",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00048         { "target": "NUCLEO_F303K8",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00049         { "target": "NUCLEO_F303RE",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00050         { "target": "NUCLEO_F303ZE",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00051         { "target": "NUCLEO_F334R8",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00052         { "target": "NUCLEO_F401RE",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00053         { "target": "NUCLEO_F410RB",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00054         { "target": "NUCLEO_F411RE",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00055         { "target": "NUCLEO_F412ZG",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00056         { "target": "NUCLEO_F413ZH",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00057         { "target": "NUCLEO_L432KC",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00058         { "target": "MTB_ADV_WISE_1510", "toolchains": "GCC_ARM", "libs": ["dsp"] },
00059         { "target": "NUCLEO_L476RG",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00060         { "target": "NUCLEO_L011K4",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00061         { "target": "NUCLEO_L031K6",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00062         { "target": "NUCLEO_L073RZ",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00063         { "target": "NUCLEO_F429ZI",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00064         { "target": "NUCLEO_F446RE",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00065         { "target": "NUCLEO_F446ZE",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00066         { "target": "NUCLEO_F746ZG",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00067         { "target": "NUCLEO_F767ZI",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00068         { "target": "NUCLEO_L496ZG",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00069 
00070         { "target": "MOTE_L152RC",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00071 
00072         { "target": "ELMO_F411RE",       "toolchains": "GCC_ARM", "libs": ["dsp"] },
00073 
00074         { "target": "MTS_MDOT_F405RG",   "toolchains": "GCC_ARM", "libs": ["dsp"] },
00075         { "target": "MTS_MDOT_F411RE",   "toolchains": "GCC_ARM", "libs": ["dsp"] },
00076         { "target": "MTS_DRAGONFLY_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp"] },
00077         { "target": "ARCH_MAX",          "toolchains": "GCC_ARM", "libs": ["dsp"] },
00078 
00079         { "target": "DISCO_F051R8",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00080         { "target": "DISCO_F303VC",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00081         { "target": "DISCO_F334C8",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00082         { "target": "DISCO_F401VC",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00083 
00084         { "target": "DISCO_F407VG",      "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00085         { "target": "DISCO_F413ZH",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00086         { "target": "DISCO_F429ZI",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00087         { "target": "DISCO_F469NI",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00088         { "target": "DISCO_F746NG",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00089         { "target": "DISCO_F769NI",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00090         { "target": "DISCO_L475VG_IOT01A", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00091         { "target": "DISCO_L476VG",        "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00092         { "target": "DISCO_L072CZ_LRWAN1", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00093 
00094         # module manufacturer : muRata
00095         { "target": "MTB_MURATA_ABZ",    "toolchains": "GCC_ARM", "libs": [] },
00096         ),
00097     },
00098 
00099     {
00100         "NXP":
00101         (
00102             { "target": "LPC1768",           "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00103             { "target": "LPC11U24",          "toolchains": "GCC_ARM", "libs": ["dsp"] },
00104             { "target": "OC_MBUINO",         "toolchains": "GCC_ARM", "libs": []  },
00105 
00106             { "target": "LPC11U24_301",      "toolchains": "GCC_ARM", "libs": [] },
00107             { "target": "LPC1114",           "toolchains": "GCC_ARM", "libs": ["dsp"] },
00108             { "target": "LPC11U35_401",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00109             { "target": "UBLOX_C027",        "toolchains": "GCC_ARM", "libs": ["dsp"] },
00110             { "target": "LPC11U35_501",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00111             { "target": "LPC11U68",          "toolchains": "GCC_ARM", "libs": ["dsp"] },
00112             { "target": "LPC11U37H_401",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00113             { "target": "LPC1549",           "toolchains": "GCC_ARM", "libs": ["dsp"] },
00114             { "target": "KL05Z",             "toolchains": "GCC_ARM", "libs": ["dsp"] },
00115             { "target": "KL25Z",             "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00116             { "target": "KL27Z",             "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00117             { "target": "KL43Z",             "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00118             { "target": "KL46Z",             "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00119             { "target": "K20D50M",           "toolchains": "GCC_ARM", "libs": ["dsp"] },
00120             { "target": "TEENSY3_1",         "toolchains": "GCC_ARM", "libs": ["dsp"] },
00121             { "target": "K64F",              "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00122             { "target": "K22F",              "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00123             { "target": "LPC4088",           "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00124             { "target": "ARCH_PRO",          "toolchains": "GCC_ARM", "libs": ["dsp"] },
00125         )
00126     },
00127 
00128     {
00129         "NORDIC":
00130         (
00131             { "target": "NRF51822",          "toolchains": "GCC_ARM", "libs": ["dsp"] },
00132             { "target": "DELTA_DFCM_NNN40",  "toolchains": "GCC_ARM", "libs": ["dsp"] },
00133             { "target": "NRF51_DK",          "toolchains": "GCC_ARM", "libs": ["dsp"] },
00134             { "target": "NRF51_MICROBIT",    "toolchains": "GCC_ARM", "libs": ["dsp"] },
00135         )
00136     },
00137 
00138     {
00139         "SILICON_LABS":
00140         (
00141             { "target": "EFM32ZG_STK3200",   "toolchains": "GCC_ARM", "libs": ["dsp"] },
00142             { "target": "EFM32HG_STK3400",   "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00143             { "target": "EFM32LG_STK3600",   "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00144             { "target": "EFM32GG_STK3700",   "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00145             { "target": "EFM32WG_STK3800",   "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00146             { "target": "EFM32PG_STK3401",   "toolchains": "GCC_ARM", "libs": ["dsp"] },
00147         )
00148     },
00149 
00150     {
00151         "MAXIM":
00152         (
00153             { "target": "MAXWSNENV",    "toolchains": "GCC_ARM", "libs": ["dsp"] },
00154             { "target": "MAX32600MBED", "toolchains": "GCC_ARM", "libs": ["dsp"] },
00155             { "target": "MAX32620HSP",  "toolchains": "GCC_ARM", "libs": ["dsp"] },
00156         )
00157     },
00158 
00159     {
00160         "ATMEL":
00161         (
00162             { "target": "SAMR21G18A",  "toolchains": "GCC_ARM", "libs": ["dsp"] },
00163             { "target": "SAMD21J18A",  "toolchains": "GCC_ARM", "libs": ["dsp"] },
00164             { "target": "SAMD21G18A",  "toolchains": "GCC_ARM", "libs": ["dsp"] },
00165             { "target": "SAML21J18A",  "toolchains": "GCC_ARM", "libs": ["dsp"] },
00166         )
00167     },
00168 
00169 
00170     {
00171         "NUVOTON":
00172         (
00173             { "target": "NUMAKER_PFM_NUC472",   "toolchains": "GCC_ARM",    "libs": ["dsp", "usb"] },
00174             { "target": "NUMAKER_PFM_M453",     "toolchains": "GCC_ARM",    "libs": ["dsp", "usb"] },
00175             { "target": "NUMAKER_PFM_M487",     "toolchains": "GCC_ARM",    "libs": ["dsp", "usb"] },
00176         )
00177     },
00178 
00179 
00180     {
00181         "RENESAS":
00182         (
00183             { "target": "RZ_A1H",    "toolchains": "GCC_ARM" },
00184             { "target": "GR_LYCHEE", "toolchains": "GCC_ARM" },
00185         )
00186     }
00187 ]
00188 
00189 ################################################################################
00190 # Configure example test building (linking against external mbed SDK libraries)
00191 
00192 linking_list = [
00193     {
00194     "NXP": (
00195             {"target": "LPC1768",
00196              "toolchains": "GCC_ARM",
00197              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_15", "MBED_16", "MBED_17"],
00198                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00199                        }
00200              },
00201             {"target": "K64F",
00202              "toolchains": "GCC_ARM",
00203              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00204                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00205                        }
00206              },
00207             {"target": "K22F",
00208              "toolchains": "GCC_ARM",
00209              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00210                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00211                        }
00212              },
00213             {"target": "KL43Z",
00214              "toolchains": "GCC_ARM",
00215              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00216                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00217                        }
00218              },
00219          )
00220     },
00221 
00222     {
00223         "STM": (
00224             {"target": "NUCLEO_F446RE",
00225              "toolchains": "GCC_ARM",
00226              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00227                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00228                        }
00229              },
00230             {"target": "NUCLEO_F446ZE",
00231              "toolchains": "GCC_ARM",
00232              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00233                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00234                        }
00235              },
00236             {"target": "NUCLEO_F401RE",
00237              "toolchains": "GCC_ARM",
00238              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00239                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00240                      }
00241             },
00242             {"target": "NUCLEO_F411RE",
00243              "toolchains": "GCC_ARM",
00244              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00245                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00246                        }
00247              },
00248             {"target": "NUCLEO_F412ZG",
00249              "toolchains": "GCC_ARM",
00250              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00251                      }
00252             },
00253             {"target": "NUCLEO_F413ZH",
00254              "toolchains": "GCC_ARM",
00255              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00256                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00257                      }
00258             },
00259             {"target": "NUCLEO_F429ZI",
00260              "toolchains": "GCC_ARM",
00261              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00262                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00263                        }
00264              },
00265             {"target": "NUCLEO_F207ZG",
00266              "toolchains": "GCC_ARM",
00267              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00268                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00269                        }
00270              },
00271             {"target": "NUCLEO_F746ZG",
00272              "toolchains": "GCC_ARM",
00273              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00274                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00275                        }
00276              },
00277             {"target": "NUCLEO_F767ZI",
00278              "toolchains": "GCC_ARM",
00279              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00280                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00281                        }
00282              },
00283             {"target": "NUCLEO_L476RG",
00284              "toolchains": "GCC_ARM",
00285              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00286                      }
00287             },
00288             {"target": "DISCO_F429ZI",
00289              "toolchains": "GCC_ARM",
00290              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00291                      }
00292             },
00293             {"target": "DISCO_F407VG",
00294              "toolchains": "GCC_ARM",
00295              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00296                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00297                        }
00298              },
00299              {"target": "DISCO_F413ZH",
00300              "toolchains": "GCC_ARM",
00301              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00302                        }
00303              },
00304             {"target": "NUCLEO_F303ZE",
00305              "toolchains": "GCC_ARM",
00306              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00307                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00308                      }
00309             },
00310             {"target": "DISCO_L475VG_IOT01A",
00311              "toolchains": "GCC_ARM",
00312              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00313                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00314                        }
00315              },
00316             {"target": "DISCO_L476VG",
00317              "toolchains": "GCC_ARM",
00318              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00319                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00320                        }
00321              },
00322             {"target": "DISCO_L072CZ_LRWAN1",
00323              "toolchains": "GCC_ARM",
00324              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00325                       }
00326             },
00327             {"target": "MTB_MURATA_ABZ",
00328              "toolchains": "GCC_ARM",
00329              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00330                       }
00331             },
00332         )
00333     },
00334     {
00335         "NUVOTON": (
00336             {"target": "NUMAKER_PFM_NUC472",
00337              "toolchains": "GCC_ARM",
00338              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00339                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00340                        }
00341              },
00342             {"target": "NUMAKER_PFM_M453",
00343              "toolchains": "GCC_ARM",
00344              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00345                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00346                        }
00347              },
00348             {"target": "NUMAKER_PFM_M487",
00349              "toolchains": "GCC_ARM",
00350              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00351                        "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00352                        }
00353              }
00354         )
00355     },
00356     {
00357         "RENESAS":
00358         (
00359             {
00360              "target": "RZ_A1H",
00361              "toolchains": "GCC_ARM",
00362              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00363                       }
00364             },
00365             {
00366              "target": "GR_LYCHEE",
00367              "toolchains": "GCC_ARM",
00368              "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00369                       }
00370             },
00371         )
00372     }
00373 ]
00374 
00375 ################################################################################
00376 
00377 # Driver
00378 
00379 def run_builds(dry_run, vendor):
00380     for vendor_list in build_list:
00381         if vendor in vendor_list:
00382             for build in vendor_list[vendor]:
00383                 toolchain_list = build["toolchains"]
00384                 if type(toolchain_list) != type([]): toolchain_list = [toolchain_list]
00385                 for toolchain in toolchain_list:
00386                     cmdline = ("%s tools/build.py -m %s -t %s -c --silent "%
00387                                (sys.executable, build["target"], toolchain))
00388                     libs = build.get("libs", [])
00389                     if libs:
00390                         cmdline = cmdline + " ".join(["--" + l for l in libs])
00391                     print("Executing: %s" % cmdline)
00392                     if not dry_run:
00393                         if os.system(cmdline) != 0:
00394                             sys.exit(1)
00395 
00396 
00397 def run_test_linking(dry_run, vendor):
00398     """ Function run make.py commands to build and link simple mbed SDK
00399         tests against few libraries to make sure there are no simple linking errors.
00400     """
00401     for vendor_list in linking_list:
00402         if vendor in vendor_list:
00403             for link in vendor_list[vendor]:
00404                 toolchain_list = link["toolchains"]
00405                 if type(toolchain_list) != type([]):
00406                     toolchain_list = [toolchain_list]
00407                 for toolchain in toolchain_list:
00408                     tests = link["tests"]
00409                     # Call make.py for each test group for particular library
00410                     for test_lib in tests:
00411                         test_names = tests[test_lib]
00412                         test_lib_switch = "--" + test_lib if test_lib else ""
00413                         cmdline = ("%s tools/make.py -m %s -t %s -c --silent %s "
00414                                    "-n %s" % (sys.executable, link["target"],
00415                                                toolchain, test_lib_switch,
00416                                                ",".join(test_names)))
00417                         print("Executing: %s" % cmdline)
00418                         if not dry_run:
00419                             if os.system(cmdline) != 0:
00420                                 sys.exit(1)
00421 
00422 if __name__ == "__main__":
00423     parser = ArgumentParser()
00424 
00425     parser.add_argument("--vendor",
00426                         metavar="vendor",
00427                         type=str.upper,
00428                         help="Select a vendor to run travis tests"
00429                         )
00430 
00431     options = parser.parse_args()
00432 
00433     run_builds("-s" in sys.argv, options.vendor)
00434     run_test_linking("-s" in sys.argv, options.vendor)