def configure_default_packages(self, variables, targets):
        if not variables.get("board"):
            return PlatformBase.configure_default_packages(
                self, variables, targets)
        board = self.board_config(variables.get("board"))
        upload_protocol = variables.get("upload_protocol",
                                        board.get("upload.protocol", ""))
        disabled_pkgs = []
        upload_tool = "tool-openocd"
        if upload_protocol == "sam-ba":
            upload_tool = "tool-bossac"
        elif upload_protocol == "stk500v2":
            upload_tool = "tool-avrdude"
        elif upload_protocol == "jlink":
            upload_tool = "tool-jlink"

        if upload_tool:
            for name, opts in self.packages.items():
                if "type" not in opts or opts['type'] != "uploader":
                    continue
                if name != upload_tool:
                    disabled_pkgs.append(name)

        if "mbed" in variables.get("pioframework", []):
            self.packages["toolchain-gccarmnoneeabi"][
                'version'] = ">=1.60301.0"
        if (board.get("build.core", "") == "adafruit"
                and "tool-bossac" in self.packages):
            self.packages["tool-bossac"]['version'] = "~1.10900.0"

        for name in disabled_pkgs:
            del self.packages[name]
        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #2
0
 def configure_default_packages(self, variables, targets):
     if not variables.get("pioframework"):
         self.packages['sdk-esp8266']['optional'] = False
     if "buildfs" in targets:
         self.packages['tool-mkspiffs']['optional'] = False
     return PlatformBase.configure_default_packages(
         self, variables, targets)
Beispiel #3
0
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            upload_protocol = variables.get("upload_protocol",
                                            self.board_config(
                                                variables.get("board")).get(
                                                    "upload.protocol", ""))
            if upload_protocol == "cmsis-dap":
                self.packages['tool-pyocd']['type'] = "uploader"

        # configure J-LINK tool
        jlink_conds = [
            "jlink" in variables.get(option, "")
            for option in ("upload_protocol", "debug_tool")
        ]
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            jlink_conds.extend([
                "jlink" in board_config.get(key, "")
                for key in ("debug.default_tools", "upload.protocol")
            ])
        jlink_pkgname = "tool-jlink"
        if not any(jlink_conds) and jlink_pkgname in self.packages:
            del self.packages[jlink_pkgname]

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            upload_protocol = variables.get("upload_protocol",
                                            self.board_config(
                                                variables.get("board")).get(
                                                    "upload.protocol", ""))

            if "tool-nrfjprog" in self.packages and \
                    upload_protocol != "nrfjprog":
                del self.packages["tool-nrfjprog"]

        # configure J-LINK tool
        jlink_conds = [
            "jlink" in variables.get(option, "")
            for option in ("upload_protocol", "debug_tool")
        ]
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            jlink_conds.extend([
                "jlink" in board_config.get(key, "")
                for key in ("debug.default_tools", "upload.protocol")
            ])
        jlink_pkgname = "tool-jlink"
        if not any(jlink_conds) and jlink_pkgname in self.packages:
            del self.packages[jlink_pkgname]

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #5
0
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            del_toolchain = "toolchain-gccarmnoneeabi"
            if board_config.get("build.core") != "teensy":
                del_toolchain = "toolchain-atmelavr"
            if del_toolchain in self.packages:
                del self.packages[del_toolchain]

        if "mbed" in variables.get("pioframework", []):
            self.packages["toolchain-gccarmnoneeabi"][
                'version'] = ">=1.60301.0,<1.80000.0"

        # configure J-LINK tool
        jlink_conds = [
            "jlink" in variables.get(option, "")
            for option in ("upload_protocol", "debug_tool")
        ]
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            jlink_conds.extend([
                "jlink" in board_config.get(key, "")
                for key in ("debug.default_tools", "upload.protocol")
            ])
        jlink_pkgname = "tool-jlink"
        if not any(jlink_conds) and jlink_pkgname in self.packages:
            del self.packages[jlink_pkgname]

        return PlatformBase.configure_default_packages(
            self, variables, targets)
Beispiel #6
0
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            upload_protocol = variables.get("upload_protocol",
                                            self.board_config(
                                                variables.get("board")).get(
                                                    "upload.protocol", ""))
            upload_tool = "tool-openocd"
            if upload_protocol == "sam-ba":
                upload_tool = "tool-bossac"
            elif upload_protocol == "stk500v2":
                upload_tool = "tool-avrdude"

            if upload_tool:
                for name, opts in self.packages.items():
                    if "type" not in opts or opts['type'] != "uploader":
                        continue
                    if name != upload_tool:
                        del self.packages[name]

            if "mbed" in variables.get("pioframework", []):
                self.packages["toolchain-gccarmnoneeabi"][
                    'version'] = ">=1.60301.0"

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
    def configure_default_packages(self, variables, targets):
        if not variables.get("board"):
            return PlatformBase.configure_default_packages(
                self, variables, targets)

        board_config = self.board_config(variables.get("board"))
        mcu = variables.get("board_build.mcu",
                            board_config.get("build.mcu", "esp32"))
        frameworks = variables.get("pioframework", [])
        if "buildfs" in targets:
            self.packages["tool-mkspiffs"]["optional"] = False
        if variables.get("upload_protocol"):
            self.packages["tool-openocd-esp32"]["optional"] = False
        if os.path.isdir("ulp"):
            self.packages["toolchain-esp32ulp"]["optional"] = False
        if "espidf" in frameworks:
            for p in self.packages:
                if p in ("tool-cmake", "tool-ninja", "toolchain-%sulp" % mcu):
                    self.packages[p]["optional"] = False
                elif p in ("tool-mconf",
                           "tool-idf") and "windows" in get_systype():
                    self.packages[p]["optional"] = False
            self.packages["toolchain-xtensa32"]["version"] = "~2.80400.0"
            if "arduino" in frameworks:
                # Arduino component is not compatible with ESP-IDF >=4.1
                self.packages["framework-espidf"]["version"] = "~3.40001.0"
        # ESP32-S2 toolchain is identical for both Arduino and ESP-IDF
        if mcu == "esp32s2":
            self.packages.pop("toolchain-xtensa32", None)
            self.packages["toolchain-xtensa32s2"]["optional"] = False
            self.packages["toolchain-esp32s2ulp"]["optional"] = False

        build_core = variables.get("board_build.core",
                                   board_config.get("build.core",
                                                    "arduino")).lower()
        if build_core == "mbcwb":
            self.packages["framework-arduinoespressif32"]["optional"] = True
            self.packages["framework-arduino-mbcwb"]["optional"] = False
            self.packages["tool-mbctool"]["type"] = "uploader"
            self.packages["tool-mbctool"]["optional"] = False

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #8
0
 def get_boards(self, id_=None):
     result = PlatformBase.get_boards(self, id_)
     if not result:
         return result
     if id_:
         return self._add_default_debug_tools(result)
     else:
         for key, value in result.items():
             result[key] = self._add_default_debug_tools(result[key])
     return result
Beispiel #9
0
 def get_boards(self, id_=None):
     result = PlatformBase.get_boards(self, id_)
     if not result:
         return result
     if id_:
         return self._add_default_debug_tools(result)
     else:
         for key, value in result.items():
             result[key] = self._add_default_debug_tools(result[key])
     return result
 def get_boards(self, id_=None):
     result = PlatformBase.get_boards(self, id_)
     if not result:
         return result
     if id_:
         return self._add_dynamic_options(result)
     else:
         for key, value in result.items():
             result[key] = self._add_dynamic_options(result[key])
         return result
    def configure_default_packages(self, variables, targets):
        if "buildfs" in targets:
            self.packages['tool-mkspiffs']['optional'] = False
        if variables.get("upload_protocol"):
            self.packages['tool-openocd-esp32']['optional'] = False
        if isdir("ulp"):
            self.packages['toolchain-esp32ulp']['optional'] = False

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
    def configure_default_packages(self, variables, targets):
        if not self._is_native() and "wiringpi" in variables.get(
                "pioframework"):
            raise exception.PlatformioException(
                "PlatformIO temporary does not support cross-compilation "
                "for WiringPi framework. Please use PIO Core directly on "
                "Raspberry Pi")

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #13
0
    def configure_default_packages(self, variables, targets):
        board = variables.get("board")
        board_config = self.board_config(board)

        default_protocol = board_config.get("upload.protocol") or ""
        if variables.get("upload_protocol", default_protocol) == "dfu":
            self.packages["tool-dfuutil"]["optional"] = False

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #14
0
    def configure_default_packages(self, variables, targets):
        if ("wiringpi" in variables.get("pioframework")
                and "linux_arm" not in util.get_systype()):
            raise exception.PlatformioException(
                "PlatformIO temporary does not support cross-compilation "
                "for WiringPi framework. Please run PlatformIO directly on "
                "Raspberry Pi")

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            upload_protocol = variables.get(
                "upload_protocol",
                self.board_config(variables.get("board")).get(
                    "upload.protocol", ""))
            if upload_protocol == "cmsis-dap":
                self.packages['tool-pyocd']['type'] = "uploader"

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #16
0
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            disable_tool = "tool-micronucleus"
            if "digispark" in board_config.get("build.core", ""):
                disable_tool = "tool-avrdude"
            if disable_tool in self.packages:
                del self.packages[disable_tool]

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #17
0
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            if board_config.get("build.core") == "teensy":
                toolchain = "toolchain-atmelavr"
            else:
                toolchain = "toolchain-gccarmnoneeabi"
            self.packages[toolchain]['optional'] = False

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #18
0
    def configure_default_packages(self, variables, targets):
        upload_protocol = ""
        board = variables.get("board")
        if board:
            upload_protocol = variables.get(
                "upload_protocol",
                self.board_config(board).get("upload.protocol", ""))

            if self.board_config(board).get("build.bsp.name",
                                            "nrf5") == "adafruit":
                self.frameworks['arduino'][
                    'package'] = "framework-arduinoadafruitnrf52"

            if "zephyr" in variables.get("pioframework", []):
                for p in self.packages:
                    if p.startswith("framework-zephyr-") or p in (
                            "tool-cmake", "tool-dtc", "tool-ninja"):
                        self.packages[p]["optional"] = False
                self.packages['toolchain-gccarmnoneeabi'][
                    'version'] = "~1.80201.0"
                if "windows" not in get_systype():
                    self.packages['tool-gperf']['optional'] = False

            if board == "nano33ble":
                self.packages['toolchain-gccarmnoneeabi'][
                    'version'] = "~1.80201.0"
                self.frameworks['arduino'][
                    'package'] = "framework-arduino-nrf52-mbedos"
                self.frameworks['arduino'][
                    'script'] = "builder/frameworks/arduino/nrf52-mbedos.py"

        if set(["bootloader", "erase"]) & set(targets):
            self.packages["tool-nrfjprog"]["optional"] = False
        elif (upload_protocol and upload_protocol != "nrfjprog"
              and "tool-nrfjprog" in self.packages):
            del self.packages["tool-nrfjprog"]

        # configure J-LINK tool
        jlink_conds = [
            "jlink" in variables.get(option, "")
            for option in ("upload_protocol", "debug_tool")
        ]
        if board:
            board_config = self.board_config(board)
            jlink_conds.extend([
                "jlink" in board_config.get(key, "")
                for key in ("debug.default_tools", "upload.protocol")
            ])
        jlink_pkgname = "tool-jlink"
        if not any(jlink_conds) and jlink_pkgname in self.packages:
            del self.packages[jlink_pkgname]

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #19
0
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            disable_tool = "tool-micronucleus"
            if "digispark" in board_config.get("build.core", ""):
                disable_tool = "tool-avrdude"
            if disable_tool in self.packages:
                del self.packages[disable_tool]

        return PlatformBase.configure_default_packages(
            self, variables, targets)
Beispiel #20
0
    def configure_default_packages(self, variables, targets):
        board = variables.get("board")
        build_core = variables.get(
            "board_build.core",
            self.board_config(variables.get("board")).get(
                "build.core", "arduino"))

        if "arduino" in variables.get("pioframework",
                                      []) and build_core == "maple":
            self.frameworks['arduino'][
                'package'] = "framework-arduinoststm32-maple"
            self.packages["framework-arduinoststm32-maple"]["optional"] = False
            self.packages["framework-arduinoststm32"]["optional"] = True

        default_protocol = self.board_config(
            variables.get("board")).get("upload.protocol") or ""
        if variables.get("upload_protocol", default_protocol) == "dfu":
            self.packages["tool-dfuutil"]["optional"] = False

        if board == "mxchip_az3166":
            self.frameworks['arduino'][
                'package'] = "framework-arduinostm32mxchip"
            self.frameworks['arduino'][
                'script'] = "builder/frameworks/arduino/mxchip.py"
            self.packages['toolchain-gccarmnoneeabi']['version'] = "~1.60301.0"

        if "zephyr" in variables.get("pioframework", []):
            for p in self.packages:
                if p.startswith("framework-zephyr-") or p in ("tool-cmake",
                                                              "tool-dtc",
                                                              "tool-ninja"):
                    self.packages[p]["optional"] = False
            self.packages['toolchain-gccarmnoneeabi']['version'] = "~1.80201.0"
            if "windows" not in get_systype():
                self.packages['tool-gperf']['optional'] = False

        # configure J-LINK tool
        jlink_conds = [
            "jlink" in variables.get(option, "")
            for option in ("upload_protocol", "debug_tool")
        ]
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            jlink_conds.extend([
                "jlink" in board_config.get(key, "")
                for key in ("debug.default_tools", "upload.protocol")
            ])
        jlink_pkgname = "tool-jlink"
        if not any(jlink_conds) and jlink_pkgname in self.packages:
            del self.packages[jlink_pkgname]

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #21
0
    def configure_default_packages(self, variables, targets):
        if "zephyr" in variables.get("pioframework", []):
            for p in self.packages:
                if p.startswith("framework-zephyr-") or p in ("tool-cmake",
                                                              "tool-dtc",
                                                              "tool-ninja"):
                    self.packages[p]["optional"] = False
            if "windows" not in get_systype():
                self.packages['tool-gperf']['optional'] = False

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #22
0
    def configure_default_packages(self, variables, targets):
        board = variables.get("board")

        if board == "mxchip_az3166":
            self.frameworks['arduino'][
                'package'] = "framework-arduinostm32mxchip"
            self.frameworks['arduino'][
                'script'] = "builder/frameworks/arduino/mxchip.py"
            self.packages['toolchain-gccarmnoneeabi']['version'] = "~1.60301.0"

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #23
0
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            upload_protocol = variables.get(
                "upload_protocol",
                self.board_config(variables.get("board")).get(
                    "upload.protocol", ""))
            if "tool-nrfjprog" in self.packages and \
                    upload_protocol != "nrfjprog":
                del self.packages["tool-nrfjprog"]

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #24
0
    def configure_default_packages(self, variables, targets):
        board = variables.get("board")

        if board == "mxchip_az3166":
            self.frameworks['arduino'][
                'package'] = "framework-arduinostm32mxchip"
            self.frameworks['arduino'][
                'script'] = "builder/frameworks/arduino/mxchip.py"
            self.packages['toolchain-gccarmnoneeabi']['version'] = "~1.60301.0"

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
 def configure_default_packages(self, variables, targets):
     if not variables.get("pioframework"):
         self.packages['sdk-esp8266']['optional'] = False
     if "buildfs" in targets:
         self.packages['tool-mkspiffs']['optional'] = False
     if "esp8266-rtos-sdk" in variables.get("pioframework", []):
         for p in self.packages:
             if p in ("tool-cmake", "tool-ninja"):
                 self.packages[p]["optional"] = False
             elif p in ("tool-mconf") and "windows" in get_systype():
                 self.packages[p]['optional'] = False
     return PlatformBase.configure_default_packages(
         self, variables, targets)
Beispiel #26
0
    def configure_default_packages(self, variables, targets):
        if not variables.get("board"):
            return PlatformBase.configure_default_packages(
                self, variables, targets)
        board = self.board_config(variables.get("board"))
        upload_protocol = variables.get("upload_protocol",
                                        board.get("upload.protocol", ""))
        disabled_pkgs = []
        upload_tool = "tool-openocd"
        if upload_protocol == "sam-ba":
            upload_tool = "tool-bossac"
        elif upload_protocol == "stk500v2":
            upload_tool = "tool-avrdude"
        elif upload_protocol == "jlink":
            upload_tool = "tool-jlink"

        if upload_tool:
            for name, opts in self.packages.items():
                if "type" not in opts or opts['type'] != "uploader":
                    continue
                if name != upload_tool:
                    disabled_pkgs.append(name)

        if "mbed" in variables.get("pioframework", []):
            self.packages["toolchain-gccarmnoneeabi"][
                'version'] = ">=1.60301.0,<1.80000.0"
        if "simba" in variables.get("pioframework", []):
            self.packages["toolchain-gccarmnoneeabi"][
                'version'] = ">=1.40803.0,<1.40805.0"
        if (board.get("build.core", "") == "adafruit"
                and "tool-bossac" in self.packages
                and board.get("build.mcu", "").startswith("samd51")):
            self.packages["tool-bossac"]['version'] = "~1.10900.0"

        for name in disabled_pkgs:
            del self.packages[name]
        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
    def configure_default_packages(self, variables, targets):
        if not variables.get("board"):
            return PlatformBase.configure_default_packages(
                self, variables, targets)
        board = self.board_config(variables.get("board"))
        upload_protocol = variables.get("upload_protocol",
                                        board.get("upload.protocol", ""))
        debug_tool = variables.get("debug_tool", None)

        if "arduino" in variables.get("pioframework", []):
            self.packages["framework-arduinoapollo3"]["optional"] = False
        elif "ambiqsdk-sfe" in variables.get("pioframework", []):
            self.packages["framework-ambiqsuitesdkapollo3-sfe"][
                "optional"] = False

        # If jlink is used, mark tool-jlink as non-optional
        if "jlink" in upload_protocol:
            self.packages["tool-jlink"]["optional"] = False
        if debug_tool is not None and "jlink" in debug_tool:
            self.packages["tool-jlink"]["optional"] = False

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
    def configure_default_packages(self, variables, targets):
        if not variables.get("board"):
            return PlatformBase.configure_default_packages(
                self, variables, targets)

        board_config = self.board_config(variables.get("board"))
        mcu = variables.get("board_build.mcu", board_config.get(
            "build.mcu", "esp32"))
        if "buildfs" in targets:
            self.packages['tool-mkspiffs']['optional'] = False
        if variables.get("upload_protocol"):
            self.packages['tool-openocd-esp32']['optional'] = False
        if isdir("ulp"):
            self.packages['toolchain-esp32ulp']['optional'] = False
        if "espidf" in variables.get("pioframework", []):
            for p in self.packages:
                if p in ("tool-cmake", "tool-ninja", "toolchain-%sulp" % mcu):
                    self.packages[p]["optional"] = False
                elif p in ("tool-mconf", "tool-idf") and "windows" in get_systype():
                    self.packages[p]['optional'] = False
            self.packages['toolchain-xtensa32']['version'] = "~2.80200.0"
        # ESP32-S2 toolchain is identical for both Arduino and ESP-IDF
        if mcu == "esp32s2":
            self.packages.pop("toolchain-xtensa32", None)
            self.packages['toolchain-xtensa32s2']['optional'] = False
            self.packages['tool-esptoolpy']['version'] = "~1.30000.0"

        build_core = variables.get(
            "board_build.core", board_config.get("build.core", "arduino")).lower()
        if build_core == "mbcwb":
            self.packages['framework-arduinoespressif32']['optional'] = True
            self.packages['framework-arduino-mbcwb']['optional'] = False
            self.packages['tool-mbctool']['type'] = "uploader"
            self.packages['tool-mbctool']['optional'] = False

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #29
0
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            del_toolchain = "toolchain-gccarmnoneeabi"
            if board_config.get("build.core") != "teensy":
                del_toolchain = "toolchain-atmelavr"
            if del_toolchain in self.packages:
                del self.packages[del_toolchain]

        if "mbed" in variables.get("pioframework", []):
            self.packages["toolchain-gccarmnoneeabi"][
                'version'] = ">=1.60301.0"

        return PlatformBase.configure_default_packages(
            self, variables, targets)
Beispiel #30
0
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            board = variables.get("board")
            upload_protocol = variables.get(
                "upload_protocol",
                self.board_config(variables.get("board")).get(
                    "upload.protocol", ""))
            if upload_protocol == "cmsis-dap":
                self.packages['tool-pyocd']['type'] = "uploader"

            if "mbed" in variables.get("pioframework", []):
                deprecated_boards_file = os.path.join(
                    self.get_dir(), "misc", "mbed_deprecated_boards.json")
                if os.path.isfile(deprecated_boards_file):
                    with open(deprecated_boards_file) as fp:
                        if board in json.load(fp):
                            self.packages["framework-mbed"][
                                "version"] = "~6.51504.0"
                self.packages["toolchain-gccarmnoneeabi"][
                    "version"] = "~1.90201.0"

        if "zephyr" in variables.get("pioframework", []):
            for p in self.packages:
                if p.startswith("framework-zephyr-") or p in ("tool-cmake",
                                                              "tool-dtc",
                                                              "tool-ninja"):
                    self.packages[p]["optional"] = False
            if "windows" not in get_systype():
                self.packages['tool-gperf']['optional'] = False

        # configure J-LINK tool
        jlink_conds = [
            "jlink" in variables.get(option, "")
            for option in ("upload_protocol", "debug_tool")
        ]
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            jlink_conds.extend([
                "jlink" in board_config.get(key, "")
                for key in ("debug.default_tools", "upload.protocol")
            ])
        jlink_pkgname = "tool-jlink"
        if not any(jlink_conds) and jlink_pkgname in self.packages:
            del self.packages[jlink_pkgname]

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
    def configure_default_packages(self, variables, targets):
        jlink_conds = [
            "jlink" in variables.get(option, "")
            for option in ("upload_protocol", "debug_tool")
        ]
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            jlink_conds.extend([
                "jlink" in board_config.get(key, "")
                for key in ("debug.default_tools", "upload.protocol")
            ])
        jlink_pkgname = "tool-jlink"
        if not any(jlink_conds) and jlink_pkgname in self.packages:
            del self.packages[jlink_pkgname]

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #32
0
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            board = variables.get("board")
            if "mbed" in variables.get("pioframework", []):
                deprecated_boards_file = os.path.join(
                    self.get_dir(), "misc", "mbed_deprecated_boards.json")
                if os.path.isfile(deprecated_boards_file):
                    with open(deprecated_boards_file) as fp:
                        if board in json.load(fp):
                            self.packages["framework-mbed"][
                                "version"] = "~6.51506.0"

            upload_protocol = variables.get(
                "upload_protocol",
                self.board_config(board).get("upload.protocol", ""))
            if upload_protocol == "cmsis-dap":
                self.packages["tool-pyocd"]["type"] = "uploader"

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #33
0
    def configure_default_packages(self, variables, targets):
        if "zephyr" in variables.get("pioframework", []):
            for p in self.packages:
                if p.startswith("framework-zephyr-") or p in ("tool-cmake",
                                                              "tool-dtc",
                                                              "tool-ninja"):
                    self.packages[p]["optional"] = False
            if "windows" not in get_systype():
                self.packages["tool-gperf"]["optional"] = False

        upload_protocol = variables.get(
            "upload_protocol",
            self.board_config(variables.get("board")).get(
                "upload.protocol", ""))

        if upload_protocol == "renode" and "debug" not in targets:
            self.packages["tool-renode"]["type"] = "uploader"

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #34
0
    def configure_default_packages(self, variables, targets):
        board = variables.get("board")
        frameworks = variables.get("pioframework", [])
        if "mbed" in frameworks:
            deprecated_boards_file = os.path.join(
                self.get_dir(), "misc", "mbed_deprecated_boards.json")
            if os.path.isfile(deprecated_boards_file):
                with open(deprecated_boards_file) as fp:
                    if board in json.load(fp):
                        self.packages["framework-mbed"]["version"] = "~6.51506.0"
            self.packages["toolchain-gccarmnoneeabi"]["version"] = "~1.90201.0"

        if "zephyr" in frameworks:
            for p in self.packages:
                if p in ("tool-cmake", "tool-dtc", "tool-ninja"):
                    self.packages[p]["optional"] = False
            if "windows" not in get_systype():
                self.packages["tool-gperf"]["optional"] = False

        return PlatformBase.configure_default_packages(self, variables, targets)
Beispiel #35
0
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            del_toolchain = "toolchain-gccarmnoneeabi"
            if board_config.get("build.core") != "teensy":
                del_toolchain = "toolchain-atmelavr"
            if del_toolchain in self.packages:
                del self.packages[del_toolchain]

        frameworks = variables.get("pioframework", [])
        if "mbed" in frameworks:
            self.packages["toolchain-gccarmnoneeabi"][
                "version"] = ">=1.60301.0,<1.80000.0"
        elif "zephyr" in frameworks:
            for p in self.packages:
                if p in ("tool-cmake", "tool-dtc", "tool-ninja"):
                    self.packages[p]["optional"] = False
            if "windows" not in get_systype():
                self.packages["tool-gperf"]["optional"] = False
            self.packages["toolchain-gccarmnoneeabi"]["version"] = "~1.80201.0"
        elif "arduino" in frameworks and board_config.get("build.core",
                                                          "") == "teensy4":
            self.packages["tool-teensy"]["optional"] = False

        # configure J-LINK tool
        jlink_conds = [
            "jlink" in variables.get(option, "")
            for option in ("upload_protocol", "debug_tool")
        ]
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            jlink_conds.extend([
                "jlink" in board_config.get(key, "")
                for key in ("debug.default_tools", "upload.protocol")
            ])
        jlink_pkgname = "tool-jlink"
        if not any(jlink_conds) and jlink_pkgname in self.packages:
            del self.packages[jlink_pkgname]

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #36
0
Datei: main.py Projekt: OS-Q/P443
    def configure_default_packages(self, variables, targets):
        board = variables.get("board")
        board_config = self.board_config(board)
        build_core = variables.get("board_build.core",
                                   board_config.get("build.core", "arduino"))

        frameworks = variables.get("pioframework", [])
        if "arduino" in frameworks:
            self.packages["toolchain-gccarmnoneeabi"]["version"] = "~1.90201.0"
            self.packages["framework-cmsis"]["version"] = "~2.50501.0"
            self.packages["framework-cmsis"]["optional"] = False

        if any(f in frameworks for f in ("cmsis", "stm32cube")):
            self.packages["tool-ldscripts-ststm32"]["optional"] = False

        default_protocol = board_config.get("upload.protocol") or ""
        if variables.get("upload_protocol", default_protocol) == "dfu":
            self.packages["tool-dfuutil"]["optional"] = False

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #37
0
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            disabled_tool = "tool-micronucleus"
            required_tool = ""

            if "digispark" in board_config.get("build.core", ""):
                disabled_tool = "tool-avrdude"

            if "fuses" in targets:
                required_tool = "tool-avrdude"

            if required_tool in self.packages:
                self.packages[required_tool]['optional'] = False

            if disabled_tool in self.packages and \
                    disabled_tool != required_tool:
                del self.packages[disabled_tool]

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #38
0
    def configure_default_packages(self, variables, targets):
        board = variables.get("board")
        build_core = variables.get(
            "board_build.core",
            self.board_config(variables.get("board")).get(
                "build.core", "arduino"))

        if "arduino" in variables.get("pioframework", []):
            # force older compiler; necessary for this arduino framework...
            #self.packages["toolchain-gccarmnoneeabi"]["version"] = "~1.40804.0"
            #self.packages["toolchain-gccarmnoneeabi"]["version"] = "~1.50401.0"
            #self.packages["toolchain-gccarmnoneeabi"]["version"] = "~1.70201.0"
            #self.packages["toolchain-gccarmnoneeabi"]["version"] = "~1.90201.0"
            self.packages["toolchain-gccarmnoneeabi"]["version"] = "~1.40903.0"
            self.frameworks['arduino']['package'] = "framework-arduino-w60x"
            self.packages['framework-arduino-w60x']['optional'] = False

        default_protocol = self.board_config(
            variables.get("board")).get("upload.protocol") or ""
        if variables.get("upload_protocol", default_protocol) == "dfu":
            self.packages["tool-dfuutil"]["optional"] = False

        # configure J-LINK tool
        jlink_conds = [
            "jlink" in variables.get(option, "")
            for option in ("upload_protocol", "debug_tool")
        ]
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            jlink_conds.extend([
                "jlink" in board_config.get(key, "")
                for key in ("debug.default_tools", "upload.protocol")
            ])
        jlink_pkgname = "tool-jlink"
        if not any(jlink_conds) and jlink_pkgname in self.packages:
            del self.packages[jlink_pkgname]

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #39
0
    def configure_default_packages(self, variables, targets):
        if variables.get("board"):
            upload_protocol = variables.get(
                "upload_protocol",
                self.board_config(variables.get("board")).get(
                    "upload.protocol", ""))
            if upload_protocol == "cmsis-dap":
                self.packages['tool-pyocd']['type'] = "uploader"

        frameworks = variables.get("pioframework", [])
        if "mbed" in frameworks:
            self.packages["toolchain-gccarmnoneeabi"]["version"] = "~1.90201.0"
        if "zephyr" in frameworks:
            for p in self.packages:
                if p.startswith("framework-zephyr-") or p in ("tool-cmake",
                                                              "tool-dtc",
                                                              "tool-ninja"):
                    self.packages[p]["optional"] = False
            if "windows" not in get_systype():
                self.packages["tool-gperf"]["optional"] = False

        # configure J-LINK tool
        jlink_conds = [
            "jlink" in variables.get(option, "")
            for option in ("upload_protocol", "debug_tool")
        ]
        if variables.get("board"):
            board_config = self.board_config(variables.get("board"))
            jlink_conds.extend([
                "jlink" in board_config.get(key, "")
                for key in ("debug.default_tools", "upload.protocol")
            ])
        jlink_pkgname = "tool-jlink"
        if not any(jlink_conds) and jlink_pkgname in self.packages:
            del self.packages[jlink_pkgname]

        return PlatformBase.configure_default_packages(self, variables,
                                                       targets)
Beispiel #40
0
 def on_run_err(self, line):  # pylint: disable=R0201
     # fix STDERR "flash written" for avrdude
     if "avrdude" in line:
         self.on_run_out(line)
     else:
         PlatformBase.on_run_err(self, line)
Beispiel #41
0
 def configure_default_packages(self, variables, targets):
     if "arduino" in variables.get("pioframework"):
         self.packages['toolchain-xtensa32']['version'] = "~2.50200.0"
     return PlatformBase.configure_default_packages(
         self, variables, targets)
Beispiel #42
0
 def configure_default_packages(self, variables, targets):
     return PlatformBase.configure_default_packages(
         self, variables, targets)