CMSIS DSP静态库链接后可执行文件太大

2 篇文章 0 订阅

现象

在编译CMSIS静态库.a文件后,链接APP程序生成的可执行文件780+KB。
查看flash map文件后发现,APP使用了DSP库中的函数,该函数调用了DSP库文件Commontables.c,该文件包含了一系列全局常量表,编译后所有的表都被链接在内。

原因

编译时,编译器会默认链接所有全局变量,导致占用极大的空间

解决

编译该库和APP时,均添加编译选项如下:

CFLAGS+= -ffunction-sections -fdata-sections
LFLAGS+=-Wl,--gc-sections

该选项会为每个函数单独创建一个section,链接时会根据函数的调用只链接用到的常量表。编译后,可执行文件只有70+KB。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Qt中使用CMSIS-DSP库,可以通过以下步骤进行配置和集成: 1. 下载CMSIS-DSP库:从ARM官方网站上下载CMSIS-DSP库的压缩包,并解压到本地目录。 2. 创建Qt项目:在Qt Creator中创建一个新的Qt项目。 3. 将CMSIS-DSP库添加到项目中:将CMSIS-DSP库中的头文件(.h文件)和源文件(.c文件)添加到Qt项目中。可以在Qt Creator中的项目资源管理器中右键点击项目名称,选择"添加现有文件",并选择CMSIS-DSP库的头文件和源文件。 4. 在.pro文件中添加相关配置:在Qt项目的.pro文件中添加必要的配置,以链接CMSIS-DSP库。例如,可以使用类似以下的语句: ``` INCLUDEPATH += /path/to/cmsis_dsp_library LIBS += -L/path/to/cmsis_dsp_library -larm_cortexM4lf_math ``` 这里的 "/path/to/cmsis_dsp_library" 是CMSIS-DSP库的路径,根据实际情况进行替换。 5. 在Qt代码中使用CMSIS-DSP函数:在Qt项目的代码中,包括所需的头文件,并使用CMSIS-DSP库提供的函数进行信号处理、滤波、FFT等数字信号处理任务。 需要注意的是,CMSIS-DSP库是为ARM Cortex-M处理器优化的。在使用CMSIS-DSP库时,需要确保目标平台与库所针对的处理器兼容。 以上是使用CMSIS-DSP库的基本步骤,具体的集成过程可能会因项目和平台的不同而有所变化。建议参考CMSIS-DSP库的官方文档和Qt的相关文档,以便更详细地了解如何在Qt中使用CMSIS-DSP库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值