Keil软件包制作-(3)如何让自己的软件包自动适配工程内核以及生成软件包

236 阅读2分钟

本文已参与「新人创作礼」活动.一起开启掘金创作之路。

1 自动适配工程内核

为了使我们设计的软件包能够适配不同的内核,即在使用软件包时与用户ARM核不一致的文件都不出现,可以按如下步骤进行< files>的添加:(1)在condition条件中,加入< require Dvendor="ARM:82" Dname="ARMCM0"/>这样的程序,该程序表示需要用户选择ARM Cortex-M0内核才会触发该条件;(2)在添加< files>时,我们可以将针对不同内核,同一类型文件的Cgroup和Csub保持同样的名字,并添加上(1)中定义的condition,这样用户选择不同内核时,将只会出现与用户内核一致的文件。

同时,如果需要在PDSC文件中定义多个软件包,可以采用下列代码结构,其中每一个< bundle>标签定义了一个软件包。


<bundle Cbundle="MDK-ARM" Cclass="TencentOS tiny" Cversion="1.0.0">

<description>TencentOS tiny</description>

              <doc>examples/index.html</doc>   <!—添加网页功能 -->

              <component

                     <!-- 组件内容 -->

              </component>

       </bundle>

<bundle Cbundle="MDK-ARM" Cclass="TencentOS tiny" Cversion="1.0.0">

<description>TencentOS tiny</description>

<doc>examples/index.html</doc>

<component

                     <!-- 组件内容 -->

</component>

</bundle>

</components>

另外,PDSC文件还可以包含< devices>、< apis>、< boards>和< examples>,这些为ARM公司或者其他器件、开发板厂商提供,为针对器件、api库文件、板级和相应的示例文件,具体可以参阅ARM CMSIS的软件包。

最后,PDSC文件后还需要在最后加上< /package>,表示该文件的结束,从而完成PDSC文件的编写。

2 生成软件包

在完成PDSC文件的编写后,为了生成最终的软件包,还需要准备如图1.5所示的3个文件,其中PackChk.exe用于验证软件包包含的文件是否都存在,即是否完整;gen_pack.bat为Windows批处理文件,需要我们对文件中的路径进行修改,并用于生成软件包;PACK.xsd是schema,主要用来制定XML规范,用以验证我们编写的PDSC文件。另外,还需要准备7-Zip File Manager软件,用于对文件进行压缩,制作集成的软件包。

image.png

image.png

image.png

首先利用记事本或Notepad++打开gen_pack.bat,对以下几个地方需要修改,如表1-2所示:


SET RELEASE_PATH=[..\Local_Release]()

SET PACK_VENDOR=Tencent

SET PACK_NAME=TencentOS-tiny

SET PACK_FOLDER_LIST=arch osal kernel examples

SET PACK_FILE_LIST=%PACK_VENDOR%.%PACK_NAME%.pdsc README.md LICENSE.txt

image.png

修改完毕gen_pack.bat后,便可以制作软件包了,首先利用cmd打开电脑的命令行界面,执行cd命令转到gen_pack.bat所在的路径,然后输入gen_pack.bat点击enter,如图1.6所示,gen_pack.bat会按照顺序压缩文件,然后读取PDSC文件,检查数据完整性和文件依赖是否完整,然后生成软件包,当提示gen_pack.bat completed sucessfully后就完成了软件报的创建。

image.png

image.png

此时在Local_Release路径下,可以看到生成的软件包。

image.png