示例#1
0
    def generate_source(self, cfg: DriverConfig) -> None:
        # ---------------------------------------------------------
        # File header
        # ---------------------------------------------------------
        filename = "hld_{}_chimera.cpp".format(cfg.driver_name.lower())
        desc = "Implementation of Chimera {} driver hooks".format(
            cfg.driver_name.upper())
        header = FileDescription().format(filename=filename,
                                          description=desc,
                                          date=cfg.year,
                                          author=cfg.author,
                                          email=cfg.email)

        # ---------------------------------------------------------
        # Body
        # ---------------------------------------------------------
        body = self._get_source()
        body = body.format(driver_name_upper=cfg.driver_name.upper(),
                           driver_name_lower=cfg.driver_name.lower())

        # ---------------------------------------------------------
        # Write to file
        # ---------------------------------------------------------
        output = Path(cfg.output_dir, relative_output_path,
                      cfg.driver_name.lower(), filename)
        output.parent.mkdir(parents=True, exist_ok=True)
        with output.open('w') as f:
            f.write(header)
            f.write(body)
示例#2
0
    def generate(self, cfg: DriverConfig) -> None:
        # ---------------------------------------------------------
        # File header
        # ---------------------------------------------------------
        filename = "{}_detail.hpp".format(cfg.driver_name.lower())
        desc = "Includes the LLD specific headers for chip implementation details"
        header = FileDescription().format(filename=filename,
                                          description=desc,
                                          date=cfg.year,
                                          author=cfg.author,
                                          email=cfg.email)

        # ---------------------------------------------------------
        # Body
        # ---------------------------------------------------------
        body = self._get_header()
        body = body.format(driver_name_upper=cfg.driver_name.upper(),
                           driver_name_lower=cfg.driver_name.lower())

        # ---------------------------------------------------------
        # Write to file
        # ---------------------------------------------------------
        output = Path(cfg.output_dir, relative_output_path,
                      cfg.driver_name.lower(), filename)
        output.parent.mkdir(parents=True, exist_ok=True)
        with output.open('w') as f:
            f.write(header)
            f.write(body)
示例#3
0
    def generate_source(self, cfg: DriverConfig) -> None:
        # ---------------------------------------------------------
        # File header
        # ---------------------------------------------------------
        filename = "{}_intf.cpp".format(cfg.driver_name.lower())
        desc = "LLD interface functions that are processor independent"
        header = FileDescription().format(filename=filename,
                                          description=desc,
                                          date=cfg.year,
                                          author=cfg.author,
                                          email=cfg.email)

        # ---------------------------------------------------------
        # Body
        # ---------------------------------------------------------
        body = self._get_source()
        body = body.format(driver_name_upper=cfg.driver_name.upper(),
                           driver_name_lower=cfg.driver_name.lower())

        # ---------------------------------------------------------
        # Write to file
        # ---------------------------------------------------------
        output = Path(cfg.output_dir, relative_output_path,
                      cfg.driver_name.lower(), filename)
        output.parent.mkdir(parents=True, exist_ok=True)
        with output.open('w') as f:
            f.write(header)
            f.write(body)
示例#4
0
    def generate(self, cfg: DriverConfig) -> None:
        # ---------------------------------------------------------
        # File header
        # ---------------------------------------------------------
        filename = "{}_prv_data.hpp".format(cfg.driver_name.lower())
        desc = "Declaration of data that must be defined by the LLD implementation or is\n"\
               "*    shared among all possible drivers.".format(cfg.driver_name.upper())
        header = FileDescription().format(filename=filename,
                                          description=desc,
                                          date=cfg.year,
                                          author=cfg.author,
                                          email=cfg.email)

        # ---------------------------------------------------------
        # Body
        # ---------------------------------------------------------
        body = self._get_header()
        body = body.format(driver_name_upper=cfg.driver_name.upper(),
                           driver_name_lower=cfg.driver_name.lower())

        # ---------------------------------------------------------
        # Write to file
        # ---------------------------------------------------------
        output = Path(cfg.output_dir, relative_output_path,
                      cfg.driver_name.lower(), filename)
        output.parent.mkdir(parents=True, exist_ok=True)
        with output.open('w') as f:
            f.write(header)
            f.write(body)
示例#5
0
    def generate(self, cfg: DriverConfig):
        # ---------------------------------------------------------
        # File header
        # ---------------------------------------------------------
        filename = "{}_user.hpp".format(cfg.driver_name.lower())
        desc = "Implements an interface to create a Chimera {} peripheral".format(
            cfg.driver_name.upper())
        header = FileDescription().format(filename=filename,
                                          description=desc,
                                          date=cfg.year,
                                          author=cfg.author,
                                          email=cfg.email)

        # ---------------------------------------------------------
        # Body
        # ---------------------------------------------------------
        body = self._body_string()
        body = body.format(driver_name_upper=cfg.driver_name.upper(),
                           driver_name_lower=cfg.driver_name.lower())

        # ---------------------------------------------------------
        # Write to file
        # ---------------------------------------------------------
        output = Path(cfg.output_dir, relative_output_path,
                      cfg.driver_name.lower(), filename)
        output.parent.mkdir(parents=True, exist_ok=True)
        with output.open('w') as f:
            f.write(header)
            f.write(body)
示例#6
0
    def generate_device_header(self, cfg: DriverConfig) -> None:
        view = ChipNameView(cfg.target_device)

        # ---------------------------------------------------------
        # File header
        # ---------------------------------------------------------
        filename = "hw_{}_register_stm32{}.hpp".format(
            cfg.driver_name.lower(), view.abbreviated.lower())
        desc = "{} register definitions for the STM32{} series chips.".format(
            cfg.driver_name.upper(), view.abbreviated.upper())
        header = FileDescription().format(filename=filename,
                                          description=desc,
                                          date=cfg.year,
                                          author=cfg.author,
                                          email=cfg.email)

        # ---------------------------------------------------------
        # Body
        # ---------------------------------------------------------
        body = self._get_device_header()
        body = body.format(driver_name_upper=cfg.driver_name.upper(),
                           abbreviated_upper=view.abbreviated.upper())

        # ---------------------------------------------------------
        # Write to file
        # ---------------------------------------------------------
        output = Path(cfg.output_dir, relative_output_path(cfg),
                      cfg.driver_name.lower(), 'variant', filename)
        output.parent.mkdir(parents=True, exist_ok=True)
        with output.open('w') as f:
            f.write(header)
            f.write(body)
示例#7
0
    def generate_header(self, cfg: DriverConfig) -> None:
        # ---------------------------------------------------------
        # File header
        # ---------------------------------------------------------
        filename = "hw_{}_types.hpp".format(cfg.driver_name.lower())
        desc = "LLD types for the {} Peripheral".format(
            cfg.driver_name.upper())
        header = FileDescription().format(filename=filename,
                                          description=desc,
                                          date=cfg.year,
                                          author=cfg.author,
                                          email=cfg.email)

        # ---------------------------------------------------------
        # Body
        # ---------------------------------------------------------
        view = ChipNameView(cfg.target_device)
        body = self._get_header()
        body = body.format(driver_name_upper=cfg.driver_name.upper(),
                           driver_name_lower=cfg.driver_name.lower(),
                           family_lower=view.family.lower())

        # ---------------------------------------------------------
        # Write to file
        # ---------------------------------------------------------
        output = Path(cfg.output_dir, relative_output_path(cfg),
                      cfg.driver_name.lower(), filename)
        output.parent.mkdir(parents=True, exist_ok=True)
        with output.open('w') as f:
            f.write(header)
            f.write(body)
示例#8
0
    def generate_header(self, cfg: DriverConfig) -> None:
        # ---------------------------------------------------------
        # File header
        # ---------------------------------------------------------
        filename = "hw_{}_prj.hpp".format(cfg.driver_name.lower())
        desc = "Pulls in target specific definitions and resources used in the actual driver"
        header = FileDescription().format(filename=filename,
                                          description=desc,
                                          date=cfg.year,
                                          author=cfg.author,
                                          email=cfg.email)

        # ---------------------------------------------------------
        # Body
        # ---------------------------------------------------------
        view = ChipNameView(cfg.target_device)
        body = self._get_header()
        body = body.format(driver_name_upper=cfg.driver_name.upper(),
                           driver_name_lower=cfg.driver_name.lower(),
                           family_upper=view.family.upper(),
                           family_lower=view.family.lower(),
                           abbreviated_lower=view.abbreviated.lower(),
                           chip_upper=view.chip.upper())

        # ---------------------------------------------------------
        # Write to file
        # ---------------------------------------------------------
        output = Path(cfg.output_dir, relative_output_path(cfg),
                      cfg.driver_name.lower(), filename)
        output.parent.mkdir(parents=True, exist_ok=True)
        with output.open('w') as f:
            f.write(header)
            f.write(body)