打印
[通用 MCU]

英飞凌芯片三种生成静态库文件的常用方法

[复制链接]
56|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-12-4 13:17 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
前言
本文思维大纲如下:



静态库文件基本功能
很多时候我们需要将某部分文件打包成静态库释放到第三方,无需对方看到源代码,比如需要将全部BSW文件打包成静态库释放到外部感知团队,此时我们就需要知道如何进行生成静态库,本文将以英飞凌芯片为例来介绍常用的三种不同编译器下生成静态库文件的方法。

静态库文件的通用生成过程如下:



Tasking编译器生成静态库方式
Tasking IDE实现具体步骤
S1:打开Tasking IDE环境,然后在左边栏中鼠标右键进行如下操作,创建新的Tricore C/C++工程:



S2:输入“Project Name” 并选择如下选项进行操作:



S3:选择对应芯片的型号:



S4:在创建的新工程位置中拉入需要进行编译成静态库的代码:



**S5: 鼠标右键点击“Properties” ,按照如下步骤将参与编译的头文件全部添加进去,建议将所有文件夹全部展开进行添加,以便防止漏添加。



S6:编译前取消任何优化手段以保证最大的兼容性;



S7:跟正常编译工程一样,鼠标右键点击“Build Project”即可






指令实现静态库方式
artc -rvn 目标.a a.o b.o, c.o


其中:

artc为 Tasking编译器的打包工具;
-r:将文件插入静态库中(如果文件已存在,则替换);
-v:启用详细模式,显示每个被处理的文件;
目标.a 为最终生成的目标静态库文件;
a.o, b.o, c.o 均为需要打包的.o文件;
如果想尽可能自动化来实现,可编写如下.bat脚本来实现:

LibPath="保存库文件的文件夹路径"
ObjsPath="需要打包.o文件的文件夹路径"

::在安装路径下输入cmd
cd /d D:\TASKING\TriCorev63r1\ctc\bin
cmd /k artc -cr "%LibPath%\LibFileName.a" "%ObjsPath%\*.o"

pause


ADS编译器生成静态库方式
1.ADS IDE实现具体步骤

S1:进入Aurix Development Studio界面之后,右键左侧进入如下图界面进行操作创建一个新的静态库工程:





S2:选择对应的芯片种类:



S3:将需要编译成静态库的源文件拖入到上述创建的新工程:



S4:点击工程然后右键选择“Build Project”, 进行编译便会得到最终的产物;



值得注意的是ADS不需要主动去添加头文件路径,会自动扫描头文件路径。

2. 指令实现静态库方式

由于ADS与Tasking编译器一样,本质上都是Tasking编译器,所以指令实现静态库方式可直接参考Tasking编译器生成静态库方式的第2节,在此不再赘述。

Hightec编译器实现方式
1.HighTec IDE实现具体步骤

S1:进入到Hightec编译器中,然后左侧右击**“New-> HighTec Project”**, 然后选择Project Type为“Library”, 便可以创建一个静态库的空工程。



S2:创建Project Name,选择对应的Project Type以及Toolchain:



S3:在创建的新工程中添加你需要生成静态库的源文件即可,同时需要添加对应的头文件路径:



S4:右键点击上述工程“Property”,进入到如下界面按如下操作添加头文件路径:



S5:完成上述操作后便可点击该工程右键“Build Project”, 便可最终生成静态库文件:



2. 指令实现静态库方式

如下图所示对于HighTec编译器中使用的生成静态库工具为tricore-ar工具,因此可同样仿照Tasking编译器的指令方式来实现



创建一个.bat文件然后执行即可:

LibPath="保存库文件的文件夹路径"
ObjsPath="需要打包.o文件的文件夹路径"

::在安装路径下输入cmd
cd /d E:\HighTec\toolchains\tricore\v4.9.3.0-infineon-1.0\bin
cmd /k tricore-ar -r "%LibPath%\LibFileName.a" "%ObjsPath%\*.o"

pause


“保存库文件的文件夹路径”
ObjsPath=“需要打包.o文件的文件夹路径”

::在安装路径下输入cmd
cd /d E:\HighTec\toolchains\tricore\v4.9.3.0-infineon-1.0\bin
cmd /k tricore-ar -r “%LibPath%\LibFileName.a” “%ObjsPath%*.o”
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/wto9109/article/details/144167441

使用特权

评论回复
沙发
suncat0504| | 2024-12-4 21:18 | 只看该作者
一步一步很详细,谢谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1981

主题

15794

帖子

12

粉丝