基于ARM的嵌入式系统直接面向以太网数据,典型的以太网数据封装格式如图3所示。根据以上的优化方法,在变量定义时需要考虑最佳的存储器布局,使得各种类型的变量能以32位的空间位基准对齐,对于功能函数中参加运算的数据应尽量采用32位的数据进行处理。
嵌入式TCP/IP协议的实现通常采用Linux中的TCP/IP网络结构层次。TCP/IP协议实现网络层和控制层的ARP/RARP、IP、ICMP、 TCP、UDP等协议,直接为HTTP、SMTP、FTP、TELNET等这样的应用层协议提供支持。每个系统都需要具体定义应用层程序和协议软件之间的接口。
协议处理的一般流程如图4所示。协议处理过程中需要多次条件判断,对IP地址和TCP数据的校验和处理循环比较是无法避免的,因此可以充分利用“与0比较”的条件判断和“减到0”的循环来优化程序设计。
结束语
除了以上所述的面向ARM的程序优化的原则和方法以外,C语言程序设计本身还有很多程序优化的方法。在上述基于ARM嵌入式系统硬件平台的系统开发过程中,充分利用面向ARM的C程序优化设计方法,可将TCP/IP协议处理模块的可执行代码减少5%以上,执行效率有所提高。实践证明,基于ARM的嵌入式系统设计中,在透彻了解ARM汇编指令的特性和编译过程的基础上,合理地使用程序优化的原则和方法可以有效地提高编译效率和代码执行效率。
上一篇:上位机串口的通信编程