You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MCUXpresso v11.9.1编译MQX4.2项目遇编译错误求助

解决MCUXpresso v11.9.1编译MQX 4.2项目的两个编译错误

错误1:comp.h中__asm语法冲突

错误详情:

c:\users\pc-281\desktop\myproject\gesap\cpuc\cpuc-arm\freescale_mqx_4_2\mqx\source\psp\cortex_m\compiler\gcc_cw\comp.h:43:32: error: expected identifier or '(' before '__asm'
43 | #define __set_BASEPRI(basePri) __asm volatile ("msr BASEPRI, %0" : : "r" (basePri))

解决步骤:

  • MCUXpresso采用标准GCC工具链,而原CodeWarrior适配的__asm关键字在标准GCC中需替换为__asm__。修改comp.h第43行的宏定义:
    #define __set_BASEPRI(basePri) __asm__ volatile ("msr BASEPRI, %0" : : "r" (basePri))
    
  • 同步检查同文件内其他使用__asm的代码,统一替换为__asm__以避免同类错误。

错误2:core_cm4.h中NVIC宏定义异常

错误详情:

C:\Users\PC-281\Desktop\myProject\GESAP\CpuC\CpuC-arm\armCpucApp\CMSIS/core_cm4.h:1557:46: error: expected ')' before '*' token
1557 | #define NVIC ((NVIC_Type ) NVIC_BASE ) /!< NVIC configuration struct */

解决步骤:

  1. 检查头文件包含顺序:确保对应芯片的CMSIS头文件(如MKxxxx.h,根据你使用的NXP型号)在core_cm4.h之前被包含,这类芯片头文件会自动定义NVIC_BASE和NVIC_Type结构体。
  2. 排查宏冲突:搜索项目中是否有MQX头文件或自定义代码重定义了NVIC或NVIC_BASE,如有则修改宏名称,或调整头文件包含优先级(优先加载芯片CMSIS头文件)。
  3. 手动补全定义(临时方案):若确认NVIC_BASE未被定义,可根据芯片手册添加定义(以NXP Cortex-M4芯片为例):
    #define NVIC_BASE (0xE000E100UL)
    

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 04:34:53