questioner 发表于 2011-12-20 21:44:12

用rtt时如何得知系统是否已经启动?

在使用rtt时,写一个延时函数,在该延时函数中获取系统是否已经启动,如果已经启动并处以可以调用系统延时函数的状态,就调用系统的延时函数,否则就调用软件延时。该功能如何实现,用ucos时可以通过获取OSRunning、OSIntNesting、OSLockNesting的状态实现,rtt通过什么实现?

ffxz 发表于 2011-12-21 14:46:34

rt_thread_self() != RT_NULL

questioner 发表于 2011-12-21 23:54:57

回复【1楼】ffxz
-----------------------------------------------------------------------

奥,谢谢。提个建议:
将struct rt_thread* rt_current_thread 定义时进行初始化,即改为struct rt_thread* rt_current_thread = RT_NULL 要不可能会出现在调用 rt_system_scheduler_init() 之前调用rt_thread_self() 时可能会不等于RT_NULL,当然在程序一开始进行堆栈初始化时全部初始化为0,可能会没有问题。

aaa1982 发表于 2011-12-22 08:50:45

回复【2楼】questioner
-----------------------------------------------------------------------

不存在你说的这个问题,属于没赋值的全局变量(.bss),初始值肯定是0的。
页: [1]
查看完整版本: 用rtt时如何得知系统是否已经启动?