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