最近玩了一下AC6,rt-thread要基本支持AC6的话,以cortex-m为例,应该要修改以下几个地方:
cpuports.c:
修改USE_FPU宏定义,改为:
if / ARMCC / ( (defined ( CC_ARM ) && defined ( TARGET_FPU_VFP ))
/* ARMCLANG / || (defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) && defined (__ARM_PCS_VFP))
/ IAR / || (defined ( ICCARM ) && defined ( ARMVFP ))
/ GNU */ || (defined ( GNUC ) && defined ( VFP_FP ) && !defined(SOFTFP)) )
define USE_FPU 1
else
define USE_FPU 0
endif
__rt_ffs部分增加:
elif defined (ARMCC_VERSION) && (ARMCC_VERSION >= 6010050)
int rt_ffs(int value)
{
return value == 0 ? value : builtin_clz(__builtin_arm_rbit(value)) + 1;
}
rtdef.h:
/ Compiler Related Definitions /
ifdef __CC_ARM / ARM Compiler /
改为:
if defined(CC_ARM) || (defined (ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))
rtlib.h和libc_signal.h里面也要修改,不过目前没用到,所以暂时没去动(主要是对AC6还不算了解,不知道这么简单的修改是不是全部都可以)。
至少编译是可以通过的。待进一步测试。
更多回帖