Giter Club home page Giter Club logo

espm's Introduction

ESPM (Embedded System Package Manager)

version build build

Embedded System Package Manager(嵌入式系统包管理工具) 是一个用于嵌入式系统开发情况,对各种通用模块(软件包)进行管理的工具

ESPM支持软件包的添加,更新,删除,支持git和svn,支持对嵌入式系统的工程进行修改,添加,更新,删除对应的软件包(目前仅支持MDK)

功能说明

  • 软件源管理

    • 支持本地源,在线源
  • 软件包管理

    • 添加软件包
    • 更新软件包
    • 删除软件包
    • 支持Git和Svn
  • 工程修改

    • 添加软件包到工程
    • 更新工程内的软件包
    • 删除工程内的软件包
    • 支持Keil MDK5

使用

ESPM运行依赖于python3,请确保PC已经具备python3环境,同时,ESPM下载软件包会使用到Git或者Svn,需要视软件包来源安装Git或者Svn,并配置到环境变量

  • 获取ESPM

    git clone https://github.com/NevermindZZT/espm
  • 更新源

    从默认源地址更新源

    python espm.py -update

    指定源地址更新源(本地源文件或者网络地址)

    python espm.py -update -s https://raw.githubusercontent.com/NevermindZZT/espm/master/data/packages.json
  • 获取软件包

    python espm.py -i letter-shell
  • 删除软件包

    python espm.py -u letter-shell
  • 添加软件包到工程

    python espm.py -a letter-shell -p project.uvprojx
  • 删除工程内的软件包

    python espm.py -r letter-shell -p project.uvprojx
  • 更新工程内的软件包

    python espm.py -upgrade -p project.uvprojx
  • 列出已安装的工具包

    python espm.py -l

ESPM的源是一个json格式的文件,支持在线源和本地源,源内容如下:

{
    "version": "v0.0.1",
    "name": "espm packages",
    "packages": [
        {
            "name": "letter-shell",
            "url": "https://github.com/NevermindZZT/letter-shell",
            "type": "git",
            "src": [
                "src"
            ],
            "inc": [
                "src"
            ]
        }
    ],
    "sources": [
        "D:/espm/localpackages.json"
    ]
}

versionname字段皆为固定字段,不需要关注

packages是软件包列表,列表中每一项都表示一个软件包,其中字段表示信息如下:

字段 信息 备注
name 软件包名
url 软件包链接
type 软件包类型 "git"或者"svn"
src 软件包中源文件路径 目录或者文件
inc 软件包中头文件包含目录 目录

sources表示源列表,可以添加本地源或者在线源

软件包

ESPM软件包是一个通过git或者svn进行管理的项目,已有的项目可以不进行任何更改,只需要将项目添加到软件包源中,即可通过ESPM进行管理

当然,为了方便管理,建议在软件包根目录中添加espm.json文件,文件内容如下:

{
    "name": "letter-shell",
    "url": "https://github.com/NevermindZZT/letter-shell",
    "type": "git",
    "src": [
        "src"
    ],
    "inc": [
        "src"
    ],
    "version": "3.0.0"
}

espm.json中的内容同软件包源中的packages子项一致,只多了一个version字段,表示软件包的版本

添加软件包

你可以通过Pull Request,修改./data/packages.json,添加你的软件包到ESPM默认源

当然,你也可以自己新建一个软件包源文件,添加你的软件包,然后通过python espm.py -upate更新源,如果你想同时使用多个源,只需要在源文件的source中添加其他源的url即可

keil2Code

ESPM提供了一个工具,可以将keil工程配置到VS Code,通过VS Code调用keil进行编译调试,将VS Code作为keil的外部编辑器

  1. 安装arm gcc

    下载arm gcc安装并配置好环境变量,使用VS Code进行调试需要用到

  2. 配置环境

    配置keil安装路径

    python espm.py -c keilpath "D:/Program Files (x86)/keil"

    配置编译脚本路径(位于./scripts/keilbuild.py)

    python espm.py -c keilbuild E:/espm/scripts/keilbuild.py
  3. 导出keil工程到VS Code工作区

    可以选择以绝对路径方式或者相对路径方式导出工作区

    python keil2code.py -d E:/MDK_project/keilproject -p MDK-ARM/project.uvprojx

    其中,-d参数表示工程目录,-p参数表示keil工程文件遂于工程目录的相对路径

    或者使用相对路径方式

    cd E:/MDK_project/keilproject
    python keil2code.py -p MDK-ARM/project.uvprojx
  4. 打开工程

    打开工程目录下的VS Code工作区文件,根据插件推荐安装必要的插件

espm's People

Contributors

nevermindzzt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.