CodeWarrior IDE 使用 Tips-如何编译生成和调用静态库
原创 2017-09-22 胡恩伟 汽车电子 expert 成长之路
内容提要
引言
1. 嵌入式 MCU 应用程序开发中的库使用和使用用静态库的好处
2. 在 CodeWarrior 5.x 和 CodeWarrior 6.x IDE 中利用 Libmaker for S12/S08 编译生成和调用静态库
3. 在 CodeWarrior 2.10 IDE 中编译生成和调用静态库
4. 在 CodeWarrior 10.6/7 IDE 中编译生成和调用静态库
总结
引言
在嵌入式系统的 C 语言开发中,我们常使用到各种库(library),比如常见的 ANSI 标准库--其常包含对 ANSI C 语言环
境的初始化(全局变量初始化和堆栈初始化)以及对字符串、数学运算、浮点数计算等处理和实现的标准函数以及电机控
制库--包含基于汇编指令优化的三角函数、FIR/IIR 滤波器以及 Park、Clark 变换/逆变换和 SVM 等,这样的库是事先
使用相应的工具链编译好的目标文件(等同于.obj 文件)。
生成静态库的工程仅是对其包含文件进行编译,并将编译的目标文件整理和收集在一个最终的库文件中,不包含链接过
程,所以生成库的工程无需链接文件、启动文件,main()函数、中断向量表和 MCU 外设头文件,不会链接生成 elf 文
件和 NVM 编程文件,不可以直接下载调试,CodeWarrior IDE 中静态库文件后缀名一般为为.lib(如 CodeWarrior
5.x 和 CodeWarrior 6.x)或者.a(如 CodeWarrior 2.10 和 CodeWarrior 10.6/7 中 Qorivva MPC56xx MCU 的编
译结果)。
1. 嵌入式 MCU 应用程序开发中的库使用和使用用静态库的好处
默认的嵌入式 MCU 应用工程中,在其新建工程时就默认添加了针对目标 MCU 的 I 嵌入式 ANSI C 语言库(位于工具链
安装目录下),用于完成应用程序 ANSI C 语言环境的初始化(全局变量初始化和堆栈初始化)以及对字符串、数学运算、
浮点数计算等处理的标准函数的工具链 MCU 平台优化实现;