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.

[参考译文] RTOS/CC2640:添加 UART 会导致程序不运行 main()

Guru**** 2589280 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/604637/rtos-cc2640-adding-uart-cause-program-not-to-run-main

器件型号:CC2640

工具/软件:TI-RTOS

添加 UART INincludes 后、初始化、打开。 调试不会运行到 main()。  

当"UART = UART_OPEN (Board_UART、&uartParams);"被添加到程序中时、调试将不会运行到 main()。  如果删除了程序、则正常运行。

缺少什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    其他信息、是否需要设置任何中断?
    包括#include
    UART_Handle UART;
    UART_Params uartParams;
    UART_INIT();
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Terry Phillips、

    您是否提供了代码的更多详细信息? 有关在 CC26xx 的 UART 上读取数据的示例代码

    void FIOT_UART_Serial_Rx_CB (UART_Handle iHandle、void * OData、size_t count)
    {
    //!*********
    //!将 UART_Rx_Buf 复制到 UART_Tx_Buf
    //!*********
    
    //!*********
    //!将任务唤醒以处理
    //!*********
    Semaphore_post (UART_hSem);
    }
    /*********
    *职能-任务
    /*
    !
    秘书长的报告
    *@fn void FIOT_UART_CreateTask (void)
    *
    *@协议的简短任务创建函数
    *
    @param None
    *
    @return None
    *
    ******** /
    void FIOT UART_CreateTask (void)
    {
    Task_Params TaskParams;
    //!*********
    //!配置任务
    //!*********
    Task_Params_init (&TaskParams);
    TaskParams.stack= UART_TaskStack;
    TaskParams.STACKSIZE= UART_TASK_STACK_SIZE;
    TaskParams.priority= UART_TASK_priority;
    
    Task_con构(&UART_TaskStructure, FIOT_UART_TaskFxn、&TaskParams、NULL);
    }
    /*!
    秘书长的报告
    *@fn void FIOT_UART_InitTask (void)
    *
    *@简要利用 UART 层
    *
    *@param None
    *
    @return None
    *
    ******** /
    void FIOT_UART_InitTask (void)
    {
    //!*********
    //!初始化 UART
    //!*********
    UART_Params uParams;
    
    UART_Params_init (uParams);
    
    uParams.writeDataMode = UART_DATA_binary;
    uParams.readDataMode = UART_DATA_binary;
    uParams.readReturnMode = UART_return_full;
    uParams.readMode = UART_MODE_CALLBACK;
    uParams.readCallback = FIOT_UART_Serial_Rx_CB;
    
    UART_uHandle = UART_OPEN (Board_UART、&uParams);
    //!*********
    //!利用信标
    //!*********
    Semaphore_Params sParams;
    Semaphore_Params_init (&sParams);
    sParams.mode = Semaphore_Mode_binary;
    
    Semaphore_construction (&UART_sSem、0、 sParams);
    UART_hSem = Semaphore_handle (&UART_sSem);
    }
    /*!
    秘书长的报告
    *@fn void FIOT_UART_TaskFxn (UARg a0、UARg A1)
    *
    @协议的简短应用任务入口点。
    *
    *@param a0、A1 -未使用。
    *
    *@无返回
    *
    ******** /
    void FIOT UART_TaskFxn (UArg0、UArg1)
    {
    //!*************
    //!初始化 UART 层
    //!*********
    FIOT_UART_InitTask ();
    //!*********
    //!UART 层的循环
    //!*********
    对于(;;)
    {
    //!*********
    //!refesh 以读取新数据
    //!*********
    UART_READ (UART_uHandle、&UART_Rx、1);
    
    Semaphore_pend (UART_hSem、BIOS_wait_forever);
    //!*********
    //!处理数据
    //!*********
    
    } 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    使用我的示例 UART 程序,当 UART_open()被调用时,调试器退出。
    Cortex_M3_0:错误:(错误-1170 @ 0x0)无法访问 DAP。 重置设备、然后重试此操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    如果您在没有调试模式的情况下运行程序、您的程序是否会运行?

    祝你一切顺利
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Terry Phillips、
    您能否提供问题的更多详细信息?