你好,
我目前正在使用DA14580的DSPS程序。我明白DSP包含了对主机微控制器的外出和入站传输的缓冲区,我的问题是默认情况下这些缓冲区的大小,可以更改此尺寸,大小限制有哪些尺寸?
此外,如果主机微控制器连续地写入缓冲器而没有连接蓝牙设备时,则DSP的预期行为是什么?我发现设备停止运行,但如果我应该在编写每个人的角色后监视流量控制硬件线?或者是否有办法检测设备是否已连接?
问候,杰克
嗨greavesinator,
DSP设备实现了两个缓冲区,一个缓冲区用于Incomming数据和用于传出的附加缓冲区(BLE_TO_PERIPH_BUFFER和PERIPH_TO BLE_BUFFER),分别为1800和500字节,您可以更改缓冲区的大小(虽然我没有看到任何这样做的原因)以及您对此可以在580上分配多少堆内存的限制。
如果我们假设主机写入到DSP FW加载的580中,DSP将保持清醒(因为它在广告事件之间睡眠不到,因为它将至少有一个字节发送但没有连接发送到),捕获在数据到达RX的缓冲水印之前,一旦发生设备将发出流量,以便防止外部设备发送更多数据,如果您不使用流量控制,或者exteNal设备不会尊重流动该设备将简单地填写整个缓冲区,最终将断言警告(由于其缓冲区被填充的事实,由于其缓冲区的事实而粘在FW断点中)。是的,有一种方法可以检测设备是否已连接,只需检查任务_App(Ke_State_Get(Task_Apd))的状态。如果设备处于APP_CONNECTABLE状态,则表示设备已准备就绪及其广告。
谢谢mt_dialog.
谢谢mt_dialog,
所以我目前正在使用硬件流控制。达到RX水印后,我应该看到设备设置RTS线吗?因此,通过写入DA14580并监视字节之间的RTS线,我应该能够避免过度缓冲区并导致警告?
道歉,我的意思是主机检测DA14580当前是否连接到设备,例如DSPS应用程序。
仅当缓冲区填充到RX水印时,设备才会关闭流量,当设备睡眠时,在广告字符串之间睡眠时,例如(缓冲区中没有数据)或之间的数据)连接事件。您将流出的事实不会指示设备已连接。
嗨greavesinator,
DSP设备实现了两个缓冲区,一个缓冲区用于Incomming数据和用于传出的附加缓冲区(BLE_TO_PERIPH_BUFFER和PERIPH_TO BLE_BUFFER),分别为1800和500字节,您可以更改缓冲区的大小(虽然我没有看到任何这样做的原因)以及您对此可以在580上分配多少堆内存的限制。
如果我们假设主机写入到DSP FW加载的580中,DSP将保持清醒(因为它在广告事件之间睡眠不到,因为它将至少有一个字节发送但没有连接发送到),捕获在数据到达RX的缓冲水印之前,一旦发生设备将发出流量,以便防止外部设备发送更多数据,如果您不使用流量控制,或者exteNal设备不会尊重流动该设备将简单地填写整个缓冲区,最终将断言警告(由于其缓冲区被填充的事实,由于其缓冲区的事实而粘在FW断点中)。是的,有一种方法可以检测设备是否已连接,只需检查任务_App(Ke_State_Get(Task_Apd))的状态。如果设备处于APP_CONNECTABLE状态,则表示设备已准备就绪及其广告。
谢谢mt_dialog.
谢谢mt_dialog,
所以我目前正在使用硬件流控制。达到RX水印后,我应该看到设备设置RTS线吗?因此,通过写入DA14580并监视字节之间的RTS线,我应该能够避免过度缓冲区并导致警告?
道歉,我的意思是主机检测DA14580当前是否连接到设备,例如DSPS应用程序。
问候,
杰克
嗨greavesinator,
仅当缓冲区填充到RX水印时,设备才会关闭流量,当设备睡眠时,在广告字符串之间睡眠时,例如(缓冲区中没有数据)或之间的数据)连接事件。您将流出的事实不会指示设备已连接。
谢谢mt_dialog.