大家好、
我的客户基于 Github 示例使用 CC2640实现了外设+观测 器、但该程序将在 HAL_ASSERT_SPINLOCK 处完成。
如果禁用观测器功能、则不会发生错误。
2.启用 观测器功能、如果设置 DEFAULT_MAX_SCAN_RES = 20、程序将在30秒内停止运行; 如果设置为1、程序可以在卡滞前运行5分钟。
他为 回调函数发送的每个消息队列调用 iCall_freyMsg (pEvent)。 这是关于内存管理还是其他方面?
代码片段:
空 AssertHandler (uint8 assertCasuse、uint8 assertSubcause)
{
//检查断言原因
开关(砂锅)
{
案例 HAL_ASSERT_CAUSE_OUT_ORT_MEMORY:
中断;
案例 HAL_ASSERT_CAUSE_INTERNAL_ERROR:
//检查子原因
if (assertSubcause == HAL_assert_SUBCAUSE_FW_INERnal_error)
{
;
}
其他
{
;
}
中断;
案例 HAL_ASSERT_CAUSE_ICALL_ABORT:
HAL_ASSERT_SPINLOCK;
中断;
默认值:
HAL_ASSERT_SPINLOCK;
}
返回;
}
assertCeps=8、 具有以下定义:
//常见断言原因(0x00 . 0x1f)
#define HAL_ASSERT_CAUSE_FALSE 0x00
#define HAL_ASSERT_CAUSE_TRUE 0x01
#define HAL_ASSERT_CAUSE_INTERNAL_ERROR 0x02
#define HAL_ASSERT_CAUSE_HW_ERROR 0x03
#define HAL_ASSERT_CAUSE_OUT_FOR_MEMORY 0x04
#define HAL_ASSERT_CAUSE_ICALL_ABORT 0x05
#define HAL_ASSERT_CAUSE_ICALL_TIMEOUT 0x06
#define HAL_ASSERT_CAUSE_WRONG_API_CALL 0x07
#define HAL_ASSERT_CAUSE_hardware_error 0x08
#define HAL_ASSERT_CAUSE_RF_DRIVER_ERROR 0x09
#define HAL_ASSERT_CAUSE_Unexpected 错误0x0A
维基
此致。