
如上图所示,作者将一个工程从AC5切换到AC6后,出现编译报错。
原因是在AC5环境下,部分源文件 #include "cmsis_armcc.h"头文件,此头文件是AC5编译器下使用的。
在AC6编译器环境下,需替换成 #include "cmsis_armclang.h"文件
同时宏 __CC_ARM __ARMCC_VERSION 分别是使用AC5和AC6编译器时,MDK定义的两个全局宏
#if defined(__ARMCC_VERSION)
#include "cmsis_armclang.h"
#elif defined(__ARMCC_VERSION)
#include "cmsis_armcc.h"
#endif
即可通过这两个宏控制头文件包含
在官方的BSP board.h 文件中也有对这两个宏的引用
#if defined(__CC_ARM) || defined(__ARMCC_VERSION)
extern int Image
RW_IRAM1
Limit;
#define HEAP_BEGIN ((void *)&Image
RW_IRAM1
Limit)
#elif ICCARM
#pragma section = "CSTACK"
#define HEAP_BEGIN (__segment_end("CSTACK"))
#else
extern int __bss_end;
#define HEAP_BEGIN ((void *)&__bss_end)
#endif
#define HEAP_END STM32_SRAM_END
补充:
使用scons —target=mdk5 创建MDK5工程 是基于 BSP目录下template工程建立的,在template工程中设置编译器版本为AC6


生成的MDK工程也会是AC6,但是有一个问题就是编译后进行debug,程序无法进入
#ifdef __ARMCC_VERSION
extern int Super$main(void);
/* re-define main function */
int Sub$main(void)
{
rtthread_startup();
return 0;
}
必须先手动改成AC5,然后再改回AC6,才行。
-
ARM技术
+关注
关注
0文章
22浏览量
7702 -
MDK5
+关注
关注
0文章
10浏览量
6114
发布评论请先 登录
Ubicom SX20AC/SX28AC通信控制器:功能特性与应用解析
Aimtec AMFE305150 AC EMC滤波器:助力AC - DC应用稳定运行
探索AMEL5-VZ AC - DC转换器:高效与可靠之选
深入解析AMEL5 - 277NZ AC - DC转换器:性能、特性与应用
SN74AC14NSR 具有施密特触发输入的 6 通道、2V 至 6V 反相器
5 GHz,802.11ac,支持 LAA 的前端模块 skyworksinc
nano版本使用AC6编译器下,不显示msh怎么解决?
rt_list_for_each_entry编译失败怎么解决?
CW32L011_PD Power 口袋电源活动
Texas Instruments SN74AC17/SN74AC17-Q1六路缓冲器数据手册
边缘设备AI部署:编译器如何实现轻量化与高性能?
5 GHz 802.11ac WLAN 前端模块 skyworksinc
5 GHz,802.11ac 前端模块 skyworksinc
5 GHz,802.11n/ac 前端模块 skyworksinc
关于MDK编译器AC5与AC6切换的问题
评论