Part Number:CC1310Other Parts Discussed in Thread:WMBUS
我使用wmbus_cc13x0_rtos_2_0_0+simplelink_cc13x0_sdk_2_20_00_38开发,做一个T1C1模式的设备,我设置的wmbus是120S发一次数据,但是有概率发着发着他就停止了。我挂机了一些设备,出现了3台异常设备。通过debug running后发现正常设备和异常设备的定时器参数不同。
3台异常设备的定时器参数:
正常设备的定时器参数:
通过监控,看到异常设备的定时器f4 active标志已经清0了,不再工作了,而且timeout参数都是300,这个gl_rtcTimeout值也是3。这让我感到十分疑惑。
Alex Zhang:
您好,我已经联系工程师跟进您这边的问题,这需要一些时间,谢谢
,
Alex Zhang:
您好,对此软件的支持请求应发送至 Stackforce。请联系他们并提出您的要求。
stackforce.com/…/contact
,
o.O?:
,
Alex Zhang:
您好,我已经反映了这个问题,这需要一些时间谢谢。
,
Alex Zhang:
以下是反馈:
我已通读该消息。很奇怪的是,您有一些设备正在工作(“正常设备”)和不工作(“异常设备”)。
我相信您在所有设备上运行相同的代码库?
1. 因此,我首先建议检查每个设备的硬件设置。也许设备之间的关闭引脚处于不同的状态?该引脚可以使设备进入睡眠/关闭模式,从而影响设备运行时间。
如果关闭引脚不是问题的原因,我认为监视 RTC 实现可能无法验证设备是否停止工作。除非您有更多信息相信 RTC 是原因。
2. 能否检查一下 main函数启动的“堆栈任务”是否还在运行?
,
o.O?:
running debug显示一切正常。我这边发现,单独测试wmbus的例程,是没问题的。但是我再新建一个任务(优先级比wmbus任务低),加了一些模拟串口debug就出问题了,我的模拟串口debug里面会调用HwiP_disable。感觉是频繁开关中断会影响wmbus的任务运行逻辑?
,
Alex Zhang:
您好,很高兴能够收到您的回复,我已经联系了工程师在跟进您的消息,得到回复我会立即联系您这边,谢谢。
,
Alex Zhang:
如果优先级低于WMBUS任务,调度器会在需要时将CPU交给WMBUS任务。所以这应该没问题。
,
o.O?:
但是我把中断关了,这时候调度器是不会起作用的,直到我把中断打开。所以我再关闭中断的时候,如果wmbus那边任务有动作,会被我自己的任务给占用,直到我放开。我不太清楚是否是这原因导致的异常。因为从我的测试结果比对来看,两个程序的区别就是有无关闭中断的动作。
,
Alex Zhang:
您好,我以及跟进您的问题,有更新会回复您这边。
,
Alex Zhang:
你能给出你用来“关闭”和“打开中断”的具体代码吗?
我只建议启用/禁用它。
,
o.O?:
,
Alex Zhang:
好的,我已经收到您的回复,我正在与e2e工程师跟进您的问题,谢谢。
,
Alex Zhang:
我明白了。 在WMBUS堆栈同时运行时使用HWI_DISABLE是一个坏主意。
应用程序是否与堆栈共享此PIN (debugPinHandle)? 如果没有,您是否可以更改实现,例如使用门互斥锁?
,
o.O?:
没有共用,但是我用例程测试是没问题的,直到新开了一个任务加了这个debug。然后我把debug关闭后去测试也没问题。后续我就把我的一些应用代码放进去测试,发现又出问题了。但是我的应用代码并没有关中断的动作。我看了一下,一些API里面会有开关中断的动作,如果开关中断会影响wmbus任务的运行,那我另一个任务调用了这些API会导致wmbus异常,我认为这是有问题的。也就是说我得在另一个任务运行时还得去判断wmbus任务是否在运行。
,
Alex Zhang:
您好,已经跟进您的问题,有更新我会及时跟进。谢谢。
,
Alex Zhang:
您对新任务的优先顺序是什么?高于或低于现有任务?
,
o.O?:
总共就两个任务,一个为wmbus 优先级为3,另一个任务优先级为2
,
Alex Zhang:
已经跟进您的问题,谢谢,有更新会及时回复您。
,
Alex Zhang:
请避免两个任务具有相同的优先级。