完善资料让更多小伙伴认识你,还能领取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 的逻辑,完成线程的退出逻辑。
|
|
|
|
只有小组成员才能发言,加入小组>>
157个成员聚集在这个小组
加入小组【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
907 浏览 0 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
1321 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
947 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
1214 浏览 0 评论
【Vision Board创客营连载体验】RA8D1-Vision Board使用7寸屏设置为RGB666大端模式模式成功显示摄像头图案
1220 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 14:22 , Processed in 0.478512 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号