完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我最近在仿写rt-thread内核,在这个过程中对于它线程的处理有些疑惑
代码如下 #include #define DBG_TAG "main" #define DBG_LVL DBG_LOG #include static rt_uint8_t rt_thread_task1[IDLE_THREAD_STACK_SIZE]; void task_entry(void *parameter) { while(1) { LOG_D("Hello task1"); rt_thread_mdelay(1000); } } int main(void) { int count = 1; static struct rt_thread task1; rt_thread_init(&task1, "task1", task_entry, RT_NULL, &rt_thread_task1[0], sizeof(rt_thread_task1), 16, 32); rt_thread_startup(&task1); { LOG_D("Hello RT-Thread!"); rt_thread_mdelay(1000); } return RT_EOK; } 总所周知,main本身就是rt-thread创建的线程,我在这个线程中创建了一个新的线程并且启动,main函数中的内容就结束了,后续我在shell中通过list_thread指令发现没有main函数,rt-thread是如何在线程运行结束后识别到的呢?请各位大佬指教 |
|
相关推荐
1个回答
|
|
rt-thread 在初始化线程栈的时候,向 LR 寄存器写入了 _thread_exit 函数地址。所以当线程函数return的时候, 会执行 _thread_exit 的逻辑,完成线程的退出逻辑。
|
|
|
|
只有小组成员才能发言,加入小组>>
144个成员聚集在这个小组
加入小组【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
534 浏览 0 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
612 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
580 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
882 浏览 0 评论
【Vision Board创客营连载体验】RA8D1-Vision Board使用7寸屏设置为RGB666大端模式模式成功显示摄像头图案
767 浏览 0 评论
STM32F407ZGT6 spi flash片选引脚无法被拉低的原因?怎么解决?
822浏览 2评论
移植RT-THREAD在stm32开发板上,使用rt_kprintf不能正常打印的原因是什么?怎么解决?
253浏览 2评论
stm32f103zet用rtthread studio生成带finsh的项目程序,串口输入help没有反应是为什么?
268浏览 2评论
rtthread studio已经成功编写了外部flash下载算法,程序也能下载进去但是不能进行调试怎么办?
267浏览 2评论
rt-thread 4.1.1的pin的实际引脚编号和内核引脚编号的对应关系在哪个文件里面能找到?
280浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-6-24 20:11 , Processed in 0.406774 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191