*** Using Compiler '', folder: 'E:\Keil_v5\ARM\ARMCLANG\Bin' Build target 'Target 1' compiling core_cm3.c... *** Error: CreateProcess failed, Command: '"E:\Keil_v5\ARM\ARMCLANG\Bin\ArmCC" --via ".\objects\core_cm3.__i"' compiling system_stm32f10x.c... *** Error: CreateProcess failed, Command: '"E:\Keil_v5\ARM\ARMCLANG\Bin\ArmCC" --via ".\objects\system_stm32f10x.__i"' compiling misc.c... *** Error: CreateProcess failed, Command: '"E:\Keil_v5\ARM\ARMCLANG\Bin\ArmCC" --via ".\objects\misc.__i"' compiling stm32f10x_bkp.c... *** Error: CreateProcess failed, Command: '"E:\Keil_v5\ARM\ARMCLANG\Bin\ArmCC" --via ".\objects\stm32f10x_bkp.__i"' compiling stm32f10x_adc.c... *** Error: CreateProcess failed, Command: '"E:\Keil_v5\ARM\ARMCLANG\Bin\ArmCC" --via ".\objects\stm32f10x_adc.__i"' compiling stm32f10x_can.c... *** Error: CreateProcess failed, Command: '"E:\Keil_v5\ARM\ARMCLANG\Bin\ArmCC" --via ".\objects\stm32f10x_can.__i"' compiling stm32f10x_cec.c... *** Error: CreateProcess failed, Command: '"E:\Keil_v5\ARM\ARMCLANG\Bin\ArmCC" --via ".\objects\stm32f10x_cec.__i"' compiling stm32f10x_crc.c... *** Error: CreateProcess failed, Command: '"E:\Keil_v5\ARM\ARMCLANG\Bin\ArmCC" --via ".\objects\stm32f10x_crc.__i"' linking... .\Objects\test.axf: Error: L6967E: Entry point (0x08000000) points to a Thumb instruction but is not a valid Thumb code pointer. Finished: 0 information, 0 warning and 1 error messages. ".\Objects\test.axf" - 1 Error(s), 0 Warning(s). Target not created. Build Time Elapsed: 00:00:00
这个错误通常是因为编译器无法执行命令而导致的。这可能是由于编译器路径配置不正确或编译器文件损坏引起的。请尝试以下解决方法:
确保编译器的路径配置正确。检查你使用的Keil软件中的编译器路径设置,确保指向正确的ARMCLANG文件夹。
检查编译器文件是否完整且没有损坏。尝试重新安装或更新Keil软件,以确保编译器文件完整。
重新启动计算机并尝试重新编译项目。有时候重新启动可以解决临时的问题。
如果以上方法都无法解决问题,请提供更多关于你的环境和项目设置的信息,以便我能够更好地帮助你解决问题。
*** Using Compiler 'V5.06 update 5 (build 528)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' Build target 'Target 1' assembling startup_stm32f10x_md.s... compiling user.c... C:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.2.0\Device\Include\stm32f10x.h(483): error: #5: cannot open source input file "core_cm3.h": No such file or directory #include "core_cm3.h" user\user.c: 0 warnings, 1 error compiling core_cm3.c... compiling system_stm32f10x.c... ".\1.axf" - 1 Error(s), 0 Warning(s). Target not created. Build Time Elapsed: 00:00:00
这段代码是编译器编译 STM32F1xx 系列芯片的代码时出现了错误。错误信息显示找不到头文件 core_cm3.h。
这可能是由于编译器没有找到该头文件,或者该头文件没有正确安装。您可以尝试检查以下内容:
- 检查编译器是否正确安装,并且已经添加了正确的环境变量。
- 检查是否已经安装了 STM32F1xx 的支持包,并且版本是否正确。
- 检查在编译器中是否已经添加了正确的搜索路径,以便可以找到该头文件。
如果您已经确认以上问题都没有出现,那么您可以尝试使用其他版本的该头文件,或者从其他地方下载该头文件并将其添加到编译器的搜索路径中。
希望这些信息能够帮助您解决问题。
Build started: Project: Project *** Using Compiler '', folder: 'D:\k5\ARM\ARMCLANG\bin\' Build target 'STM32F4-Discovery' compiling stm32f4xx_hal_hcd.c... *** Error: CreateProcess failed, Command: '"D:\k5\ARM\ARMCLANG\bin\\ArmCC" --via "stm32f4-discovery\stm32f4xx_hal_hcd.__i"' compiling stm32f4xx_ll_sdmmc.c... *** Error: CreateProcess failed, Command: '"D:\k5\ARM\ARMCLANG\bin\\ArmCC" --via "stm32f4-discovery\stm32f4xx_ll_sdmmc.__i"' compiling stm32f4xx_hal_smartcard.c... *** Error: CreateProcess failed, Command: '"D:\k5\ARM\ARMCLANG\bin\\ArmCC" --via "stm32f4-discovery\stm32f4xx_hal_smartcard.__i"' compiling stm32f4xx_hal_dac.c... *** Error: CreateProcess failed, Command: '"D:\k5\ARM\ARMCLANG\bin\\ArmCC" --via "stm32f4-discovery\stm32f4xx_hal_dac.__i"' compiling stm32f4xx_hal_flash.c... *** Error: CreateProcess failed, Command: '"D:\k5\ARM\ARMCLANG\bin\\ArmCC" --via "stm32f4-discovery\stm32f4xx_hal_flash.__i"' compiling stm32f4xx_hal_tim.c... *** Error: CreateProcess failed, Command: '"D:\k5\ARM\ARMCLANG\bin\\ArmCC" --via "stm32f4-discovery\stm32f4xx_hal_tim.__i"' compiling stm32f4xx_hal_rtc_ex.c... *** Error: CreateProcess failed, Command: '"D:\k5\ARM\ARMCLANG\bin\\ArmCC" --via "stm32f4-discovery\stm32f4xx_hal_rtc_ex.__i"' compiling stm32f4xx_hal_can.c... *** Error: CreateProcess failed, Command: '"D:\k5\ARM\ARMCLANG\bin\\ArmCC" --via "stm32f4-discovery\stm32f4xx_hal_can.__i"' compiling stm32f4xx_hal_cryp_ex.c... *** Error: CreateProcess failed, Command: '"D:\k5\ARM\ARMCLANG\bin\\ArmCC" --via "stm32f4-discovery\stm32f4xx_hal_cryp_ex.__i"' compiling stm32f4xx_hal_cortex.c... *** Error: CreateProcess failed, Command: '"D:\k5\ARM\ARMCLANG\bin\\ArmCC" --via "stm32f4-discovery\stm32f4xx_hal_cortex.__i"' compiling stm32f4xx_hal_uart.c... *** Error: CreateProcess failed, Command: '"D:\k5\ARM\ARMCLANG\bin\\ArmCC" --via "stm32f4-discovery\stm32f4xx_hal_uart.__i"' compiling stm32f4xx_hal_dcmi.c... *** Error: CreateProcess failed, Command: '"D:\k5\ARM\ARMCLANG\bin\\ArmCC" --
首先,检查编译器路径是否正确。用户的项目可能配置了错误的ARMCC路径,尤其是在升级或更换了Keil版本后,路径中的版本号可能会有变化,比如从ARMCC换成ARMCLANG。需要确认Keil安装目录下是否存在正确的编译器路径,比如C:\Keil_v5\ARM\ARMCLANG\bin而不是ARMCC。
接下来,考虑权限问题。用户是否以管理员权限运行Keil?如果没有,可能需要右键以管理员身份启动。同时,检查输出目录的写入权限,有时候防病毒软件或系统设置会阻止程序生成文件,暂时关闭这些可能有助于排查。
然后,检查项目配置中的用户命令是否正确。在After Build步骤中,fromelf的命令行参数是否正确,特别是输出路径是否存在,是否包含非法字符或空格,需要用引号包裹路径。另外,检查Project.axf文件是否成功生成,如果编译未完成,这个文件可能不存在,导致fromelf失败。
还有可能是编译器组件损坏,比如fromelf.exe文件损坏。可以尝试重新安装ARM编译器工具链,或者修复Keil安装。另外,检查系统环境变量,确保没有冲突或错误的路径设置。
最后,考虑更新Keil和芯片支持包,确保所有组件都是最新版本,避免已知的兼容性问题。如果问题依然存在,查看Keil的构建日志,看是否有更详细的错误信息,或者尝试在命令行中手动执行fromelf命令,看是否能复现错误,从而进一步确定问题根源。
总结下来,解决步骤可能包括验证路径、检查权限、确认命令语法、确保文件存在、修复安装等。需要逐步排除这些可能性,找到具体原因后采取相应措施。### STM32F4 Discovery ARMCLANG编译器CreateProcess失败解决方案
1. 验证编译器路径有效性
- 检查Keil安装路径中的ARMCLANG编译器是否存在
- 默认路径应为:$C:\Keil_v5\ARM\ARMCLANG\bin$
- 确认路径中是否包含特殊字符(如空格或中文),建议使用纯英文路径[^1]
2. 配置用户权限
- 右键Keil选择"以管理员身份运行"
- 检查输出目录权限:
# 示例目录路径 ..\out\app-dw3000-v1.0.0.0.bin
- 临时关闭杀毒软件/防火墙(特别是实时文件保护功能)
3. 验证构建后命令
- 打开项目选项 → Output → After Build
- 确认fromelf命令格式:
# 正确格式示例 fromelf --bin -o "../out/app.bin" "./Objects/Project.axf"
- 使用双引号包裹含空格的路径参数
4. 检查工具链兼容性
- 确认使用的ARMCLANG版本支持STM32F4系列
- 更新步骤:
- Pack Installer → 检查CMSIS和Device Family Pack更新
- 升级到最新Keil MDK版本(建议v5.36+)
5. 修复工程配置
- 重新生成启动文件:
- 删除现有启动文件(startup_stm32f4xx.s)
- 通过CubeMX重新生成
- 清理并重建工程:
Project → Clean Targets Project → Rebuild All Targets
6. 替代解决方案
如果问题持续,可尝试:
- 手动生成bin文件:
fromelf --bin --output=Project.bin Objects/Project.axf
- 改用J-Link擦除芯片后重新烧录
- 创建新工程迁移源码
相关推荐














