你好,
我目前正在使用DA14580的DSP程序。我知道dsp包含用于主机微控制器的出站和入站传输的缓冲区,我的问题是这些缓冲区的默认大小是多少,这个大小可以更改吗,大小限制是多少?
另外,如果主机微控制器在没有蓝牙设备连接的情况下连续写入缓冲区,那么dsp的预期行为是什么?我发现设备停止运行,但我应该在写入每个字符后监视流控制硬件行吗?或者有没有办法检测设备是否已连接?
当做,满意的
嗨,格雷夫西纳特,
DSPS设备实现了两个缓冲区,一个用于输入数据,另一个用于输出(ble\ U到periph\ U缓冲区和periph\ U到ble\ U缓冲区),这些缓冲区的大小分别为1800和500字节,您可以更改缓冲区的大小(尽管我不认为有任何理由这么做),以及您对580上可以分配多少堆内存的限制。
如果我们假设主机写入加载了DSPS-fw的580,DSPS将保持唤醒(在广告事件之间不会休眠,因为它至少有一个字节要发送,但没有连接要发送),捕获数据直到到达RX的缓冲区水印,一旦发生这种情况,设备将发出流关闭,以防止外部设备发送更多的数据,如果您不使用流控制,或者引伸装置不尊重从装置流出的流量,只会填满整个缓冲区,并最终发出警告(由于缓冲区被填满而卡在fw断点处)。是的,有一种方法可以检测设备是否已连接,您只需检查任务应用程序的状态(ke\u state\u get(TASK\u APP))。如果设备处于APP\u可连接状态,则表示该设备已准备就绪,并且正在发布广告。
谢谢你的对话
谢谢你的对话,
所以我现在用的是硬件流控制。一旦达到RX水印,我应该看到RTS线路是由设备设置的?因此,通过写入DA14580并监视字节之间的RTS行,我应该能够避免缓冲区过满并导致警告?
抱歉,我的意思是让主机检测DA14580当前是否连接到设备,如DSPS应用程序。
设备不会仅在缓冲区被填满到RX水印时发出关闭流,它还会在设备休眠时发出关闭流,例如在广告字符串之间(缓冲区中没有数据时)或连接事件之间。事实上,你会得到一个流关闭并不表示该设备已连接。
嗨,格雷夫西纳特,
DSPS设备实现了两个缓冲区,一个用于输入数据,另一个用于输出(ble\ U到periph\ U缓冲区和periph\ U到ble\ U缓冲区),这些缓冲区的大小分别为1800和500字节,您可以更改缓冲区的大小(尽管我不认为有任何理由这么做),以及您对580上可以分配多少堆内存的限制。
如果我们假设主机写入加载了DSPS-fw的580,DSPS将保持唤醒(在广告事件之间不会休眠,因为它至少有一个字节要发送,但没有连接要发送),捕获数据直到到达RX的缓冲区水印,一旦发生这种情况,设备将发出流关闭,以防止外部设备发送更多的数据,如果您不使用流控制,或者引伸装置不尊重从装置流出的流量,只会填满整个缓冲区,并最终发出警告(由于缓冲区被填满而卡在fw断点处)。是的,有一种方法可以检测设备是否已连接,您只需检查任务应用程序的状态(ke\u state\u get(TASK\u APP))。如果设备处于APP\u可连接状态,则表示该设备已准备就绪,并且正在发布广告。
谢谢你的对话
谢谢你的对话,
所以我现在用的是硬件流控制。一旦达到RX水印,我应该看到RTS线路是由设备设置的?因此,通过写入DA14580并监视字节之间的RTS行,我应该能够避免缓冲区过满并导致警告?
抱歉,我的意思是让主机检测DA14580当前是否连接到设备,如DSPS应用程序。
当做,
满意的
嗨,格雷夫西纳特,
设备不会仅在缓冲区被填满到RX水印时发出关闭流,它还会在设备休眠时发出关闭流,例如在广告字符串之间(缓冲区中没有数据时)或连接事件之间。事实上,你会得到一个流关闭并不表示该设备已连接。
谢谢你的对话