1、一个Software Pack里面包含以下内容:

.h头文件、.c源文件、PDSC文件、gen_pack脚本、PACK.xsd、PackChk、LICENSE、README.md




其中(1)需要修改的
.h头文件.c源文件是需要封装成库的文件
PDSC文件描述了库里面文件的依赖关系;
gen_pack脚本用于自动根据PDSC文件生成相应的软件库;
README.md采用MarkDown编辑,可用于描述Software Pack的使用方式等信息
(2)不用修改
PACK.xsdPackChk.exe是 MDK 安装的一部分,可用于验证生成的 PDSC 文件;
LICENSE是协议文件;

2、PDSC文件

以官方文档为例说明PDSC文件(XML格式)的各个部分,图在上,解释在下。

<?xml version="1.0" encoding="UTF-8"?>
<package schemaVersion="1.4.9" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="PACK.xsd"><vendor>vendor</vendor><name>name</name><description>库介绍</description><url>http://www.keil.com/pack/</url><license>LICENSE.txt</license><supportContact>***@qq.com</supportContact>

(1)XML 模式在 PACK.xsd 文件中定义,该文件是 MDK 安装 (C:\Keil\UV4) 的一部分。 它可以使用任何文本编辑器打开,并可用于验证您将要生成的 PDSC 文件。
(2)name 和 vendor标签定义了 Pack 的基础知识,也用于 PACK 文件的文件名。
(3)description应包含有关包本身和/或其内容的一些附加信息,它将显示在 Pack Installer 的 Pack 选项卡中。
(4) url标签可能包含一个带有包下载链接的 URL。
(5)license为协议文件
(6)supportContact位置坐着的联系方式


<releases><release version="1.0.1">20**/**/** ****20**/**/** ****</release></releases>

(1)需要指定带有 标记的 部分,因为 Pack Installer 将使用它来标识 Pack 的版本;
(2)实际上就是库的版本,每次添加内容后添加一下新的版本号,就会生成新的版本,会在生成库的文件夹替换掉老版本,但是Keil里面旧版本安装了就会都在。


<keywords><!-- keywords for indexing --><keyword>***</keyword></keywords>

(1)指出这个库的关键词,便于搜索;


<conditions> <condition id="condition_1"><description>condition description</description><accept Cclass="***" Cgroup="****"/><accept Cclass="***" Cgroup="****" Csub="*****"/></condition></conditions>

(1)这里是限定条件;


<components><component Cclass="*" Cgroup="**" Csub="tos_config" Cversion="1.0.1" condition="condition_1"><description>component description</description><RTE_Components_h> #define RTE_Drivers_PHY_MyPHY /* Driver PHY MyPHY */ </RTE_Components_h><files><file category="header" name="**\**\***.h"/><file category="header" name="**\**\***.h" attr="config"/><file category="source" name="**\***.c"/></files></component>
</components>


(1)这里是库包含的文件


</package>

(1)PDSC 文件以包的结束标记结束;


3、利用官方文档生成库(参考)

4、利用gen_pack.bat脚本生成库

步骤:

1、重命名PDSC文件为vendor.name.pdsc
2、在Notepad++打开批处理文件gen_pack.bat
3、修改gen_pack.bat的以下内容

4、打开cmd界面,定位到gen_pack.bat所在文件夹

然后点击enter,就会在Local_release文件夹生成库文件

说明:

(1)gen_pack.bat的作用:

检查PDSC文件的可用性、复制PDSC文件到文件目录、在文件目录运行PackChk.exe、在工作目录创建一个包文件。它会被称为Vendor.name.1.0.1.pack

参考学习链接:

[1]http://blog.sina.com.cn/s/blog_dc9571b90102vhqf.html
[2]https://www.cnblogs.com/libra13179/p/6273415.html
[3]https://www.bilibili.com/video/BV1AK411p7d9
[4]https://github.com/ARM-software/CMSIS-Driver
[5]keil CMSIS PACK制作中文手册,官方文档的翻译版,可以参考,不过还是看原文比较好
英文文档
链接:https://pan.baidu.com/s/1JZnIuywsDmsJm3-7vh9vpQ
提取码:1234

(6)Software Pack:生成MDK软件包(包内容介绍和PDSC文件介绍)相关推荐

  1. i.MX RT开发笔记-02 | i.MX RT1062开发环境搭建(MDK芯片包、NXP SDK详解)

    文章目录 一.Keil MDK 开发工具 1. 下载安装Keil-MDK 2. MDK芯片包 二.MCUXpresso SDK 1. 下载SDK 2. SDK内容 2.1. boards 2.2. C ...

  2. php动态生成apk渠道包,Android自动生成渠道包

    承接上文Android应用的自动化构建,我们已经通过ANT自动构建了应用,那接下来的问题是,如何自动构建渠道包,这里强烈推荐一篇文章美团Android自动化之旅-生成渠道包. 美团提到的第三种方式,截 ...

  3. 使用Cython库包对python的py文件(源码)进行加密,把python的.py文件生成.so文件并调用

    文章目录: 1 准备环境 2 调用`Cython库包`把python的`.py`文件生成`.so`文件 2.1 写源码文件 2.2 调用源码接口 2.3 调用Cython库把`.py`源码生成`.so ...

  4. 生成任意内容任意类型的文件

    任何类型都可以,内容也是,excel虽然也可以生成,但它会把所有内容都放到第一个,所以还是老实用一般方法吧. 这个有点麻烦,我们一步步来(可以先拉到最后看一眼配置文件会比较好理解) 第一个类:调用方法 ...

  5. ROS系统MoveIt玩转双臂机器人系列(二)--生成MoveIt配置包

    ROS系统MoveIt玩转双臂机器人系列(二)--生成MoveIt配置包 注:本篇博文全部源码下载地址为:Git Repo. 1. 下载到本地后解压到当前文件夹然后运行:catkin_make 编译. ...

  6. idea做一个日志自动生成的jar包,并用flume做生产者,采集日志数据,用kafka做消费者来消费日志数据

    前提:先将四台机器的zookeeper和kafka服务开启. 小任务:先准备好日志自动生成的jar包.并将其放入虚拟机master01中. 1.新建一个maven项目,命名为logmaker. pom ...

  7. 使用Java压缩文件生成各种zip包总结(整理为工具类版)

    最近由于客户来回修改需求,使得我对代码也是反复修改,最终折腾完毕后,让我总结了3种Java生成的zip包. 1.普通zip包,解压后的样子与打包压缩前一模一样,直接解压即可. 过程如下: 打包E盘下p ...

  8. figure字体 latex_Latex生成中文字体包(转)

    Mike的分享空间 Latex生成中文字体包(转) date: 2016.05.11; modification:2016.05.11 目录: (摘自: http://blog.sina.com.cn ...

  9. Spring Boot Freemark HTML 生成 PDF、生成水印Logo、docx文件生成PDF,Jar包运行可读取模板文件、字体文件

    用于通过模板生成PDF,在项目中生成个人授权协议函.个人电子保单.流水报表,数据报表等,将HTML静态模板写出来后,将数据替换成动态数据即可. <!-- html2pdf --> < ...

最新文章

  1. 跨域,json与jsonp格式
  2. 浅谈javaweb三大框架和MVC设计模式
  3. java 验证码 插件_javaweb中验证码插件Kaptcha的使用
  4. mysql binlog 大数据_后起之秀 | MySQL Binlog增量同步工具go-mysql-transfer实现详解
  5. mysql 子字符串函数_MySQL 内置字符串函数
  6. 接口测试客户端的搭建
  7. android computescroll_Android Scroller与computeScroll的调用机制关系
  8. 2018年内蒙古孕产妇、婴儿死亡率实现双下降
  9. (1)Matplotlib_xticks, yticks
  10. 少儿是先学计算机 还是学机器人,孩子学机器人好还是少儿编程好
  11. SCL语言(入门初级笔记)
  12. windows10桌面_windows10 美化桌面加强能力
  13. lotus notes 闪退_win10系统Lotus notes邮箱闪退的恢复办法
  14. PS 制作毛玻璃效果
  15. 脚本安装爱普生790K打印机安装完成之后销毁程序(其他版本打印机更换inf文件即可)
  16. ASEMI代理ADM202EARNZ-REEL原装ADI车规级ADM202EARNZ-REEL
  17. 冯建文《数字电路设计》读书笔记
  18. 让你流泪的不是毕业,而是无法再重走一次的青春
  19. 共阳极数码管三极管驱动
  20. Revit 二次开发参照属性

热门文章

  1. Windows系统如何清除开机密码
  2. 【CO101】计算机组成原理笔记2 —— MIPS指令转机器码
  3. 杂项 杂项 杂项 杂项 杂项
  4. UBuntu桌面美化记录
  5. JavaSE笔记(六)重制版
  6. location ~ .php$,nginx location指令详解,
  7. 《剑指offer》(第二版)题集目录索引
  8. mysql之 1044 - Access denied for user ‘justcall‘@‘%‘ to database ‘mysql‘
  9. 基于Fragment的插件化
  10. 银行系统3(功能又强大了哟 增加了些功能(例如改密码)还在优化中。)