【CRG1/CR3L】网关模组给附属MCU升级时的串口发送数据问题

网关设备, 语音中控设备等
Post Reply
zoule@venztech.com
Posts: 101


RTL8720CM_TuyaOS-3.11.22\software\TuyaOS\apps\tuyaos_demo_examples\src\examples\service_ota\example_attach_ota.c
文件中有下面一段ota升级的函数:
STATIC OPERATE_RET __get_attach_fw_data_cb(IN CONST FW_UG_S *fw, IN CONST UINT_T total_len, IN CONST UINT_T offset,IN CONST BYTE_T *data, IN CONST UINT_T len, OUT UINT_T *remain_len, IN PVOID_T pri_data)
{
UINT_T pack_cnt = 0, i = 0, send_len = 0;

Code: Select all

TAL_PR_DEBUG("Rev File Data");
TAL_PR_DEBUG("Total_len:%d ", total_len);
TAL_PR_DEBUG("Offset:%d Len:%d", offset, len);

pack_cnt = len/ONE_PACK_LEN;
*remain_len = len % ONE_PACK_LEN;

for (i=0; i<pack_cnt; i++) {
    __print_firmware_data(&data[send_len], ONE_PACK_LEN);
    send_len += ONE_PACK_LEN;
}

// last pack
if (offset + len == total_len) {
    TAL_PR_DEBUG("the last fw pack");

    if ((*remain_len) > 0) {
        __print_firmware_data(&data[send_len], (*remain_len));
        send_len += (*remain_len);
        *remain_len = 0;
    }

    //update version
    __update_firmware_version(fw->tp, fw->sw_ver);
}

return OPRT_OK;

}

不考虑其他因素,测试环境 数据已经到达打印函数 __print_firmware_data; 正常情况下 数据都能够全部传递完成;

现在问题出现了,将这些数据 采用uart 的方式将这些数据 每批次 256个字节发送出去给mcu
mcu端 很难全部接收完成。

测试数据:
1.如果,网关内部不执行别的代码;包括启动tuyaos start语句等; 只测试发送256个字节是完全可行的;
mcu端也能够接收到;

请问;目前这个情况;是crg1/cr3L 这个网关资源不够造成的吗?是发送函数阻塞导致的吗?
还是该线程优先级不够,被别的线程打断;从而导致发送的数据 错误了呢?

这个问题已经困扰了一周了;麻烦有时间的话;帮忙提供下解决思路!!谢谢!!!

zoule@venztech.com
Posts: 101

Re: 【CRG1/CR3L】网关模组给附属MCU升级时的串口发送数据问题

以上 附件是我的详细 实现文件,请帮忙指导一下, 感谢感谢!!!

Attachments
user_mcu.c
(22.36 KiB) Downloaded 6 times
zoule@venztech.com
Posts: 101

Re: 【CRG1/CR3L】网关模组给附属MCU升级时的串口发送数据问题

帖子没有沉吧,我来顶上

zoule@venztech.com
Posts: 101

Re: 【CRG1/CR3L】网关模组给附属MCU升级时的串口发送数据问题

在线等一个回复呢!!帮忙回复一下吧

zoule@venztech.com
Posts: 101

Re: 【CRG1/CR3L】网关模组给附属MCU升级时的串口发送数据问题

球球了 来个人帮帮忙看看 好嘛

Post Reply