Color Oled(SSD1331) connect to STMicroelectronics Nucleo-F466

Dependencies:   ssd1331

Committer:
kadonotakashi
Date:
Thu Oct 11 02:27:46 2018 +0000
Revision:
3:f3764f852aa8
Parent:
0:8fdf9a60065b
Nucreo 446 + SSD1331 test version;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kadonotakashi 0:8fdf9a60065b 1 """ import and bulid a bunch of example programs """
kadonotakashi 0:8fdf9a60065b 2
kadonotakashi 0:8fdf9a60065b 3 from argparse import ArgumentParser
kadonotakashi 0:8fdf9a60065b 4 import os
kadonotakashi 0:8fdf9a60065b 5 from os.path import dirname, abspath, basename
kadonotakashi 0:8fdf9a60065b 6 import os.path
kadonotakashi 0:8fdf9a60065b 7 import sys
kadonotakashi 0:8fdf9a60065b 8 import subprocess
kadonotakashi 0:8fdf9a60065b 9 import json
kadonotakashi 0:8fdf9a60065b 10
kadonotakashi 0:8fdf9a60065b 11 ROOT = abspath(dirname(dirname(dirname(dirname(__file__)))))
kadonotakashi 0:8fdf9a60065b 12 sys.path.insert(0, ROOT)
kadonotakashi 0:8fdf9a60065b 13
kadonotakashi 0:8fdf9a60065b 14 from tools.utils import argparse_force_uppercase_type
kadonotakashi 0:8fdf9a60065b 15 from tools.utils import argparse_many
kadonotakashi 0:8fdf9a60065b 16 from tools.build_api import get_mbed_official_release
kadonotakashi 0:8fdf9a60065b 17 import examples_lib as lib
kadonotakashi 0:8fdf9a60065b 18 from examples_lib import SUPPORTED_TOOLCHAINS, SUPPORTED_IDES
kadonotakashi 0:8fdf9a60065b 19
kadonotakashi 0:8fdf9a60065b 20 def main():
kadonotakashi 0:8fdf9a60065b 21 """Entry point"""
kadonotakashi 0:8fdf9a60065b 22
kadonotakashi 0:8fdf9a60065b 23 official_targets = get_mbed_official_release("5")
kadonotakashi 0:8fdf9a60065b 24 official_target_names = [x[0] for x in official_targets]
kadonotakashi 0:8fdf9a60065b 25
kadonotakashi 0:8fdf9a60065b 26
kadonotakashi 0:8fdf9a60065b 27 parser = ArgumentParser()
kadonotakashi 0:8fdf9a60065b 28 parser.add_argument("-c", dest="config", default="examples.json")
kadonotakashi 0:8fdf9a60065b 29 parser.add_argument("-e", "--example",
kadonotakashi 0:8fdf9a60065b 30 help=("filter the examples used in the script"),
kadonotakashi 0:8fdf9a60065b 31 type=argparse_many(lambda x: x),
kadonotakashi 0:8fdf9a60065b 32 default=[])
kadonotakashi 0:8fdf9a60065b 33 subparsers = parser.add_subparsers()
kadonotakashi 0:8fdf9a60065b 34 import_cmd = subparsers.add_parser("import")
kadonotakashi 0:8fdf9a60065b 35 import_cmd.set_defaults(fn=do_import)
kadonotakashi 0:8fdf9a60065b 36 clone_cmd = subparsers.add_parser("clone")
kadonotakashi 0:8fdf9a60065b 37 clone_cmd.set_defaults(fn=do_clone)
kadonotakashi 0:8fdf9a60065b 38 deploy_cmd = subparsers.add_parser("deploy")
kadonotakashi 0:8fdf9a60065b 39 deploy_cmd.set_defaults(fn=do_deploy)
kadonotakashi 0:8fdf9a60065b 40 version_cmd = subparsers.add_parser("tag")
kadonotakashi 0:8fdf9a60065b 41 version_cmd.add_argument("tag")
kadonotakashi 0:8fdf9a60065b 42 version_cmd.set_defaults(fn=do_versionning)
kadonotakashi 0:8fdf9a60065b 43 compile_cmd = subparsers.add_parser("compile")
kadonotakashi 0:8fdf9a60065b 44 compile_cmd.set_defaults(fn=do_compile),
kadonotakashi 0:8fdf9a60065b 45 compile_cmd.add_argument(
kadonotakashi 0:8fdf9a60065b 46 "toolchains", nargs="*", default=SUPPORTED_TOOLCHAINS,
kadonotakashi 0:8fdf9a60065b 47 type=argparse_force_uppercase_type(SUPPORTED_TOOLCHAINS,
kadonotakashi 0:8fdf9a60065b 48 "toolchain")),
kadonotakashi 0:8fdf9a60065b 49 compile_cmd.add_argument("-m", "--mcu",
kadonotakashi 0:8fdf9a60065b 50 help=("build for the given MCU (%s)" %
kadonotakashi 0:8fdf9a60065b 51 ', '.join(official_target_names)),
kadonotakashi 0:8fdf9a60065b 52 metavar="MCU",
kadonotakashi 0:8fdf9a60065b 53 type=argparse_many(
kadonotakashi 0:8fdf9a60065b 54 argparse_force_uppercase_type(
kadonotakashi 0:8fdf9a60065b 55 official_target_names, "MCU")),
kadonotakashi 0:8fdf9a60065b 56 default=official_target_names)
kadonotakashi 0:8fdf9a60065b 57
kadonotakashi 0:8fdf9a60065b 58 compile_cmd.add_argument("--profile",
kadonotakashi 0:8fdf9a60065b 59 help=("build profile file"),
kadonotakashi 0:8fdf9a60065b 60 metavar="profile")
kadonotakashi 0:8fdf9a60065b 61
kadonotakashi 0:8fdf9a60065b 62 export_cmd = subparsers.add_parser("export")
kadonotakashi 0:8fdf9a60065b 63 export_cmd.set_defaults(fn=do_export),
kadonotakashi 0:8fdf9a60065b 64 export_cmd.add_argument(
kadonotakashi 0:8fdf9a60065b 65 "ide", nargs="*", default=SUPPORTED_IDES,
kadonotakashi 0:8fdf9a60065b 66 type=argparse_force_uppercase_type(SUPPORTED_IDES,
kadonotakashi 0:8fdf9a60065b 67 "ide"))
kadonotakashi 0:8fdf9a60065b 68 export_cmd.add_argument("-m", "--mcu",
kadonotakashi 0:8fdf9a60065b 69 help=("build for the given MCU (%s)" %
kadonotakashi 0:8fdf9a60065b 70 ', '.join(official_target_names)),
kadonotakashi 0:8fdf9a60065b 71 metavar="MCU",
kadonotakashi 0:8fdf9a60065b 72 type=argparse_many(
kadonotakashi 0:8fdf9a60065b 73 argparse_force_uppercase_type(
kadonotakashi 0:8fdf9a60065b 74 official_target_names, "MCU")),
kadonotakashi 0:8fdf9a60065b 75 default=official_target_names)
kadonotakashi 0:8fdf9a60065b 76 args = parser.parse_args()
kadonotakashi 0:8fdf9a60065b 77 config = json.load(open(os.path.join(os.path.dirname(__file__),
kadonotakashi 0:8fdf9a60065b 78 args.config)))
kadonotakashi 0:8fdf9a60065b 79
kadonotakashi 0:8fdf9a60065b 80 all_examples = []
kadonotakashi 0:8fdf9a60065b 81 for example in config['examples']:
kadonotakashi 0:8fdf9a60065b 82 all_examples = all_examples + [basename(x['repo']) for x in lib.get_repo_list(example)]
kadonotakashi 0:8fdf9a60065b 83 examples = [x for x in all_examples if x in args.example] if args.example else all_examples
kadonotakashi 0:8fdf9a60065b 84 return args.fn(args, config, examples)
kadonotakashi 0:8fdf9a60065b 85
kadonotakashi 0:8fdf9a60065b 86
kadonotakashi 0:8fdf9a60065b 87 def do_export(args, config, examples):
kadonotakashi 0:8fdf9a60065b 88 """Do export and build step"""
kadonotakashi 0:8fdf9a60065b 89 results = {}
kadonotakashi 0:8fdf9a60065b 90 results = lib.export_repos(config, args.ide, args.mcu, examples)
kadonotakashi 0:8fdf9a60065b 91
kadonotakashi 0:8fdf9a60065b 92 lib.print_summary(results, export=True)
kadonotakashi 0:8fdf9a60065b 93 failures = lib.get_num_failures(results, export=True)
kadonotakashi 0:8fdf9a60065b 94 print("Number of failures = %d" % failures)
kadonotakashi 0:8fdf9a60065b 95 return failures
kadonotakashi 0:8fdf9a60065b 96
kadonotakashi 0:8fdf9a60065b 97
kadonotakashi 0:8fdf9a60065b 98 def do_import(_, config, examples):
kadonotakashi 0:8fdf9a60065b 99 """Do the import step of this process"""
kadonotakashi 0:8fdf9a60065b 100 lib.source_repos(config, examples)
kadonotakashi 0:8fdf9a60065b 101 return 0
kadonotakashi 0:8fdf9a60065b 102
kadonotakashi 0:8fdf9a60065b 103
kadonotakashi 0:8fdf9a60065b 104 def do_clone(_, config, examples):
kadonotakashi 0:8fdf9a60065b 105 """Do the clone step of this process"""
kadonotakashi 0:8fdf9a60065b 106 lib.clone_repos(config, examples)
kadonotakashi 0:8fdf9a60065b 107 return 0
kadonotakashi 0:8fdf9a60065b 108
kadonotakashi 0:8fdf9a60065b 109
kadonotakashi 0:8fdf9a60065b 110 def do_deploy(_, config, examples):
kadonotakashi 0:8fdf9a60065b 111 """Do the deploy step of this process"""
kadonotakashi 0:8fdf9a60065b 112 lib.deploy_repos(config, examples)
kadonotakashi 0:8fdf9a60065b 113 return 0
kadonotakashi 0:8fdf9a60065b 114
kadonotakashi 0:8fdf9a60065b 115
kadonotakashi 0:8fdf9a60065b 116 def do_compile(args, config, examples):
kadonotakashi 0:8fdf9a60065b 117 """Do the compile step"""
kadonotakashi 0:8fdf9a60065b 118 results = {}
kadonotakashi 0:8fdf9a60065b 119 results = lib.compile_repos(config, args.toolchains, args.mcu, args.profile, examples)
kadonotakashi 0:8fdf9a60065b 120
kadonotakashi 0:8fdf9a60065b 121 lib.print_summary(results)
kadonotakashi 0:8fdf9a60065b 122 failures = lib.get_num_failures(results)
kadonotakashi 0:8fdf9a60065b 123 print("Number of failures = %d" % failures)
kadonotakashi 0:8fdf9a60065b 124 return failures
kadonotakashi 0:8fdf9a60065b 125
kadonotakashi 0:8fdf9a60065b 126 def do_versionning(args, config, examples):
kadonotakashi 0:8fdf9a60065b 127 """ Test update the mbed-os to the version specified by the tag """
kadonotakashi 0:8fdf9a60065b 128 lib.update_mbedos_version(config, args.tag, examples)
kadonotakashi 0:8fdf9a60065b 129 return 0
kadonotakashi 0:8fdf9a60065b 130
kadonotakashi 0:8fdf9a60065b 131
kadonotakashi 0:8fdf9a60065b 132 if __name__ == "__main__":
kadonotakashi 0:8fdf9a60065b 133 sys.exit(main())