embedded - 有没有办法告诉终端在发送更多数据之前等待?

标签 embedded terminal

我有嵌入式固件,它有串行传输终端。我正在从终端执行命令,该命令等待应保存到闪存芯片的数据(文本文件)。不过写入flash比终端传输要慢很多。

文本文件可能相当大(很多kB),所以在小型嵌入式环境中我不能简单地将其转储到RAM。我想知道是否可以与标准终端仿真器(对文件具有拖/停支持)进行通信,以在每次写入缓冲区已满时暂停传输,并在写入完成后再次告诉继续?我没有找到任何可以帮助我解决这个问题的东西。

好吧,当然我可以制作理解这个技巧的 PC 前端,但在基础层面上,如果需要的话,如果所有功能都可以通过普通终端使用,那就太好了。

最佳答案

对于基本的串行连接,您可以查看硬件是否支持流量控制。这将是 CTS、RTS 线路(清除发送、请求发送)。
http://en.wikipedia.org/wiki/RS-232_RTS/CTS#RTS.2FCTS_handshaking

然而,许多简单的嵌入式系统并没有实现这种类型的流量控制。

如果硬件不支持流量控制,那么您将不得不考虑使用某种形式的软件流量控制。您也许能够实现 Xon/Xoff 流量控制 ( http://en.wikipedia.org/wiki/XON/XOFF ),或者可以实现简单的文件传输协议(protocol),例如 XMODEM、ZMODEM,甚至 tftp。这取决于您的终端可以支持的内容。

关于embedded - 有没有办法告诉终端在发送更多数据之前等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6924715/

相关文章:

c - 释放 C 中动态内存的第一部分

java - 在不使用 JNI 的情况下从 Java 调用 native 函数(使用堆栈操作)

C++ 硬件开发

c - ARM : How does objcopy know which sections from an elf to include in a binary or ihex?

java - 同时在带参数和不带参数的终端中运行 java

java - 使用 'java filename'命令运行java文件

Git Checkout [Tab] 显示很多分支

linux - 这个错误是什么意思 : interpreter/lib/ld-linux-armhf. so.3error reading (Invalid argument)

linux - 删除存储在 LAN 中的整个终端历史记录

python-3.x - 如何通过手机号码获取IP地址?