Rtos API example

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 
00022 import os
00023 import sys
00024 
00025 ################################################################################
00026 # Configure builds here
00027 # "libs" can contain "dsp", "usb"
00028 
00029 build_list = (
00030     { "target": "LPC1768",           "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00031     { "target": "LPC11U24",          "toolchains": "GCC_ARM", "libs": ["dsp"] },
00032     { "target": "OC_MBUINO",         "toolchains": "GCC_ARM", "libs": []  },
00033 
00034     { "target": "LPC11U24_301",      "toolchains": "GCC_ARM", "libs": [] },
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_L432KC",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00057     { "target": "NUCLEO_L476RG",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00058     { "target": "NUCLEO_L011K4",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00059     { "target": "NUCLEO_L031K6",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00060     { "target": "NUCLEO_L073RZ",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00061     { "target": "NUCLEO_F429ZI",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00062     { "target": "NUCLEO_F446RE",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00063     { "target": "NUCLEO_F446ZE",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00064     { "target": "NUCLEO_F746ZG",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00065     { "target": "NUCLEO_F767ZI",     "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00066     { "target": "NUCLEO_L496ZG",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00067 
00068     { "target": "MOTE_L152RC",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00069 
00070     { "target": "ELMO_F411RE",       "toolchains": "GCC_ARM", "libs": ["dsp"] },
00071 
00072     { "target": "MTS_MDOT_F405RG",   "toolchains": "GCC_ARM", "libs": ["dsp"] },
00073     { "target": "MTS_MDOT_F411RE",   "toolchains": "GCC_ARM", "libs": ["dsp"] },
00074     { "target": "MTS_DRAGONFLY_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp"] },
00075     { "target": "ARCH_MAX",          "toolchains": "GCC_ARM", "libs": ["dsp"] },
00076 
00077     { "target": "DISCO_F051R8",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00078     { "target": "DISCO_F303VC",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00079     { "target": "DISCO_F334C8",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00080     { "target": "DISCO_F401VC",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00081 
00082     { "target": "DISCO_F407VG",      "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00083     { "target": "DISCO_F413ZH",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00084     { "target": "DISCO_F429ZI",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00085     { "target": "DISCO_F469NI",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00086     { "target": "DISCO_F746NG",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00087     { "target": "DISCO_F769NI",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00088     { "target": "DISCO_L475VG_IOT01A", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00089     { "target": "DISCO_L476VG",        "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00090     { "target": "DISCO_L072CZ_LRWAN1", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00091 
00092     { "target": "LPC1114",           "toolchains": "GCC_ARM", "libs": ["dsp"] },
00093     { "target": "LPC11U35_401",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00094     { "target": "UBLOX_C027",        "toolchains": "GCC_ARM", "libs": ["dsp"] },
00095     { "target": "LPC11U35_501",      "toolchains": "GCC_ARM", "libs": ["dsp"] },
00096     { "target": "LPC11U68",          "toolchains": "GCC_ARM", "libs": ["dsp"] },
00097     { "target": "LPC11U37H_401",     "toolchains": "GCC_ARM", "libs": ["dsp"] },
00098 
00099     { "target": "KL05Z",             "toolchains": "GCC_ARM", "libs": ["dsp"] },
00100     { "target": "KL25Z",             "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00101     { "target": "KL27Z",             "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00102     { "target": "KL43Z",             "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00103     { "target": "KL46Z",             "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00104     { "target": "K20D50M",           "toolchains": "GCC_ARM", "libs": ["dsp"] },
00105     { "target": "TEENSY3_1",         "toolchains": "GCC_ARM", "libs": ["dsp"] },
00106     { "target": "K64F",              "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00107     { "target": "K22F",              "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00108     { "target": "LPC4088",           "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00109     { "target": "ARCH_PRO",          "toolchains": "GCC_ARM", "libs": ["dsp"] },
00110     { "target": "LPC1549",           "toolchains": "GCC_ARM", "libs": ["dsp"] },
00111     { "target": "NRF51822",          "toolchains": "GCC_ARM", "libs": ["dsp"] },
00112     { "target": "DELTA_DFCM_NNN40",  "toolchains": "GCC_ARM", "libs": ["dsp"] },
00113     { "target": "NRF51_DK",          "toolchains": "GCC_ARM", "libs": ["dsp"] },
00114     { "target": "NRF51_MICROBIT",    "toolchains": "GCC_ARM", "libs": ["dsp"] },
00115 
00116     { "target": "EFM32ZG_STK3200",   "toolchains": "GCC_ARM", "libs": ["dsp"] },
00117     { "target": "EFM32HG_STK3400",   "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00118     { "target": "EFM32LG_STK3600",   "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00119     { "target": "EFM32GG_STK3700",   "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00120     { "target": "EFM32WG_STK3800",   "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
00121     { "target": "EFM32PG_STK3401",   "toolchains": "GCC_ARM", "libs": ["dsp"] },
00122 
00123     { "target": "MAXWSNENV",    "toolchains": "GCC_ARM", "libs": ["dsp"] },
00124     { "target": "MAX32600MBED", "toolchains": "GCC_ARM", "libs": ["dsp"] },
00125     { "target": "MAX32620HSP",  "toolchains": "GCC_ARM", "libs": ["dsp"] },
00126 
00127     { "target": "SAMR21G18A",  "toolchains": "GCC_ARM", "libs": ["dsp"] },
00128     { "target": "SAMD21J18A",  "toolchains": "GCC_ARM", "libs": ["dsp"] },
00129     { "target": "SAMD21G18A",  "toolchains": "GCC_ARM", "libs": ["dsp"] },
00130     { "target": "SAML21J18A",  "toolchains": "GCC_ARM", "libs": ["dsp"] },
00131 
00132     { "target": "NUMAKER_PFM_NUC472",   "toolchains": "GCC_ARM",    "libs": ["dsp", "usb"] },
00133     { "target": "NUMAKER_PFM_M453",     "toolchains": "GCC_ARM",    "libs": ["dsp", "usb"] },
00134     { "target": "NUMAKER_PFM_M487",     "toolchains": "GCC_ARM",    "libs": ["dsp", "usb"] },
00135  )
00136 
00137 ################################################################################
00138 # Configure example test building (linking against external mbed SDK libraries)
00139 
00140 linking_list = [
00141     {"target": "LPC1768",
00142      "toolchains": "GCC_ARM",
00143      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_15", "MBED_16", "MBED_17"],
00144                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00145                }
00146      },
00147     {"target": "K64F",
00148      "toolchains": "GCC_ARM",
00149      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00150                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00151                }
00152      },
00153     {"target": "K22F",
00154      "toolchains": "GCC_ARM",
00155      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00156                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00157                }
00158      },
00159     {"target": "KL43Z",
00160      "toolchains": "GCC_ARM",
00161      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00162                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00163                }
00164      },
00165     {"target": "NUCLEO_F446RE",
00166      "toolchains": "GCC_ARM",
00167      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00168                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00169                }
00170      },
00171     {"target": "NUCLEO_F446ZE",
00172      "toolchains": "GCC_ARM",
00173      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00174                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00175                }
00176      },
00177     {"target": "NUCLEO_F401RE",
00178      "toolchains": "GCC_ARM",
00179      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00180                "usb"  : ["USB_1", "USB_2" ,"USB_3"], 
00181              }
00182     },
00183     {"target": "NUCLEO_F411RE",
00184      "toolchains": "GCC_ARM",
00185      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00186                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00187                }
00188      },
00189     {"target": "NUCLEO_F412ZG",
00190      "toolchains": "GCC_ARM",
00191      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00192              }
00193     },
00194     {"target": "NUCLEO_F429ZI",
00195      "toolchains": "GCC_ARM",
00196      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00197                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00198                }
00199      },
00200     {"target": "NUCLEO_F207ZG",
00201      "toolchains": "GCC_ARM",
00202      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00203                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00204                }
00205      },
00206     {"target": "NUCLEO_F746ZG",
00207      "toolchains": "GCC_ARM",
00208      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00209                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00210                }
00211      },
00212     {"target": "NUCLEO_F767ZI",
00213      "toolchains": "GCC_ARM",
00214      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00215                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00216                }
00217      },
00218     {"target": "NUCLEO_L476RG",
00219      "toolchains": "GCC_ARM",
00220      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00221              }
00222     },
00223     {"target": "DISCO_F429ZI",
00224      "toolchains": "GCC_ARM",
00225      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00226              }
00227     },
00228     {"target": "DISCO_F407VG",
00229      "toolchains": "GCC_ARM",
00230      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00231                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00232                }
00233      },
00234      {"target": "DISCO_F413ZH",
00235      "toolchains": "GCC_ARM",
00236      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00237                }
00238      },
00239     {"target": "NUCLEO_F303ZE",
00240      "toolchains": "GCC_ARM",
00241      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00242                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00243              }
00244     },
00245     {"target": "DISCO_L475VG_IOT01A",
00246      "toolchains": "GCC_ARM",
00247      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00248                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00249                }
00250      },
00251     {"target": "DISCO_L476VG",
00252      "toolchains": "GCC_ARM",
00253      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00254                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00255                }
00256      },
00257     {"target": "DISCO_L072CZ_LRWAN1",
00258      "toolchains": "GCC_ARM",
00259      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00260               }
00261     },
00262     {"target": "NUMAKER_PFM_NUC472",
00263      "toolchains": "GCC_ARM",
00264      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00265                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00266                }
00267      },
00268     {"target": "NUMAKER_PFM_M453",
00269      "toolchains": "GCC_ARM",
00270      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00271                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00272                }
00273      },
00274     {"target": "NUMAKER_PFM_M487",
00275      "toolchains": "GCC_ARM",
00276      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00277                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00278                }
00279      }
00280     ]
00281 
00282 ################################################################################
00283 
00284 # Driver
00285 
00286 def run_builds(dry_run):
00287     for build in build_list:
00288         toolchain_list = build["toolchains"]
00289         if type(toolchain_list) != type([]): toolchain_list = [toolchain_list]
00290         for toolchain in toolchain_list:
00291             cmdline = "python tools/build.py -m %s -t %s -j 4 -c --silent "% (build["target"], toolchain)
00292             libs = build.get("libs", [])
00293             if libs:
00294                 cmdline = cmdline + " ".join(["--" + l for l in libs])
00295             print "Executing: " + cmdline
00296             if not dry_run:
00297                 if os.system(cmdline) != 0:
00298                     sys.exit(1)
00299 
00300 
00301 def run_test_linking(dry_run):
00302     """ Function run make.py commands to build and link simple mbed SDK
00303         tests against few libraries to make sure there are no simple linking errors.
00304     """
00305     for link in linking_list:
00306         toolchain_list = link["toolchains"]
00307         if type(toolchain_list) != type([]):
00308             toolchain_list = [toolchain_list]
00309         for toolchain in toolchain_list:
00310             tests = link["tests"]
00311             # Call make.py for each test group for particular library
00312             for test_lib in tests:
00313                 test_names = tests[test_lib]
00314                 test_lib_switch = "--" + test_lib if test_lib else ""
00315                 cmdline = "python tools/make.py -m %s -t %s -c --silent %s -n %s " % (link["target"], toolchain, test_lib_switch, ",".join(test_names))
00316                 print "Executing: " + cmdline
00317                 if not dry_run:
00318                     if os.system(cmdline) != 0:
00319                         sys.exit(1)
00320 
00321 def run_test_testsuite(dry_run):
00322     cmdline = "python tools/singletest.py --version"
00323     print "Executing: " + cmdline
00324     if not dry_run:
00325         if os.system(cmdline) != 0:
00326             sys.exit(1)
00327 
00328 if __name__ == "__main__":
00329     run_builds("-s" in sys.argv)
00330     run_test_linking("-s" in sys.argv)
00331     run_test_testsuite("-s" in sys.argv)