找回密码
 立即注册
查看: 320|回复: 0

【PIO】如何将自己的库函数发布到pio

[复制链接]
  • TA的每日心情
    难过
    昨天 10:55
  • 签到天数: 131 天

    [LV.7]常住居民III

    20

    主题

    87

    回帖

    1168

    积分

    金牌会员

    积分
    1168
    发表于 2024-1-17 21:27:17 | 显示全部楼层 |阅读模式

    上一篇文章中通过一个短视频分享了如何使用已经注册到pio仓库中的库函数。这篇文章借助pio官方文档简单介绍下如何注册自己的库函数到pio。方便自己和大家使用;



    在介绍流程之前首先说明几个概念:


    • package:平台开发所使用的不同的工具,比如sdcc就是mcs-51这个平台使用到的package。再比如stcgal是mcs-51这个平台使用的烧录工具;而今天要介绍的Library也是package的一种。
    • Library:就是我们通常说的库函数。使用库函数能够提高我们的开发效率,它可以很好的屏蔽寄存器的底层实现逻辑,我们看到的往往是一个通过名称就能识别的功能;
    • 依赖:再pio的文档中关于Library的内容中多次提到依赖,又互联网服务端开发经验的同学应该知道有个叫maven的依赖管理工具。再嵌入式中所说的依赖也是类似的,比如我们再keil中添加头文件路径就是在配置keil在编译的过程中寻找头文件的的路径;所以这里所说的依赖就是工程中所使用到的各种源文件或者头文件;

    注册Library的步骤:


    1、新建存放库函数源码的文件夹结构:




    库函数结构.png



    注意其中





    .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的含义可以参考官方文档,这里以我的为例简单介绍几个:

    1. {
    2.   "name": "STC8G_H_LIB",
    3.   "version": "1.0.0",
    4.   "description": "A libriry for STC8X serial MCU",
    5.   "keywords": "mcs51, stc8",
    6.   "repository": {
    7.     "type": "git",
    8.     "url": "https://gitee.com/dchuizi/stc8-g-h-lib.git"
    9.   },
    10.   "authors": [
    11.     {
    12.       "name": "Leo Shi",
    13.       "email": "pj_shi@foxmail.com"
    14.     }
    15.   ],
    16.   "dependencies": {},
    17.   "frameworks": "*",
    18.   "platforms": "intel_mcs51",
    19.   "build": {
    20.     "srcDir": "src",
    21.     "includeDir": "include"
    22.   },
    23.   "headers":[
    24.     "gpio.h"
    25.   ],
    26.   "examples": [
    27.    
    28.   ]
    29. }
    复制代码

    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,来发布一下:

    截图202401172122371954.jpg


    关于library的使用还有很多内容,比如pio是如何发现这些library的。这些library的兼容性是如何控制的。都在官方文档,有兴趣可以深入研究一下。







    1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
    不争是争
    回复 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-16 17:37 , Processed in 0.059579 second(s), 32 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表