ARM技术william hill官网
直播中

王敏

7年用户 1447经验值
私信 关注
[问答]

为啥FinSH需要__CC_ARM这个宏呢求解

我这几天正在尝试调试FinSH,结果一直调不好。板子开机就只是在uart上打印一个RT-thread启动logo,我自己在主函数里写的rt_kprintf 打印的信息也能看见,不过就是没法调好FinSH。
我看了一下 rtconfig.h 里面 RT_USING_FINSH 有没有定义,结果发现好像**CC_ARM 和 **CLANG_ARM 这两个宏都没有定义,直接导致RT_USING_FINSH 定义不了(见图)。

上网查了查,发现好像**CC_ARM 和 **CLANG_ARM 是Keil 的 ARM 编译器自动定义的宏?我用的是STM32CubeIDE(自带GCC编译器,不是ARM编译器)。为啥FinSH 需要__CC_ARM 这个宏呢?FinSH 只能由Keil 的ARM 编译,而不支持GCC吗?

多谢各位!

回帖(4)

风来吴山

2022-7-12 15:13:36
你看的这个代码是keil生成的,你看非keil的就行。
gcc/keil/iar都可以用的。
举报

梅利号

2022-7-12 15:13:53
看ENV的介绍,直接用menuconfig生成,别自己配
举报

剑寒九州

2022-7-12 15:14:04
遇到了相同问题,Keil版本是5.29,发现在project->option->target里面把编译器版本换成version 5能暂时解决这个问题。(默认是version 6。
举报

五斤麻辣油

2022-7-12 15:14:37
这个你需要根据自己的情况进行调整了(nano的版本,rtconfig.h应该不是自动生成的,需要自己根据自己的情况进行修改调整)。
CC_ARM是针对Keil的,GCC是GNUC__这个宏。或者你看看文档中,nano如何适配gcc的文档。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分