TI中文支持网
TI专业的中文技术问题搜集分享网站

吞吐量测试死机问题

各位好,我的两块CC2640R2F开发板在吞吐量测试(MAX_PDU_SIZE:240,MAX_PDU_NUM:5)的时候会死机,具体情况如下(代码基于BLE5.0):

1.从机(simple_peripheral修改而来):单独串口任务(uart_task),接收到串口消息后(从电脑发到开发板),开发板启动定时器开始发送数据,发送完成后再次启动定时器发送数据

2.主机(simple_central修改而来):单独串口任务(uart_task),每次收到一次通知开始计数,每计数100个向串口打印一个"continue",总共传输200MB(最大速率可以接近理论速率)

问题如下:

1.在默认的连接间隔下,发送几百帧主机会死机(主机:400,600 从机:80,104)

2.修改不同链接间隔后,在某些连接间隔下(主机和从机最大与最小连接间隔相同)能正常传输完200MB,但是复位后再次尝试又会死机(前面括号相同情况下)

3.这个问题的导致原因是连接间隔导致的吗?还是别的原因导致的?(那个吞吐量测试的代码我看过了,博客我已看过了,默认连接间隔是正常的,不用贴那个链接给我,谢谢)

Viki Shi:

怀疑是串口跟蓝牙同时高速传输导致的,比如说内存分配问题。你直接用TI例程测试有问题吗?

GuppyCat:

回复 Viki Shi:

你的意思是说底层的部分要进行修改吗?我下载了那个博客的代码,然后安装了旧版的协议栈,然后编译说找不到文件
error #10008-D: cannot find file "E:/TI_MCU_Project/ble5_throughput_central_cc2640r2lp_stack_library/FlashROM_Library/ble_r2.symbols"
error #10008-D: cannot find file "E:/TI_MCU_Project/ble5_throughput_central_cc2640r2lp_stack_library/FlashROM_Library/lib_linker.cmd"
error #10008-D: cannot find file "E:/TI_MCU_Project/ble5_throughput_central_cc2640r2lp_stack_library/FlashROM_Library/ble5_throughput_central_cc2640r2lp_stack_library.lib"
我就直接开始新的协议栈代码直接调试了,整个流程和这个吞吐量的测试基本一致,那个事件部分我放到了processAppMsg里面(这个有影响吗?),串口部分只是做一个简单的打印调试,速度大概在100B/s,串口栈大小主机400Byte,从机栈大小600Byte,死机的一直都是主机

Viki Shi:

回复 GuppyCat:

我的意思是,CC2640R2F的内存有限,如果传输太快,可能会导致内存分配错误,出现死机。请看这边蕾丝问题:e2echina.ti.com/…/155445

GuppyCat:

回复 Viki Shi:

你好,我这边仔细排查了一下,是主机在接收数据的时候扫描导致的,最后再问一下扫描有什么限制吗?还有一个问题是在传输的时候我硬件复位,为什么主机的代码不能再次运行,要重新烧录(未在debug模式下,但是usb线连在电脑上,主机串口进程在工作)?

赞(0)
未经允许不得转载:TI中文支持网 » 吞吐量测试死机问题
分享到: 更多 (0)