Skip to main content

FMSH Project Generator

FMSH Project Generator is a project generation tool for FuDan Microelectronics general-purposed MCU families:

  • FM33LC0

  • FM33LG0(A)

  • FM33LE0(A)

  • FM33FR0

  • FM33FT0A

  • FM33FG0A

  • FM33LF0

  • FM33FK5

  • FM33FH0

  • FM33HT0A

  • FM33LR0

  • FM33LV0A

  • FM33LD5

  • FM33FC5

  • FM33LH0

  • FM33CT0A

  • upcoming MCUs…

FMSH Project Generator allows you to define a project using .YAML files. It can generate IDE project based on the .yaml record, and one should never spend a lot of time again migrating their projects among these IDEs. it also featured a ‘import project’ function, which allows user to generate their YAML project files more conveniently from presenting IDE projects.

This project is inspired by open-sourced project project_generator.

Installing

Install and update using pip:

$ pip install -U FMSHProjectGenerator

How to use

User should first create an instance of ProjectGenerator before using any of the functions:

from FMSHProjectGenerator import ProjectGenerator

proj_gen = ProjectGenerator()

Generate IDE Project

Following code example demonstrated how to use FMSHProjectGenerator and a project description file(*.yaml) to generate IDE project (Keil5 project for this example, wich will generated in ./my_project_path/MDK-ARM):

from FMSHProjectGenerator.generators import Keil5Generator, Keil5VersionType
from FMSHProjectGenerator import ProjectGenerator

# create an instance
proj_gen = ProjectGenerator()

# generate KEIL5 project using input YAML
proj_gen.generate(dest_prj_path='./my_project_path',
                   generator=Keil5Generator(),
                   generator_version=Keil5VersionType.V5,
                   input_desc='./my_project_path/project.yaml')

User can also generate IDE project using existing dict, which makes the FMSHProjectGenerator easier to work with other project. Just modify the input_desc param to the dict which describes your project:

proj_desc = {
   # Your project description here
}

proj_gen.generate(dest_prj_path='./my_project_path',
                   generator=Keil5Generator(),
                   generator_version=Keil5VersionType.V5,
                   input_desc=proj_desc)

the generate function can accepts keyword args depending on the generator you used. For example, Keil5Generator class accepts the combine arg to control whether it should combine existing project(which has the same name) into the generated project:

proj_gen.generate(dest_prj_path='./my_project_path',
                  generator=Keil5Generator(),
                  generator_version=Keil5VersionType.V5,
                  input_desc=proj_desc,
                  combine=True)

Import IDE Project

Following code example demonstrated how to use FMSHProjectGenerator to import IDE project (Keil5 project for this example, which will generated the project YAML file as ./my_project_path/project.yaml):

from FMSHProjectGenerator.converters import Keil5Converter
from FMSHProjectGenerator import ProjectGenerator

# create an instance
proj_gen = ProjectGenerator()

# convert KEIL5 project(will automatically search required project files)
proj_gen.convert(src_prj_path='./my_project_path',
                   converter=Keil5Converter(),
                   output_file='./my_project_path/project.yaml')

Noet that the convert function also return the generated project description in order to cooperate with other programs.

Import and Generate IDE Project

After import or generate an IDE project, ProjectGenerator will always retain the latest project information. So it’s easy to import from one IDE Project and generate other IDEs’ Project:

from FMSHProjectGenerator.converters import Keil5Converter
from FMSHProjectGenerator.generators import IARGenerator, IARVersionType
from FMSHProjectGenerator import ProjectGenerator

# create an instance
proj_gen = ProjectGenerator()

# convert KEIL5 project
proj_gen.convert(src_prj_path='./my_project_path',
                   converter=Keil5Converter())

# generate IAR 8.32 project using retained info
proj_gen.generate(dest_prj_path='./my_project_path',
                   generator=IARGenerator(),
                   generator_version=IARVersionType.V8_32)

User should notice that the ‘generate’ and ‘convert’ function can both omit the ‘input/output_file’ option, which tells the Project Generator to generate/import IDE Project using/updating retained project information only.

Command line usage

FMSH Project Generator also provides a command line tool to convert project(s):

Usage: fmshproject convert [OPTIONS] PROJECT_PATH {Keil5|IAR}
                          {Keil5|Keil5_27|Keil5_32|IAR7|IAR8_32}

Status of the project

The project is now in alpha phase.

Metadata

Release files for FMSHProjectGenerator 0.0.29

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for FMSHProjectGenerator 0.0.29
File Size Uploaded
fmshprojectgenerator-0.0.29.tar.gz 58.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for FMSHProjectGenerator 0.0.29
File Interpreter ABI Platform
fmshprojectgenerator-0.0.29-py3-none-any.whl Python 3 none any Details

Total release size: 165.1 kB

Release files / fmshprojectgenerator-0.0.29.tar.gz

Download URL fmshprojectgenerator-0.0.29.tar.gz
Size 58.3 kB
Tags Source
SHA-256 checksum
How to use checksums
ecf2acebfbf530da61cc224a3f8b0cd520d9fc9bb5acf54c17db14919e6a68a5
BLAKE2b-256 checksum
How to use checksums
b14f0f32eda8843ff791de6b0ac24269c4bce7ba27b5194db5595d797227e705
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Release files / fmshprojectgenerator-0.0.29-py3-none-any.whl

Download URL fmshprojectgenerator-0.0.29-py3-none-any.whl
Size 106.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
17a09a6e09aa7b6b4dbfc842e2df9bb189d84788f3e0bedd81f88a2760ba0660
BLAKE2b-256 checksum
How to use checksums
5cc5f0d3d7836ffcfebfb36c41df64c428303df893eb5414c10b0acf6233a814
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Release history Release notifications | RSS feed

This release

0.0.29 This release

2 release files

0.0.28

2 release files

0.0.27

2 release files

0.0.26

2 release files

0.0.25

2 release files

0.0.24

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.18

2 release files

0.0.16

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page