Pack介绍
在使用RA系列MCU的项目开发过程中,当需要添加某个外设的驱动时,首先想到的是在FSP中添加某个stack,然后进行配置。这里的stack,就是由各个pack生成并显示的。所以pack的功能就在于配置和显示各个外设驱动和一些中间件。这会大大减少开发过程中对寄存器的依赖。
e2 studio提供了非常自由且功能强大的pack制作工具给用户,用户可以定制化自己的pack,供别人或者自己使用。所以当你有需要模块化的某部分代码,可以考虑做成pack的形式,给您的客户或者自己使用。下面介绍pack的生成方法。
构建运行时的代码
本文介绍如何利用e2 studio生成自定义的pack,目标是允许将一组独立的源文件添加到e2 studio项目中,并以与Renesas FSP提供的模块类似的方式进行配置。
创建可配置模块的初始步骤是创建一个e2 studio应用程序项目,其中包括要分发的源代码,根据现有的FSP板级支持代码进行构建,并正确执行。对于新的Renesas FSP模块,必须遵循包括文件夹命名和层次结构在内的编码规范。对于第三方模块开发人员,源代码的布局和内容更加灵活,但仍然必须遵守某些原则。
要打包的源代码可以视为多个CMSIS组件。一个CMSIS组件表示一组源文件,这些文件将一起添加到项目中或从项目中删除。对于模块化的代码库,不是所有的源文件对于编译和有效执行代码都是必要的,因此,将代码库拆分成多个组件是有用的,这些组件可以完全独立地进行选取或遵从某些非循环依赖关系进行选取。每个组件都将包括:
1
一组C语言源代码文件
2
一组内部头文件(*.h),仅由上述C源代码文件包含,无需添加到应用程序范围的包含文件夹列表中
3
一组API头文件(*.h),可能会被工程中其他地方的源代码文件包含,需要将它们添加到应用程序范围的包含文件夹列表中
当考虑将多个component添加到一个项目中时,需要遵守以下规范:
1
所有代码必须放在项目的指定device系列的vendor文件夹下。如果“Vendor 1”提供的组件与瑞萨RA系列MCU一起使用,则所有源文件都将放在项目中RA/vendor1/的单个文件夹下的文件夹结构中。为了保持一致性,文件夹的名称应使用小写
2
在上面创建的单个文件夹下,文件夹和文件层次结构更加灵活,可以保留提供者自己的约定,但文件夹/文件不能包含空格。对于名为“component1”的组件,建议采用以下层次结构,将API头文件保存在单独的文件夹中:
(1)C源代码和内部头文件:
ra/vendor1/component1/src/
(2)API头文件:
ra/vendor/component1/inc/
在以这种方式添加源代码之后,项目的include路径应扩展为包括各种组件的API头文件夹,用于测试组件的测试代码应添加src/文件夹,然后应该确认项目的正确编译和执行。
创建CMSIS Pack步骤
首先,确保要生成pack的源代码可以被编译和正确执行。比如LVGL在生成pack前,需要对LVGL代码进行编译以及测试。如以下工程RA6M3_LVGL_Demos_Release,将所有有关源文件添加到工程,然后在hal_entry对其进行测试,代码烧录到板子并且运行正常。
测试完后即可按照步骤生成pack。点击菜单栏File→Export,显示如下弹出对话框后,选择“Renesas FSP User Pack”,并点击Next。
在对话框中选择Create a standard user pack,然后输入Vendor、Name和Version,这里输入的内容就是生成pack的名字。点Next。
点击右上角绿色“+”图标,创建一个新的component,然后对新的组件进行配置。
对new component进行一个配置,包含“Vendor”、”Class”、”Group”、“Sub-group”、“Variant”、”Version”。其中“Sub-group”和“Variant”为可选,可以不填。
点击OK后,将产生一个新的component——“This is a LVGL pack”,接下来就是把源文件添加到pack中,步骤如下:
1
点击选中新建的component。
2
选中后的component底色会变为灰色,点击右上角图标。
3
勾选需要添加的文件。
4
选好文件后点击<Add>,右边方框内会看到已添加好的文件,这时候还可以对各个文件进行属性的修改和移除。
按照上述步骤完成后,还需要添加头文件的包含路径,点击下方绿色“+”图标进行添加。
点击OK后,显示如下,此时勾选刚刚新建的component,直接点击Finish。
在安装目录下,可以找到刚才新建的 LVGL.GUI_test.4.3.0.pack
返回FSP Configuration视图,Components选项卡下,已经可以显示上面新建的pack。此时,可以直接勾选使用。
声明pack
上一章节中,已经生成了pack,但是e2 studio还不能直接对pack进行配置和使用。所以需要对pack进行一些声明和配置。可以从以下路径找到上述生成的pack:
C:\Users\xxxxxx\.eclipse\com.renesas.platform_1605949689\internal\projectgen\ra\packs
这个路径可以从e2 studio里面的help→Installation Details→Support Folders的e2 studio support area进去。用7z或者其他压缩软件打开pack,其中内容如下图所示。其中ra文件夹下,就是第二章里所添加的源代码,已经被打包在里面。Pack里面的xxx.pdsc文件为component的所有描述信息。
为了pack使用方便,需要给pack新建一个.module_descriptions的文件夹,然后在这个文件夹下面建一个AA##BB##CC##DD##EE##FF.xml文件。这个文件的名字必须与新建component时所填的内容一致,各个字段要对应,并且用“##”隔开。没有内容的字段,对应的文件名可以不填,如EE不填,名字为AA##BB##CC##DD####FF.xml。
最终pack的所有文件应该如下:
修改pack中的tooling_Support.xml文件,添加module descriptions路径的描述。最终内容如下:
至此,一个完整的pack已经创建好。
如果直接打开pack不能直接新建.module_descriptions和.xml文件,可以先解压pack,再新建文件夹和文件,最后再压缩成zip,后缀改成.pack即可。
如果已经忘记了新建的component的名字,可以打开pack中的xxx.pdsc文件,里面会有component的名字显示。
Pack生成后还有一个比较重要的事情,就是xml文件的编写。后续继续介绍xml文件是如何对代码产生影响的,以及一些使用注意事项。且看下回分解。
您可复制下方网址到浏览器中打开进入瑞萨中文论坛查看:
https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/
未完待续
推荐阅读
RA6快速设计指南系列文章合集
基于RA6M3的ThreadX+GUIX HMI教程
资料分享 | DShanMCU-RA6M5开发板学习资料