Cypress技术论坛
直播中

刘倩

8年用户 191经验值
私信 关注
[问答]

BLELL寄存器读取硬故障该怎么解决?

你好,
我们使用PSOC4在组合和CAPSENSE应用。为了减少噪声,我们正尝试在BLE间隔之间执行CAPSSENSE活动。因为我们现在正在做的是一堆混乱的问题。
这个计划的概要是这样的。通常你有一些类似的事情:
而(1){/*CyByLoPraceSeXScript()允许BLE栈处理未决事件*/CyByl PraseSevScript();
做你的东西
}
在做“我们的东西”的时候,我们有兴趣知道在BLE想做某事之前还有多少时间。关于如何进入“祝福深度睡眠”的应用笔记提供了一个解决方案。
UIT1616T Stista Stime= CythGETYRG32(CyReGeLyBuleBelelyTimeAuthl);
UIT1616T AdvIt瞬时= CythGETYRG32(CyReGeLeBuleBeleldAdv.NEXTY瞬间);UIT1616T iITIN瞬时= CythGETYGRI32(CyrGeLyBuleBulelyIntNEXTY瞬间);UIT1616T SCAN即时= CythGETYRG32(CyReGeLyBulyBelelsSCANL.NEXTIVITY);UIT1616T CEIONTITY = CythGETYRG32(CyReGeLyBulyBelelgNxTyxCeIt即时);
然后我们选择最接近的事件。并不断检查CygReGyBulyBelelyTimyAdvl,看看我们的时间是否用完了。到目前为止,我希望如此。然而,麻烦一开始就发生了。DOCS说,我们必须检查LL是否空闲,然后读取TimeOffice,即CythGETYGRI32(CyrgElgBluleBlellx CllcLog-CONFIG)& GT;& GT;7)和1。
在某些情况下,此操作*出现*抛出硬故障。现在我可以想象一下,如果一些外围时钟被关闭,这是一个非法读取,但是读在调试器中工作,所以我不能排除任何东西。可能是内存损坏、堆栈故障、ISR返回的一些错误。
我们正在寻找澄清是否有一些情况会导致读读错误,如果是这样的话,解决办法是什么。
当做,
乔恩撬

回帖(2)

龚羿峰

2019-10-11 08:41:45
嗨,乔恩,
你在你的定制板或042 - BLE工具包上测试吗?你能分享你的项目吗?
举报

刘倩

2019-10-11 08:54:16
引用: Furlong 发表于 2019-10-11 08:41
嗨,乔恩,
你在你的定制板或042 - BLE工具包上测试吗?你能分享你的项目吗?

这是一个定制板。我宁愿不发布这个项目。不过我确实取得了一些进步。在CyByLyLyLp()的函数描述中,CyBythStult.h表示,“CPU将不能访问祝福寄存器,而祝福处于深度休眠模式”。
我可以通过调用主循环中的CyByLeExtLPME()来完成工作。可能发生的是,一些非祝福中断从睡眠中唤醒我们,我猜测RTC,但是还有其他的中断源,然后CyByLePraseSevScript()最终成为NO-OP。因此,我们最终返回到我们的处理循环中,在“深度睡眠”中使用“祝福”,这当然不起作用。我认为这有点奇怪,有两个原因。首先,我在TRM中找不到任何解释为什么祝福是不可访问的。第二,它花费了我们一个未知的但潜在的小数量的力量来保持上帝的力量只是为了阅读它的计数器。
我怀疑我们可以生活在电力消耗,但它是好的知道是否有一些较低的功率,我们可以打开,使祝福可读。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分