上一篇文章中通过一个短视频分享了如何使用已经注册到pio仓库中的库函数。这篇文章借助pio官方文档简单介绍下如何注册自己的库函数到pio。方便自己和大家使用;
在介绍流程之前首先说明几个概念:
- package:平台开发所使用的不同的工具,比如sdcc就是mcs-51这个平台使用到的package。再比如stcgal是mcs-51这个平台使用的烧录工具;而今天要介绍的Library也是package的一种。
- Library:就是我们通常说的库函数。使用库函数能够提高我们的开发效率,它可以很好的屏蔽寄存器的底层实现逻辑,我们看到的往往是一个通过名称就能识别的功能;
- 依赖:再pio的文档中关于Library的内容中多次提到依赖,又互联网服务端开发经验的同学应该知道有个叫maven的依赖管理工具。再嵌入式中所说的依赖也是类似的,比如我们再keil中添加头文件路径就是在配置keil在编译的过程中寻找头文件的的路径;所以这里所说的依赖就是工程中所使用到的各种源文件或者头文件;
注册Library的步骤:
1、新建存放库函数源码的文件夹结构:
注意其中
.vscode :不需要,那是vscode自动生成的。
README.* :也不是必须的。
library.json :对Library的声明;
src:存放.c文件,是可以通过library.json来修改;
include:存放使用到的头文件,也是可以通过library.json来修改;
examples:存放示例文件。我第一次提交的时候收到pio团队发来的拒绝邮件,原因是library.json中配置了examples 但是这个文件夹下却没有内容;
仅需要这些内容就可以来注册自己的库函数到pio。 2、编写library.json 文件 library.json文件需要是标准json格式的,每一个key的含义可以参考官方文档,这里以我的为例简单介绍几个:
- {
- "name": "STC8G_H_LIB",
- "version": "1.0.0",
- "description": "A libriry for STC8X serial MCU",
- "keywords": "mcs51, stc8",
- "repository": {
- "type": "git",
- "url": "https://gitee.com/dchuizi/stc8-g-h-lib.git"
- },
- "authors": [
- {
- "name": "Leo Shi",
- "email": "pj_shi@foxmail.com"
- }
- ],
- "dependencies": {},
- "frameworks": "*",
- "platforms": "intel_mcs51",
- "build": {
- "srcDir": "src",
- "includeDir": "include"
- },
- "headers":[
- "gpio.h"
- ],
- "examples": [
-
- ]
- }
复制代码
name:library的名称,显示的名称; version: library的版本; description:库的描述; keywords:方便用户搜索的关键词; repositry:库存放的位置,我这里时git。 并且给出了git 仓库; platforms:可以支持的平台,我的是stc的库,所以支持intel_mcs51; srcDir:声明存放.c文件的目录,这里默认是src; includeDir:声明存放头文件的目录,默认是include; 3、发布 这里需要使用命令行在library.json 同目录下打开终端,使用pio pkg publish 命令来发布。命令会自动识别library中的版本号以及你的pio账号和库名称,需要注意的是名称和版本不能重复使用。比如我这里的版本是1.0.0 如果版本号不修改就发布不了; 正好我补充了blink的example,来发布一下:
关于library的使用还有很多内容,比如pio是如何发现这些library的。这些library的兼容性是如何控制的。都在官方文档,有兴趣可以深入研究一下。
|