
首先,什么是BSP呢?
BSP(Board Support Package)是板级支持包,是介于主板硬件层和应用代码层之间的一层,应该说是属于硬件驱动的一部分,主要目的是为了让MCU顺利启动,并使之能够更好的运行于硬件主板。
当我们创建一个RA的工程时,我们会在下图中选择所使用的电路板,所对应的就是BSP文件,其中包括了使用电路板上MCU的型号、时钟、引脚和外围功能等设置。

那么用户是否可以创建针对自己主板的BSP文件呢,答案当然是肯定的,请参考以下步骤。
01、使用“Custom User Board(Any Device)”创建项目并选择正确的设备(本例中为RA6M4)。

02、选择Flat->No RTOS->Bare Metal–Minimal作为项目配置。
在本例中,我们会以在BSP文件中加入一些LED的配置为例,所以可以选择裸机应用工程。如果需要建立与以太网等功能相关的工程,则需要选择建立一个基于RTOS的项目。请根据实际应用选择适合放入BSP文件的项目类型。



03、将board文件夹添加到ra/目录,并在其下方添加一个文件夹,该文件夹使用board的名称(全部小写,如本例中的ra6m4_iot):

04、点击生成工程内容,将文件ra_cfg/fsp_cfg/bsp/board_cfg.h复制到src/目录下。

然后在配置器的组件选项卡中,取消选中自定义板:

并再次重新生成项目内容。这将删除文件ra_cfg/fsp_cfg/bsp/board_cfg.h。(文件src/board_cfg.h仅用于测试板文件实际编译和工作,使用最终bsp时,工具会自动生成文件ra_cfg/fsp_cfg/bsp/board_cfg.h。)
05、将需要的BSP文件添加到对应的主板目录:

文件board.h应该包含板类型的定义:

06、在文件src/board_cfg.h中为board目录中的文件board.h添加#include:

07、构建项目,应该没有build errors,并且确认文件中的代码都参与编译:

08、现在需要配置引脚。在配置器的引脚选项卡中,有默认引脚配置:

09、点击“Manage configurations”:

10、重命名引脚配置以匹配板的名称:

单击“OK”以接受更改。在Pins选项卡中,编辑引脚配置以匹配它所对应的主板功能配置,例如P114引脚用于控制RA6M4_IOT板上的LED,就将其配置为GPIO输出模式:BSP中可以对多个引脚配置,请根据实际需要,添加更多引脚配置。

11、BSP选项卡中的设置,以及配置器的时钟选项卡也包含在BSP中,因此需要为目标板正确配置这些内容。
12、此时,构建和测试BSP以确保正确设置主板文件和引脚配置,只有当您对所有内容都满意时才继续实际创建BSP。
13、确保没有未保存更改的打开文件(源文件和配置文件Configuration.xml),保存并关闭所有打开的文件。
14、在项目资源管理器中右键单击项目,选择“Export FSP User Pack”,然后选择“Create a board pack”:

15、填写供应商和板名:

16、然后点击“下一步”。在下一个屏幕上,填写Sub-group和Board Name(这需要小写,以匹配板文件夹名称):

17、点击添加主板源文件:

18、单击“OK”,然后单击“Finish”创建BSP包文件,将显示如下消息:

19、紧接着是另一条消息(e2 studio检测到新的BSP包文件):

20、单击“OK”和“Yes”清除2条消息。
新的BSP包文件现已成功创建。要测试BSP,请创建一个新的FSP项目,该板的BSP应出现在可用板列表中:

21、可以确认一下,新建工程将使用板的引脚配置,并且使用BSP构建的项目应该可以无错误地编译。

至此,已经完成自定义BSP的所有步骤。
那么接下来,您可能要问,我创建好的BSP如何导出并应用于其他开发者的开发环境中(e2 studio下)呢?
首先,我们需要找到本机中所安装e2 studio的modules和packs文件夹所在位置。
菜单中点击“Help”–>“About e2 studio”–>“Installation Details”


可以看到如下对话框
点击“Support Folders”
并点击“e2 studio support area”右侧链接


在\internal\projectgen\ra\modules和\internal\projectgen\ra\packs文件夹下,可以看到刚刚创建好的BSP文件
“modules”文件夹下有两个.xml文件

“packs”文件夹下有一个.pack

按照同样的寻找位置的方法,将这个三个文件拷到其他电脑的相应位置,就可以正常使用这个BSP文件了。
来源:瑞萨MCU小百科
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。