RT-Threadrt 中怎么用$Sub$$main来扩展main函数
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章将为大家详细讲解有关RT-Threadrt 中怎么用$Sub$main来扩展main函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。现在的r
千家信息网最后更新 2025年12月02日RT-Threadrt 中怎么用$Sub$$main来扩展main函数
这篇文章将为大家详细讲解有关RT-Threadrt 中怎么用$Sub$main来扩展main函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
现在的rt thread是3.1.2版,先看一下rt thread是怎么用$Sub$$main来扩展main函数。
$Sub$$main函数的源码定义在\src\components.c里。
#if defined(__CC_ARM) || defined(__CLANG_ARM)extern int $Super$$main(void);/* re-define main function */int $Sub$$main(void){ rt_hw_interrupt_disable(); rtthread_startup(); return 0;}#elif defined(__ICCARM__)// for IAR...#elif defined(__GNUC__)extern int main(void);// for gcc..#endif有两个子函数:
1、rt_hw_interrupt_disable,关全局总中断,定义在汇编文件\libcpu\arm\cortex-m3\context_rvds.S里。
;/*; * rt_base_t rt_hw_interrupt_disable();; */rt_hw_interrupt_disable PROC EXPORT rt_hw_interrupt_disable MRS r0, PRIMASK CPSID I BX LR ENDP
就是__set_primask(1),关中断,只有FAULT和NMI中断可以响应。
2、rtthread_startup,启动rtt,也在\src\components.c里。
int rtthread_startup(void){ rt_hw_interrupt_disable(); /* board level initialization * NOTE: please initialize heap inside board initialization. */ rt_hw_board_init(); /* show RT-Thread version */ rt_show_version(); /* timer system initialization */ rt_system_timer_init(); /* scheduler system initialization */ rt_system_scheduler_init();#ifdef RT_USING_SIGNALS /* signal system initialization */ rt_system_signal_init();#endif /* create init_thread */ rt_application_init(); /* timer thread initialization */ rt_system_timer_thread_init(); /* idle thread initialization */ rt_thread_idle_init();#ifdef RT_USING_SMP rt_hw_spin_lock(&_cpus_lock);#endif /*RT_USING_SMP*/ /* start scheduler */ rt_system_scheduler_start(); /* never reach here */ return 0;}关于RT-Threadrt 中怎么用$Sub$main来扩展main函数就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
函数
内容
文章
更多
知识
篇文章
不错
两个
全局
只有
就是
文件
源码
质量
参考
帮助
有关
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
重庆云空间商业管理服务器
大学生网络安全宣传视频创意动画
服务器如何挂盘
大一新生计算机网络技术规划
java h2数据库加密
《网络安全法》的立法目标
网络安全与反诈
电子档案管理系统软件开发
河北省网络安全直播公开课
创建服务器多久自动登录
不能将网页上传到服务器的软件是
互联网飞速发展的时代与软件开发
服务器有必要装加速阵列卡吗
宁波艾盛网络技术有...
华为软件开发工程师月薪多少
广州奔程网络技术
安卓数据库插入一万条数据
1997年网络安全文件
2008数据库转2005
朋友圈发游戏需要租服务器吗
数据库的查询知识点汇总
一台服务器能接收多少客户
网络安全包含哪些文件
哪里可以找到美国人口普查数据库
jdbc选择数据库
mysql备份和还原数据库
阿里云服务器怎么管理网站吗
敏捷软件开发风险管理
上海个人软件开发优势
卸载uos数据库