Other Parts Discussed in Thread: TIMAC, CC2630, CC2650
主题中讨论的其他部件:TIMAC、 CC2650
工具/软件:TI-RTOS
平台:2630
SDK:TIMAC 1.5.2
问题:在看门狗超时后无法运行到 main()。
测试代码如下:
看门狗复位时调用栈 如下:
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
M-W、
调试器未连接时、CC2630也无法成功复位。
2.该函数从随附的演示代码复制。
在调试过程中、我们会看到如果移除 ICALL_WAIT、芯片可以成功复位。
您好、Morris、
我通过采用非触控堆栈示例( /Projects/mac/Sample/cc26xx_RTOS/IAR projects/Application/CC2650)并添加更改、而不是调用最初完成的"msa_task()"。 我还添加了在启用看门狗后立即打开 LED、以查看我们是否能够按预期复位(理论上、如果我们从看门狗获得正确的复位、它应该闪烁)。
这导致了以下任务函数:
void taskFxn (UARg a0、UARg A1)
{
#if defined (use_FPGA)
SysCtrlPowerEverything();
Power_setConstraint (Power_SB_Disallow);
Power_setDependency (Periph_RFCORE、Power_global);
#endif
// Disallow disallow down JTAG、VIMS,
因为在 SYSBUS 空闲状态期间需要关闭 SYSBUS *。 //
Power_setConstraint (Power_IDLE_PD_Disallow);
//初始化 ICall 模块*/
iCall_init ();
//
#ifdef feature_MAC_security
CryptoCC26XX_Parinit CryptoCC26XX_Params;
extern CryptoCC26XX_Handle CryptoCC26XHOT
(CC26XX_CC26XX_CryptoCC26XX_open_CC26XX_CC26XX_CryptoC26XX_CryptoC26XX_CryptoC26XX_CryptoC26XX_CC26XX_CryptoC26XX_open_CC26XX_CC26XX_CC26XX_CC26XX_CryptoC false、CryptoCC26XXParams);
if (!CryptoCC26XHxHandle)
{
Task_exit();
}
Crypto_init();
/*
*从 CCFG 区域复制扩展地址
*假设:CCFG_IEEE_MAC_0和 CCFG_IEEE_MAC_1中的存储器
*是连续的、LSB 在前。
*
memcpy (msa_ExtAddr、
(uint8_t *)&(__ccfg.CCFG_IEEE_MAC_0)、EXTADDR_LEN);
/*检查 CCFG IEEE 是否有效*/
if (memcmp (msa_ExtAddr、dummyExtAddr、EXTADDR_LEN)=0)
{
/*否,它无效。 获取主要 IEEE 地址*/
memcpy (msa_ExtAddr、
(uint8_t *)(FCFG1_base + EXTADDR_OFFSET)、EXTADDR_LEN);
}
#endif
//
#ifdef NV_RESTORE
//设置 NV 驱动程序*/
NVOCTP_loadIPPtrs (&user1Cfg.nvFps);
if (user1Cfg.nvFps.initNV)
{
user1Cfg.nvFps.initNV (NULL);
}
pfnMacCfgNvFps =&user1Cfg.nvFps;
#endif
//
/*启动外部映像的任务*/
iCall_createRemoteTasks();
/*启动应用程序*/
PRCMPowerDomainOn (PRCM_DOMAIN_PERIPh);
PRCMPeripheralRunEnable (PRCM_Periph_GPIO);
PRCMLoadSet();
while (!PRCMLoadGet ()){
;
}
Task_sleep (100000);
epdWatchdogStart();
IOCPinTypeGpioOutput (IOID_6);
while (1)
{
GPIOPinWrite (GPIO_PIN_6、1);
iCall_Wait (ICALL_TIMEOUT_FOREVAL);
}
}
我在 CC2650 Launchpad 上对此进行了测试、但我没有看到您描述的问题、因为器件能够按预期复位。 我假设您在自己的定制硬件上看到此问题、在这种情况下、您是否可以在 LaunchPad 上重现此问题?
我在使用主文件运行它时遇到了一些问题、这与在应用程序和堆栈项目中定义的"feature_MAC_security"相关、删除此定义让我运行测试。 由于您未在提供的示例中初始化加密、您是否在两个项目中都禁用了此功能?