【Keil】构建MDK软件包
1 概览
软件包与软件组件
最初,创建一个包含简单 PDSC 文件的软件包,它只包含一个软件组件。该软件包随后被扩展,以显示用于描述软件组件的各种特性。
- 生成输入:创建将随包一起交付的文件。
- 组织文件:使用目录来分隔包的内容。
- 创建 PDSC 文件:可以使用任何文本编辑器创建基于 XML 的 PDSC 文件。根据模式文件验证 XML 代码的编辑器有助于在 Pack 开发阶段的早期发现bug。
- 创建 Pack :任何支持 ZIP 格式的压缩工具都可以用来创建 Pack 文件。packChk有助于验证Pack的内容。
2 源代码文件夹
-
在PC上创建一个工作目录,例如 D:\Pack_with_Software_Components\LongYorkePack。
-
转到 ARM::CMSIS Pack 安装中的
C:\Keil_v5\ARM\CMSIS\5.7.0\CMSIS\Pack\Tutorials 目录。有关 Pack 安装目录结构的更多信息,请参考您的开发工具文档。在标准的 µVision 安装中,你会发现它在 C: Keil_v5\ARM\Pack\ARM\CMSIS\version下面。
-
打开 Pack_with_Software_Components.zip 文件。
-
将 ZIP 文件的 01_Create_PDSC 目录的内容复制到工作目录中。
-
确保文件/目录不受写保护(删除只读标志)。
-
从目录 \CMSIS\Utilities 拷贝
- PACK.xsd
- PackChk.exe
到 ARM::CMSIS 包文件的工作目录 D:\Pack_with_Software_Components\LongYorkePack
假设我们写了一份超级厉害的点灯代码(狗头),然后想与别人分享此源代码,并且添加简单的版本控制管理这部分代码,故而可以制作一个软件包。
|-- LongYorkePack
|-- gen_pack.bat
|-- LongYorke.Leds.pdsc
|-- PACK.xsd
|-- package-lock.json
|-- PackChk.exe
|-- snippets.xml
|-- Files
|-- Docs
| |-- license.txt
| |-- README.md
|-- MySWComp
|-- header_led.h
|-- header_mylib.h
|-- led.c
|-- mylib.c
|-- config
|-- config_mylib.h
|-- Templates
|-- main.c
Docs
MySWComp
Templates
gen_pack.bat
我们要了解此脚本文件的一些内容
它将从名为 Files 的目录中查找文件
因此如果我们的脚本在根目录,则需要指明子目录让脚步寻找源代码
我们需要确定压缩软件在哪里
如果不是这个位置需要编辑为我们的压缩软件的真实位置
3 创建pdsc ( xml ) 文件
这是一个包装说明文件
<name>指定包的名称,不能包含空格。例子: LongYorke 和Long_Yorke 是可以的,Long Yorke 是不可行的。
<description>软件包的简要说明。可包含空格
<vendor>表示包的供应商名称,不能包含空格。
<url>定义了包的下载url(可以为空)
<supportContact>可以为包特定的问题提供电子邮件地址或网页URL
<license>链接到一个可选的许可文件,该文件将在安装Pack时显示。如果不接受许可协议,开发工具中的安装将中止。
进行组件描述,这些文件将会通过以下结构出现在RTE的选择菜单中
<Component>分出了Cclass Cgroup Csub
attr="config"属性会使得该文件可以进行修改(如果没有该属性,则工程中加入软件包时本文件无法修改,用于保护一些特殊文件)
attr="template"属性描述了main.c作为模板文件
version="1.0.0"提示了当前包版本
select=" “作为文件描述
4 命令行中使用 .bat 文件打包
取消只读
windows 系统文件: .bat 为多条命令方式
cmd 中输入 gen_pack.bat
压缩成功
会出现 .pack 文件
5 通过Pack Installed导入 Keil 工程
进入 Keil 的包安装
File==>Import
选择安装包
我们的许可协议将会出现,选择接收协议
软件包安装成功
6 创建一个新的项目
选好芯片
Manage Run-Time Environment
类→组→子集
回看3 创建 pdsc ( xml ) 文件内容进行对应
<Component> 分出了 Cclass Cgroup Csub
左侧 Project 中的 led.c mylib.c 文件有把小钥匙,代表无法修改
而 config_mylib.h 由于在 pdsc 文件中添加了 attr=“config” 属性,可以进行修改
使用模板
7 添加提醒
由于例子中引脚输出高低电平函数使用的是 HAL 库的管脚操作函数,如果不添加F4相关库软件包则编译失败
所以我们可以设置在 Manage Run-Time Environment 中的 Validation Output 中提醒并通过 Reasolve 按钮自动补加相关软件包
回到 pdsc 文件
修改 conditions 并给 component 添加 condition 属性指明 id
修改版本号
调用 gen_pack.bat 生成新版本
点击 Resolve 则 Keil 会自动在RTE添加相关软件包
软件包添加成功
- 点赞
- 收藏
- 关注作者
评论(0)