kiel5编译报错error: L6235E: More than one section matches selector - cannot all be FIRSTLAST.

it2023-03-17  88

原因是startup_xxx.s文件只能保留其中一种**

启动文件分别带有hd、md、ld和cl、vl、xl几种种字样。需要查看mcu的flash内存大小来选择。 cl:互联型产品,stm32f105/107系列 vl:超值型产品,stm32f100系列 xl:超高密度产品,stm32f101/103系列 ld:低密度产品,FLASH小于64K md:中等密度产品,FLASH=64 or 128 hd:高密度产品,FLASH大于128 PS:h代表high,高容量的意思; m代表middle,中等容量; l代表low,低容量

我使用的是STM32F1C8T6,64kb的flash,所有选择startup_xxx_md.s这个文件。


重新编译又报错 Undefined symbol SystemInit (referred from startup_stm32f10x_md.o).

这个是指startup_stm32f10x_md.o文件中的SystemInit符号没有定义。这个.o文件是由startup_stm32f10x_md.s文件生成的。 按照网上找的方法,把startup_stm32f10x_md.s文件中的这段注释掉。 然后再次编译,终于正常了。撒花~!!

参考博文:https://www.cnblogs.com/wellrun/archive/2011/03/21/1990074.html https://www.cnblogs.com/lovexz/p/7134531.html

最新回复(0)