本帖最后由 xlsbz 于 2009-12-12 12:48 编辑
下面这段摘自别处
https://bbs.21ic.com/viewthread.php?tid=40962&highlight=%E4%B8%B2%E5%8F%A3
*************************************************
其实很多时候,对于通讯传输的数据处理才是关键,尤其对于设计通讯协议而言。笔者在刚刚做的一个系统上就碰到这样的问题,当系统庞大了,资源十分有限的情况下,数据处理一旦占用资源太多,效率太低将导致系统崩溃而无法运行。
到了这里,很多工程师可能会考虑开个大的缓冲区FIFO将接收到的数据保存在缓冲区,然后对其进行解析、判断进行下一步程序编写,当然这在系统资源比较丰富的情况下是没有问题的,ARM上采取的就是这样的方式。但如何系统庞大呢,留给的资源缺乏则不行。这样做的一个很大缺点必须是将数据帧接收完了才能够判断,降低了效率和运行速度。
其实还有另外的方式,可以采取在每接收一个字节就对其解析,解析完判断转到下一个状态,并将其中的有用数据存储在相应的数据结构中去,可以采取状态机实现
*************************************************
这段意思是不是这样:以为先判断后接收效率高、省资源。 先接收后判断就“降低了效率和运行速度”。
我就没有看出到底哪里省资源了?
效率怎么就高了?
谁能指点一下?多谢!
|