ARM
mnstr
Keep Learning.
展开
-
multiple definition of `xxx': CMSIS库多重定义问题
现象使用arm-none-eabi-gcc编译CMSIS库时,包含了DSP模块。编译成功的.a静态库在链接到APP程序时,出现报错“ multiple definition of `xxx’ ”。原因目前的CMSIS代码版本DSP库中,Source下每一个子目录都包含了一个特殊的c文件,该文件"#include"了当前目录下其他所有的c文件。因此,这些c文件实际上被编译并链接了两次。解决...原创 2019-10-15 09:46:20 · 873 阅读 · 0 评论 -
CMSIS DSP静态库链接后可执行文件太大
现象在编译CMSIS静态库.a文件后,链接APP程序生成的可执行文件780+KB。查看flash map文件后发现,APP使用了DSP库中的函数,该函数调用了DSP库文件Commontables.c,该文件包含了一系列全局常量表,编译后所有的表都被链接在内。原因编译时,编译器会默认链接所有全局变量,导致占用极大的空间解决在编译该库和APP时,均添加编译选项如下:CFLAGS+= -f...原创 2019-10-15 09:26:18 · 1300 阅读 · 0 评论 -
xxx uses VFP register arguments xxx does not
原因该错误表明使用了不正确或不支持的VFP(virtual float point)浮点运算方式。1、不支持的VFP编译:MCU不支持VFP(hard)计算;2、不一致的VFP编译:链接的Lib中VFP计算和App中编译VFP计算选项不一致;解决方案1、检查编译选项CFLAGS的VFP的计算类型:FABI := hard //这里把hard改为softfpCFLAGS += -m...原创 2019-10-11 10:54:02 · 15440 阅读 · 0 评论