LiteOS-软件定时器使用不规范,导致定时器无响应
软件定时器使用不规范,导致定时器无响应
原因:
使用LOS_SwtmrCreate创建定时器时,设置了入参定时器ID的初始值,而不管设置的ID号是否已经存在定时器,系统都会为新创建的定时器重新赋予一个合适ID。
后续如果通过设置的ID号使用该定时器,可能会出现两种情况:
- 该ID并没有对应的定时器,故无法通过该ID号使用定时器。
- 该ID存在相应的定时器,故通过该ID号使用的定时器并不是实际创建的定时器。
解决方案:
使用LOS_SwtmrCreate创建定时器时,不要指定定时器的ID,LiteOS系统会自动分配可以使用的ID号供定时器使用。
建议与总结:
在使用系统资源时,要明确使用方法,定时器、任务、信号量等都是通过系统提供的创建函数自行分配ID号,不要强占使用特定的ID号,否则会导致一些概率性问题。