【Keil】构建MDK软件包

举报
LongYorke 发表于 2021/06/28 11:12:01 2021/06/28
【摘要】 1 概览软件包与软件组件最初,创建一个包含简单 PDSC 文件的软件包,它只包含一个软件组件。该软件包随后被扩展,以显示用于描述软件组件的各种特性。生成输入:创建将随包一起交付的文件。组织文件:使用目录来分隔包的内容。创建 PDSC 文件:可以使用任何文本编辑器创建基于 XML 的 PDSC 文件。根据模式文件验证 XML 代码的编辑器有助于在 Pack 开发阶段的早期发现bug。创建 P...

1 概览

软件包与软件组件

最初,创建一个包含简单 PDSC 文件的软件包,它只包含一个软件组件。该软件包随后被扩展,以显示用于描述软件组件的各种特性。

PackCreateSteps.png

  1. 生成输入:创建将随包一起交付的文件。
  2. 组织文件:使用目录来分隔包的内容。
  3. 创建 PDSC 文件:可以使用任何文本编辑器创建基于 XML 的 PDSC 文件。根据模式文件验证 XML 代码的编辑器有助于在 Pack 开发阶段的早期发现bug。
  4. 创建 Pack :任何支持 ZIP 格式的压缩工具都可以用来创建 Pack 文件。packChk有助于验证Pack的内容。

2 源代码文件夹

  1. 在PC上创建一个工作目录,例如 D:\Pack_with_Software_Components\LongYorkePack。

  2. 转到 ARM::CMSIS Pack 安装中的

    C:\Keil_v5\ARM\CMSIS\5.7.0\CMSIS\Pack\Tutorials 目录。有关 Pack 安装目录结构的更多信息,请参考您的开发工具文档。在标准的 µVision 安装中,你会发现它在 C: Keil_v5\ARM\Pack\ARM\CMSIS\version下面。

  3. 打开 Pack_with_Software_Components.zip 文件。

  4. 将 ZIP 文件的 01_Create_PDSC 目录的内容复制到工作目录中。

  5. 确保文件/目录不受写保护(删除只读标志)。

  6. 从目录 \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

image-20210627124109795

Docs

image-20210627161652015

MySWComp

image-20210627161748785

Templates

image-20210627165858491

gen_pack.bat

我们要了解此脚本文件的一些内容

它将从名为 Files 的目录中查找文件

因此如果我们的脚本在根目录,则需要指明子目录让脚步寻找源代码

image-20210627165446815

我们需要确定压缩软件在哪里

如果不是这个位置需要编辑为我们的压缩软件的真实位置

image-20210627165708350

3 创建pdsc ( xml ) 文件

这是一个包装说明文件

<name>指定包的名称,不能包含空格。例子: LongYorke 和Long_Yorke 是可以的,Long Yorke 是不可行的。

<description>软件包的简要说明。可包含空格

<vendor>表示包的供应商名称,不能包含空格。

<url>定义了包的下载url(可以为空)

<supportContact>可以为包特定的问题提供电子邮件地址或网页URL

<license>链接到一个可选的许可文件,该文件将在安装Pack时显示。如果不接受许可协议,开发工具中的安装将中止。

image-20210627212031743

进行组件描述,这些文件将会通过以下结构出现在RTE的选择菜单中

<Component>分出了Cclass Cgroup Csub

attr="config"属性会使得该文件可以进行修改(如果没有该属性,则工程中加入软件包时本文件无法修改,用于保护一些特殊文件)

attr="template"属性描述了main.c作为模板文件

version="1.0.0"提示了当前包版本

select=" “作为文件描述

image-20210627233603139

4 命令行中使用 .bat 文件打包

取消只读

image-20210627222550686

windows 系统文件: .bat 为多条命令方式

cmd 中输入 gen_pack.bat

image-20210627223513628

压缩成功

image-20210627223216542

会出现 .pack 文件

image-20210627223253056

5 通过Pack Installed导入 Keil 工程

进入 Keil 的包安装

image-20210627223930050

File==>Import

image-20210627224012480

选择安装包

image-20210627224136556

我们的许可协议将会出现,选择接收协议

image-20210627231618128

软件包安装成功

image-20210627231725676

6 创建一个新的项目

image-20210627232253801

选好芯片

image-20210627232616571

Manage Run-Time Environment

类→组→子集

回看3 创建 pdsc ( xml ) 文件内容进行对应

<Component> 分出了 Cclass Cgroup Csub

image-20210627232831586

左侧 Project 中的 led.c mylib.c 文件有把小钥匙,代表无法修改

而 config_mylib.h 由于在 pdsc 文件中添加了 attr=“config” 属性,可以进行修改

image-20210627234338315

使用模板

image-20210627234423817

7 添加提醒

由于例子中引脚输出高低电平函数使用的是 HAL 库的管脚操作函数,如果不添加F4相关库软件包则编译失败

所以我们可以设置在 Manage Run-Time Environment 中的 Validation Output 中提醒并通过 Reasolve 按钮自动补加相关软件包

回到 pdsc 文件

修改 conditions 并给 component 添加 condition 属性指明 id

image-20210628001431784

修改版本号

image-20210628000749444

调用 gen_pack.bat 生成新版本

image-20210628001227360

image-20210628001740476

点击 Resolve 则 Keil 会自动在RTE添加相关软件包

image-20210628001830349

软件包添加成功

image-20210628001911480

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。