在用keil编译工程的时候突然报错,出现这个错误可能是存在以下两种问题: 问题一: 此项目添加了多个启动问文件,例如:startup_stm32f103x_hd.s、startup_stm32f103x_md.s、startup_stm32f103x_ld.s等,如果项目存在多个启动文件,应该只保留对应芯片容量的启动文件。 startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xx startup_stm32f10x_hd_vl.s 大容量的STM32F100xx startup_stm32f10x_ld.s 小容量的STM32F101xx,STM32F102xx,STM32F103xx startup_stm32f10x_ld_vl.s 小容量的STM32F100xx startup_stm32f10x_md.s 中容量的STM32F101xx,STM32F102xx,STM32F103xx startup_stm32f10x_md_vl.s 中容量的STM32F100xx startup_stm32f10x_xl.s 超大容量FLASH在512K到1024K字节的STM32F101xx,STM32F102xx,STM32F103xx 解决方法:根据上方的提示只保留对应的启动文件,删除多于的启动文件,重新编译即可。
问题二: 如果项目里只存在一个且与芯片对应的启动文件,那就是建立工程模板时勾选了相应的选项,如下图所示。 这就表明项目模板已经包含启动文件和库文件。 解决方法: 将下图两个文件移除,然后重新编译。 或者右键CMSIS和Device选择第一项(Options ···)单击CMSIS和Device再点击左下角Remove,重新编译即可。