我们知道,osal是基于event消息驱动的,timer也不类外,也是通过bitmask来存储event的,问题是现有的uint16类型bitmask最多只能存储16个event,也就是16个事件,业务比较复杂的情况下,显然不够用。
不知能否通过修改为uint32,这样就能同时存储32个事件bitmask了。
分析了OSAL的所有代码,发现如果修改,问题出在macEventLoop、nwk_event_loop这些非公开的函数代码,参数还是原来的uint16,不知如何破,大家有什么思路没有?
另外,查看osal_set_event函数的注释代码,也能发现该函数早期的参数event_flag类型还是uint8,只能存储8个event,看来后来还是做了修改。