RT-Thread常见问题

本文详细解答了关于RT-Thread操作系统的一些常见问题,包括线程栈大小限制、rt_kprintf的工作原理、线程错误代码解析、启动时错误处理、线程删除与退出、动态与静态线程的区别、中断开启时机、系统时钟溢出处理、定时器超时判断、信号量、邮箱、互斥量和消息队列的中断使用以及RT-Thread对MMU的支持情况。通过这些问题,深入了解了RT-Thread的内部机制和使用注意事项。
摘要由CSDN通过智能技术生成
1. RT-Thread的线程栈最大能够设置成多大?
  • RT-Thread的线程栈最大仅支持64k - 4(因为线程块中的字段是rt_uint16_t类型,取整后最大是64k - 4字节)
2. rt_kprintf为什么是轮询方式,并且允许抢占?
  • rt_kprintf被设计为RT-Thread系统中的简单、直观log输出,包括能够在中断服务例程中使用。所以,这就要求:1. rt_kprintf不应该导致当前上下文被堵塞(中断服务不能被堵塞);2. 输出log后不应该再行产生中断(不应该使用中断方式的DMA);3. rt_kprintf运行过程中允许被中断,不抢占。综合以上因素,rt_kprintf必须是采用轮询、即时方式输出。如果有其他需求,用户应另行实现输出函数(保持输出数据一致性,输出信息对系统时序无干扰等)。
3. 创建了一个线程,然后在finsh中用list_thread(),结果这个线程的error总是-2,也就是-RT_ETIMEOUT,线程是个while循环,执行一段程序,然后rt_thread_delay(2)。程序运行没发现问题,可是 list_thread()总是显示错误呢?
  • 因为程序在执行r
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值