You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

为Matrice400开发的DJI PSDK在uVision5中编译失败,无法切换至ARMCC编译器

针对GD32F527 + DJI PSDK + Keil uVision5编译器切换问题的解决方法
  • 彻底清理ARMCLANG关联配置

    • 按Alt+F7打开项目的Options for Target,切换到Target标签页,将Code Generation里的编译器手动指定为ARM Compiler 5.06 update 6 (build 750),不要选择带ARMCLANG的选项
    • 转到Build Output标签页,检查所有工具路径,确保汇编器、链接器等都指向ARMCC_750目录下的对应工具(armcc.exearmasm.exe等),而非ARMCLANG的路径
    • 找到项目根目录的.uvprojx文件,用文本编辑器搜索所有包含ARMCLANG的字段,直接删除或替换为ARMCC相关配置,保存后重新打开项目
  • 手动配置编译器环境变量

    • 将ARMCC_750的安装路径(比如C:\Keil_v5\ARM\ARMCC\5.06u6)添加到系统环境变量PATH的最前端,确保系统优先调用该版本的ARM工具链
    • 在Keil的Manage Project Items -> Folders/Extensions中,移除所有ARMCLANG相关的编译器条目,只保留ARMCC 5.06u6,然后重启Keil
  • 新建纯净GD32项目再迁移PSDK代码

    • 用GD32官方提供的Keil模板新建一个针对GD32F527ZMT7的空白项目,确保项目默认使用ARMCC编译器(如果模板自带ARMCLANG,按第一个方法修改配置)
    • 逐步迁移PSDK的代码文件、头文件路径、链接脚本到新项目中,不要直接复制原项目的配置文件,避免残留ARMCLANG的配置
  • 检查PSDK库的兼容性补丁

    • 由于PSDK官方只提供STM32的教程,针对GD32需要手动修改PSDK库中的部分编译选项:
      • 打开PSDK库的头文件或配置脚本,将所有针对STM32的编译器宏定义(如__STM32F4xx__)替换为GD32对应的宏(__GD32F527__
      • 检查PSDK库中的汇编文件,确保使用的是ARMCC兼容的汇编语法,而非ARMCLANG的语法
  • 强制指定工具链路径

    • Options for Target -> User标签页中,手动添加编译前的批处理命令:
      set PATH=C:\Keil_v5\ARM\ARMCC\5.06u6;%PATH%
      
    • 这样每次编译前都会强制让系统使用指定版本的ARMCC工具链,避免调用ARMCLANG

内容的提问来源于stack exchange,提问作者dansyw91

火山引擎 最新活动