RT-Thread中$Sub$$main与$Super$$main扩展main函数的示例分析
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,RT-Thread中$Sub$main与$Super$main扩展main函数的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。M
千家信息网最后更新 2026年11月03日RT-Thread中$Sub$$main与$Super$$main扩展main函数的示例分析
RT-Thread中$Sub$main与$Super$main扩展main函数的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
MDK5的__main函数是自动生成的,且无法修改源码。同时,MDK5提供了一对符号$Sub$$和$Super$$来扩展函数。这一对符号作用在连接器,当连接器连接到func时,如果发现存在$Sub$$func函数,会先连接$Sub$$func函数,一直到出现$Super$$func为止,$Super$$func是func函数的新的入口。
Keil官网给的例子:
extern void ExtraFunc(void); extern void $Super$$foo(void):/* this function is called instead of the original foo() */void $Sub$$foo(void){ ExtraFunc(); /* does some extra setup work */ $Super$$foo(); /* calls the original foo() function */ /* To avoid calling the original foo() function * omit the $Super$$foo(); function call. */}$Sub$$和$Super$$符号可以在不修改原程序的情况下添加新功能,rtt就使用了这对符号来扩展main函数。
做一个简单的例子来测试一下这种扩展:
int i = 0;void $Super$$main(void);void $Sub$$main(void){ i++; $Super$$main();}int main(void){ i++; while(1) { }}看反汇编(assembly mode),原来跳转到main函数变成了跳转到$Sub$$main函数:
__rt_entry_main:0x08000172 F000F867 BL.W $Sub$$main (0x08000244)0x08000176 F000F84F BL.W exit (0x08000218)
$Sub$$main函数:
$Sub$$main:0x08000244 B510 PUSH {r4,lr}0x08000246 4804 LDR r0,[pc,#16] ; @0x080002580x08000248 6800 LDR r0,[r0,#0x00]0x0800024A 1C40 ADDS r0,r0,#10x0800024C 4902 LDR r1,[pc,#8] ; @0x080002580x0800024E 6008 STR r0,[r1,#0x00]0x08000250 F000F8A8 BL.W main (0x080003A4)0x08000254 BD10 POP {r4,pc}0x08000256 0000 DCW 0x00000x08000258 0000 DCW 0x00000x0800025A 2000 DCW 0x2000这样做,可以保持启动代码不变,而同时实现对main函数的扩展。rtt的调度器就是这样做的。
看完上述内容,你们掌握RT-Thread中$Sub$main与$Super$main扩展main函数的示例分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
函数
符号
示例
分析
例子
内容
同时
方法
更多
连接器
问题
束手无策
为此
代码
作用
入口
原因
对此
就是
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网通讯科技
期待互联网科技
杭州互联网科技公司
天津摩尔互联网科技
美国互联网黑科技
新浪科技互联网
居家互联网科技有限公司
蓝色互联网科技
富国互联网科技创新基金
银川新华互联网科技学校地址
上海电发互联网科技有限公司
博兴的互联网电子科技公司
互联网科技中介
互联网科技寓意
上海宁丞科技互联网
互联网保险科技创业
互联网科技人工智能实验室
珠海东科互联网科技有限公司
世界互联网科技成果奖
上海旺乐尼互联网科技有限公司
南京欣网互联网络科技
亿人帮互联网科技有限公司
金融科技与互联网金融
猪兼强互联网科技
互联网科技扶贫时间
互联网科技和信息
华夏恒生科技与互联网科技
互联网金融科技名词解释
互联网营销推广黑科技
长沙易易互联网科技有限公司