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.

CC2340R5: 调用osal_snv_write函数时,增加延时会进入ICall_abort

Part Number: CC2340R5

您好,想问一下关于CC2340R5,工程中创建定时器,定时器中断中将MainTaskFunction通过BLEAppUtil_invokeFunction传递给BLEAppUtil_Task,在MainTaskFunction中调用osal_snv_write函数,发现前两次osal_snv_write函数可正常调用,第三次会进入ICall_abort函数导致while(1)无法 退出,具 体是由什么原因导致的

void MainTaskFunction(char *pData)
{
    uint16 t arg =*pData;
    uint8 t temp[]="1234567890qwertyuiop"
    app_driver_uart_write("MainTaskFunction Line 1\r\n", sizeof("MainTaskFunction Line 1\r\n")-1);   //串口打印函数,调试使用
    vTaskDelay(pdMS_TO_TICKS(1000));
    osal_snv_write(0x98,sizeof(temp),temp);
    app_driver_uart_write("MainTaskFunction Line 2\r\n", sizeof("MainTaskfunction Line 2\r\n")-1);
    vTaskDelay(pdMS_TO_TICKS(1000));
    osal_snv_write(0x98,sizeof(temp),temp);
    app_driver_uart_write("MainTaskFunction Line 3\r\n", sizeof("MainTaskFunction Line 3\r\n")-1);
    vTaskDelay(pdMS_TO_TICKS(1000));
    osal_snv_write(0x98,sizeof(temp),temp);
    app_driver_uart_write("MainTaskFunction line 4\r\n", sizeof("MainTaskFunction Line 4\r\n")-1);
    vTaskDelay(pdMS TO TICKS(1000));
    osal_snv_write(0x98,sizeof(temp)-1,temp);
    app_driver_uart_write("MainTaskFunction Line 5\r\n", sizeof("MainTaskFunction tine 5\r\n”)-1);
    vTaskDelay(pdMS TO TICKS(1000));
    osal_snv_write(0x98,sizeof(temp)1,temp);
    app_driver_uart_write("MainTaskFunction Line 6\r\n", sizeof("MainTaskFunction Line 6\r\n")-1);
    vTaskDelay(pdMS TO TICKS(1000));
    osal_snv_write(0x98,sizeof(temp)-1,temp);
    app_driver_uart_write("MainTaskfunction Line 7\r\n", sizeof("MainTaskFunction line 7\r\n")-1);
    vTaskDelay(pdMS TO TICKS(1000));
    osal_snv_write(0x98,sizeof(temp)-1,temp);
    app_driver_uart_write("MainTaskFunction Line 8\r\n", sizeof("MainTaskFunction Line 8\r\n")-1);
    vTaskDelay(pMS TO TICKS(1000));
    osal_snv_write(0x98,sizeof(temp)-1, temp);
    app_driver_uart_write("MainTaskFunction line 9\r'n", sizeof("MainTaskFunction Line 9\r\n")-1);
}

  • 您好,

         请尝试在 main 函数中使用 usleep() 而不是 vTaskDelay 。

        vTaskDelay可能会干扰 SNV 过程,因为这不会使设备处于待机状态。

        另外timer执行的频率如何?