JNH官网

【ARM】MDK-生成、调用LIB库文件

1、 文档目标

本指南系统阐述Keil MDK开发环境中静态库(.lib)的构建方法与工程集成策略,旨在为嵌入式系统开发者提供标准化操作流程。通过源码封装技术实现核心技术的知识产权保护,同时确保工程编译效率与代码兼容性,为技术交付与协作开发提供可靠方案。


2、 问题场景

针对客户反馈的静态库开发痛点:

● 新人工程师对静态库构建流程不熟悉

● 现有开发流程存在冗余操作

● 需要实现核心代码的加密保护而不影响工程部署

本方案通过模块化构建与集成策略,提供可复用的开发范式,显著提升开发效率与技术资产安全性。


3、软硬件环境

1)、软件版本:MDK5.39

2)、电脑环境:Windows 11

3)、外设硬件:无


4、解决方法

1)、打开JNH官网准备好的示例工程,本次采用【正点原子】阿波罗V2 STM32F767开发板-程序源码-标准寄存器版本-实验63 UCOSII实验1-任务调度示例。

a. 如下图,将无需打包的文件夹设置不参加编译。首先选中文件夹点击鼠标右键,选择<Options for Group Start up“..>

图4-1-1


b. 点击一次<Include in Taget Build>,使其不被选中,点击”OK“保存,即文件夹中文件不会参加编译。重复该操作,将其他文件夹同步设置。

图4-1-2


c. 点击”魔法棒“快捷键,选择"Output",选择Create Library "....Outputatk_f767",点击"OK"保存。

图4-1-3


d. 点击编译,可以看到lib文件被输出至Output文件夹。

图4-1-4


2)、LIB文件配置参加编译

a. 将不参加编译的工程文件夹恢复至参加编译,将生成lib文件的delay.c 、sys.c和usart.c取消编译,与上述操作一致。

图4-2-1


b. 将lib文件放置在工程文件夹内,如下图所示,打开工程管理界面


图4-2-2


c. 选择Project Items界面,点击”Add Files...“,找到存放lib文件的文件夹,修改文件类型,选中该文件,点击Add即可,再点击OK保存即可。


图4-2-3


d. 同步将输出类型修改为Create Executable:....,点击”OK“保存。


图4-2-4

e. 点击编译快捷键,成功编译。

图4-2-5

5、典型应用场景

1. 分层开发模式

○ 硬件驱动层↔业务逻辑层↔应用层的三阶解耦

○ 通过静态库实现驱动层的标准化交付

○ 第三方模块集成

○ 快速接入成熟算法库(如FreeRTOS、TLS协议栈)

○ 通过版本号管理实现兼容性维护

○ 技术交付与外包协作

○ 向客户交付功能模块时仅提供必要接口与库文件

○ 通过API文档实现开发团队的无缝协作


6、技术优势与价值

本方案通过以下维度提升开发效能:

1. 模块化开发:实现功能模块的独立开发与迭代,降低耦合度

2. 知识产权保护:源码级封装确保核心技术不外泄,符合GDPR与商业保密协议要求

3. 效率提升:库文件预编译特性减少重复编译时间(经测试可缩短30%编译周期)

4. 可维护性增强:通过标准化接口设计,降低跨团队协作冲突


jnh官网 jnh官网 jnh官网 jnh官网 金年会 金年会 金年会 金年会