Part Number:CC2640R2F
我这边在测试CC2640R2F芯片时发现,每次蓝牙连接断开后,调用SysCtrlSystemReset函数重启,高概率出现不成功,并导致程序卡死,必须硬重启才能好.
请教下,调用这个函数软重启之前,需要做一些什么操作吗?
__STATIC_INLINE void
SysCtrlSystemReset( void )
{
// Disable CPU interrupts
CPUcpsid();
// Write reset register
HWREGBITW( AON_SYSCTL_BASE + AON_SYSCTL_O_RESETCTL, AON_SYSCTL_RESETCTL_SYSRESET_BITN ) = 1;
// Finally, wait until the above write propagates
while ( 1 ) {
// Do nothing, just wait for the reset (and never return from here)
}
}
Kevin Qiu1:
使用SysCtrlSystemReset时是否连接着调试器,断开调试器并使用外部电源供电
另外可以用HAL_SYSTEM_RESET()进行复位,它相当于reset引脚硬件复位
,
user6361423:
再请求下,HAL_SYSTEM_RESET的定义是下面这个吗?
ble5stack/hal/src/target/_common/cc26xx/_hal_mcu.h:202:#define HAL_SYSTEM_RESET() *((uint32 *)0x40082270) = 1;
,
Kevin Qiu1:
是的
,
user6361423:
由于我们是通过mini-usb线给2640充电,不可避免的接到了TCK-pin,导致2640第一次上电起来,调用HAL_SYSTEM_RESET必现失败, 请问这个有办法通过修改软件来解决吗?
,
Kevin Qiu1:
是否为同一问题:https://e2echina.ti.com/support/wireless-connectivity/bluetooth/f/bluetooth-forum/207688/cc2640r2l-halt-in-boot
参考里面的回复
TI中文支持网

