RT-Thread软件包定制开发流程

发布于:2024-11-03 ⋅ 阅读:(121) ⋅ 点赞:(0)

前言

RT-Thread支持软件包定制,可以很好的将软件模块的功能高效复用,移植性很强

1 已有应用

模块、应用的驱动自己搞定,能跑起来,之前移植过一个TFT LCD的驱动,时间仓促并没有把它的代码整理好

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2 packages仓库

仓库地址:https://github.com/RT-Thread/packages.git,软件包存放在peripherals目录下,先把原仓库fork下来,然后修改描述你这个软件包的配置文件

Kconfig

# Kconfig file for package gc9a01
menuconfig PKG_USING_GC9A01
    bool "gc9a01: OLEDs based on GC9A01, SH1106, SH1107 and SSD1309 driver"
    default n

if PKG_USING_GC9A01

    config PKG_GC9A01_PATH
        string
        default "/packages/peripherals/gc9a01"

    config PKG_USING_GC9A01_DEBUG
        bool "Enable debug log output"
        default n

    config PKG_USING_GC9A01_SPI_BUS_NAME
        string "SPI bus name"
        default "spi0"

    config PKG_USING_GC9A01_DC_PIN
        int "DC PIN for example : 3*32+1"
        default "97"

    config PKG_USING_GC9A01_RES_PIN
        int "RES PIN for example : 3*32+30"
        default "126"

    config PKG_USING_GC9A01_CS_PIN
        int "CS PIN for example : 1*32+3"
        default "35"

    config PKG_USING_GC9A01_SAMPLE
        bool "Enable gc9a01 sample"
        default n

    choice
        prompt "Version"
        default PKG_USING_GC9A01_LATEST_VERSION
        help
            Select the package version

        config PKG_USING_GC9A01_V100
            bool "v1.0.0"

        config PKG_USING_GC9A01_LATEST_VERSION
            bool "latest"
    endchoice

    config PKG_GC9A01_VER
       string
       default "v1.0.0"    if PKG_USING_GC9A01_V100
       default "latest"    if PKG_USING_GC9A01_LATEST_VERSION

endif

package.json

{
  "name": "gc9a01",
  "description": "gc9a01: RT-Thread package for working with OLED based on  SPI.",
  "description_zh": "基于gc9a01的 OLED 驱动,支持SPI",
  "enable": "PKG_USING_GC9A01",
  "keywords": [
    "gc9a01",
    "oled"
  ],
  "category": "peripherals",
  "author": {
    "name": "hywing",
    "email": "hywing@aliyum.com",
    "github": "hywing"
  },
  "license": "Apache-2.0",
  "repository": "https://github.com/hywing/tft-gc9a01",
  "icon": "unknown",
  "homepage": "https://github.com/hywing/tft-gc9a01",
  "doc": "unknown",
  "site": [
    {
      "version": "v1.0.0",
      "URL": "https://github.com/hywing/tft-gc9a01/archive/v1.0.0.zip",
      "filename": "gc9a01-1.0.0.zip"
    },
    {
      "version": "latest",
      "URL": "https://github.com/hywing/tft-gc9a01.git",
      "filename": "gc9a01-latest.zip",
      "VER_SHA": "main"
    }
  ]
}

顶层Kconfig

source "$PKGS_DIR/packages/peripherals/gc9a01/Kconfig"

注意

为了验证可行性,可以将以上代码文件放到env-windows工具的安装目录下:C:\env-windows\packages\packages\peripherals

在这里插入图片描述

3 开放你的GitHub仓库

软件包需要public权限,需要有READ文档、inc、src、examples等目录,代码要格式化

在这里插入图片描述

添加描述软件包的README.md文档,以下为参考格式

# rtt-gc9a01

RT-Thread package for working with TFT LCD based on  SPI inspired by [GC9A01](https://gitee.com/meta-mcu/gc9a01-tft)

## 1、介绍

GC9A01是一款1.28寸的圆形TFT显示屏模块,分辨率为240x240,支持三种颜色格式:RGB444、RGB565、RGB666

### 1.1 目录结构

| 名称     | 说明       |
| -------- | ---------- |
| examples | 例子目录   |
| inc      | 头文件目录 |
| src      | 源代码目录 |

### 1.2 许可证

gc9a01软件包遵循 MIT 许可,详见 `LICENSE` 文件

## 2、获取rtt-gc9a01 软件包

使用这个软件包的前提是你得有成功移植的RT-Thread spi驱动和数量足够的GPIO,请先用menuconfig工具使能spi驱动

```
Hardware Drivers Config --->
        On-chip Peripheral Drivers --->
                [*] Enable SPI
                [*]                Enable SPI0
```

使用 gc9a01 package 需要在 RT-Thread 的包管理器中选择它,具体路径如下

```
RT-Thread online packages --->
    peripheral libraries and drivers --->
        [*] gc9a01: TFT LCD based on GC9A01 IC driver  --->
```

GPIO及SPI接口设置

```
(spi0) SPI bus name
(97) DC PIN number for example in frdm-mcxa153 board P3_1 -> 3*32+1
(126) RES PIN number for example in frdm-mcxa153 board P3_30 -> 3*32+30
(35) CS PIN number for example in frdm-mcxa153 board P1_3 -> 1*32+3
[*] Enable gc9a01 example
    Version (latest)  --->
```

然后使用 `pkgs --update` 命令更新包到 BSP 中

```bash
pkgs --update
scons --target=mdk5
```

## 3、API 说明



## 4、联系方式

- 维护:hywing@aliyum.com
- 主页:<https://github.com/hywing/rtt-gc9a01.git>

## 5、说明

这个软件包在frdm-mcxa153开发板上面测试通过

4 功能验证

menuconfig

通过env工具来验证,打开menuconfig.exe

在这里插入图片描述

使能spi

在这里插入图片描述

使能GC9A01

在这里插入图片描述

导出Keil工程

使用CMD命令行拉取软件包并更新Keil工程配置文件

pkgs --update
scons --target=mdk5

最后打开Keil工程,可以看到spi驱动以及GC9A01软件包已经被添加进来了

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5 提交PR到packages仓库

这个是最后一步,通过之后你的模块就可以成为认证的软件包了,开源项目的GitHub操作流程可以参考文章


网站公告

今日签到

点亮在社区的每一天
去签到