大家好! 我在阅读RT-Thread操作系统源代码时,有个疑问就是什么时候使能操作系统心跳中断,我记得ucos操作系统需要在第一个运行的任务中启动操作系统心跳定时器的中断,这样才能确保操作系统调度正常运行。而我在RT-Thread操作系统中没有发现这样的处理方式,如果在操作系统的初始化函数初始化之前使能时钟定时器,那么在中断产生的时候rt_current_thread变量可能还没有设置有效值,rt_current_thread会是一个指向地址0的指针。只是rt_tick_increase函数忽略了rt_current_thread=0x0时的情况。这样感觉程序运行起来就会有点瑕疵了,我查了半天的源代码发现好像有很多的移植工程都是过早的使能了定时器中断,不知道我的理解对不对,或者有什么地方遗漏了?
更多回帖