关于系统初始化的流程问题

发表在 Kernel2019-11-19 16:12 [复制链接] 5 97

为了在进入 main() 之前完成 RT-Thread 系统功能初始化,我们使用了 MDK 的扩展功能 $Sub$$$Super$$。 ! M( y4 T3 V4 ^; i! f) t

6 T4 r8 {6 a- i- @7 k6 q
& V+ l& O. l0 E$ F6 k4 y但是我查看了 components.c 中定义的代码, $Sub$$main函数是灰色的,因为__CC_ARM 和 _CLANG_ARM 没有定义,keil设置中也没有定义,那么系统是如何初始化的?
; E& ~' N# [. [& X  i8 T3 J#if defined(__CC_ARM) || defined(__CLANG_ARM)
0 w8 A7 `1 r1 m8 q7 [extern int $Super$$main(void);
* W% h5 R/ N' V/* re-define main function */
: e& K) i: P  a0 Z& U$ d2 @9 }; A% Jint $Sub$$main(void)7 ]+ z! j% w# d4 o% J% X  l) W! w' @
{
9 f: I$ l/ \1 a    rtthread_startup();5 u, X/ r" V. k0 T. F" N$ M
    return 0;( y- H& C) P/ E( F% \
}
: J" p, e! k& o8 q, J2 c& }/ _5 P+ A8 a% X3 k& v

9 R1 @6 X( Y, u  D- @2 f% z& V6 {6 k5 ]# H4 J% ^
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-11-19 16:56:14 | 显示全部楼层
__CC_ARM _CLANG_ARM 是  ARMCC 工具链提前定义好的宏定义,MDK 应该识别不到。
使用道具 举报 回复
发表于 2019-11-19 18:15:56 | 显示全部楼层
可以呀
& k( f5 f% I0 l) Y9 X. E% Z/ S$ H
bb90130da6878cdb271102a092e0e0e.png
使用道具 举报 回复
发表于 2019-11-19 18:21:09 | 显示全部楼层
来一颗糖 发表于 2019-11-19 16:56
: m0 M0 E8 d- A/ C3 M9 e6 E__CC_ARM _CLANG_ARM 是  ARMCC 工具链提前定义好的宏定义,MDK 应该识别不到。
2 v+ p9 d# t  r2 q
那在哪个文件可查看么,谢谢
使用道具 举报 回复
发表于 2019-11-19 18:29:20 | 显示全部楼层
本帖最后由 yangjie 于 2019-11-19 18:30 编辑
9 x0 V8 k3 T8 \" E
青衫烟雨客 发表于 2019-11-19 18:21$ i7 b0 l+ D! ~
那在哪个文件可查看么,谢谢

: v/ L) N7 r: B9 y% G: y$ F编译器里定义的,在 官方手册 mdk_armcc_user_guide 中有说明2 ?9 T4 t6 ^7 V% }! e' Z0 \. t
/ W& ]9 Y% j$ ^2 r7 _" L1 I7 c5 I3 ?

6 w" Z/ f- S( v; F: A! O4 A
1574159218(1).jpg
使用道具 举报 回复
发表于 2019-11-19 19:51:01 | 显示全部楼层
yangjie 发表于 2019-11-19 18:29$ Q; X4 I; T5 {: I% a. ]
编译器里定义的,在 官方手册 mdk_armcc_user_guide 中有说明

' y# Y/ U5 z7 @5 d$ Z4 M; s明白了,谢谢,因为一开始我用VScode看的,所以搜不到这个定义, 在MDK里面看确实是有效的语句
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

快速回复 返回顶部 返回列表