James Blogs

根据RT-Thread文档说明,可以在BSP目录下运行scons -—dist 命令。该命令会在BSP目录下生成dist目录,该目录下包含了RT-Thread在内的当前BSP的依赖文件,可以拷贝到任意地方进行开发。

但是目前有一些BSP是不支持该功能的,下面由本文介绍一下如何让BSP支持dist功能。

一、代码分析

提供dist功能的是位于rt-thread/tools 目录的mkdist.py 脚本文件,在文件的MkDist 函数中调用了来自BSP的dist_handle 函数。然后会将rt-thread的components 等目录拷贝到BSP下的dist目录。

这个dist_handle 由板级支持包在rtconfig.py 中定义。在运行scons -—dist 命令时,building.py 内的EndBuilding 函数在rtconfig内寻找dist_handle 函数,并放入全局变量Env 中,点击查看

二、方案说明

所以BSP需要定义dist_handle 函数将BSP所需要用到的libraries 拷贝到dist目录。而一般BSP根目录下会有多个BSP,如nrf5x/nrf52832nrf5x/nrf52840 ,这些BSP又需要引用同样的libraries ,所以很多开发板的支持包会在BSP根目录下创建一个tools/sdk_dist.py 脚本文件用来实现文件拷贝,再在rtconfig.py 内调用tools下面的脚本。

三、操作示例

这里使用nrf5x/nrf52832 为例子介绍如何添加dist功能支持。

在nrf5x目录下创建toos/sdk_dist.py 文件: