FMSH(Fudan Microelectronics) general-purpose MCU families IDE project generator.
Project description
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
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.
Status of the project
The project is now in alpha phase.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for FMSHProjectGenerator-0.0.21.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a44f1d5446d4753367531d78b9832b399f819e894cba14d88030f0ff52cf5c4 |
|
MD5 | dfc9d237522b8826c1e8a54f01a3b4b5 |
|
BLAKE2b-256 | 54e3664a1d856c720c9128601df12a1307f563ad611ae9d37db458ed95716c5d |
Hashes for FMSHProjectGenerator-0.0.21-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45d26f2f4abc23217331d152c00692e8ff8632402645fdc0073b1eb94fe1ea68 |
|
MD5 | 2911a57b31d668f5f97a68b330992d0c |
|
BLAKE2b-256 | 07caea52bcd4a52ec1c98e046c491da4cfe9c013d6e1854e53bb4e70e9dfc581 |