电子发烧友网 > 控制/MCU > 正文

TCP/IP协议典型的优化原则和方法

2018年03月13日 15:12 次阅读

  随着嵌入式技术的发展,人们对系统的智能化、小型化的要求也越来越高。基于ARM结构的微处理器以其高性能、低功耗、低价格等方面的优势被广泛应用于各种电子产品,特别是一些高端的嵌入式控制应用中,例如移动电话、工业控制、网络通信等方面。ARM技术具有很好的性能和功效,其合作伙伴包括许多世界顶级的半导体公司。可以说ARM技术几乎无处不在。

TCP/IP互联网协议族在全世界范围内已经成为开放系统互联的协议,它提供了很好的交互操作能力,可兼容多种网络技术。嵌入式技术与TCP/IP技术的结合已经展现出强劲的发展势头和巨大的市场潜力。如何开发面向 ARM的高效代码,尤其是提高类似于TCP/IP协议栈等基础性的软件模块的执行效率已成为每个从事基于ARM的嵌入式系统开发人员必须思考的问题。

面向ARM的程序优化

开发高效的程序涉及很多方面,包括优秀的算法实现、良好的编程风格以及针对目标的程序优化。程序优化是指软件编程基本结束后,利用软件开发工具对程序代码进行调整和改进,使程序能够更加充分地利用有限的软硬件资源,缩减代码尺寸,提高运行效率的过程。

在实际的程序设计过程中,程序优化的两个目标(运行速度和代码大小)往往是互相矛盾的。为了提高程序运行效率,就要以牺牲存储空间、增加代码量为代价;而为了减少程序代码量、压缩存储器空间,可能又要以降低程序运行效率为代价。按照优化的侧重点不同,程序优化可分为运行速度优化和代码尺寸优化。随着微电子技术的不断发展,存储空间已不再是制约系统集成的主要因素。面向ARM的程序优化主要是讨论如何在了解汇编语言和编译规则的基础上编写出能够高效运行的C语言程序。

作为高性能、低功耗的RISC芯片,ARM的C语言编译器已经非常成熟。尽管如此,在编写面向ARM的C源程序时,对程序进行必要的优化仍是提高程序运行效率的有效途径。以下是一些在实现TCP/IP协议过程中用到的比较典型的优化原则和方法,这些技术也适用于其他RISC指令集微处理器。

变量定义

32位 ARM处理器的指令集支持有符号/无符号的8位、16位、32位整型和浮点型变量类型,这不仅可以节省代码,而且可以提高代码的运行效率。按照作用范围的不同,C语言的变量可以划分为全局变量和局部变量。ARM编译器通常将全局变量定位在存储空间中,局部变量分配给通用寄存器。

在全局变量声明时,需要考虑最佳的存储器布局,使得各种类型的变量能以32位的空间位基准对齐,从而减少不必要的存储空间浪费,提高运行效率。如:

TCP/IP协议典型的优化原则和方法

这里定义的四个变量形式相同,只是次序不同,却导致了在最终映像中不同的数据布局,如图1所示。显然第二种方式节约了更多的存储器空间。

TCP/IP协议典型的优化原则和方法

对于局部变量,要尽量不使用32位以外的变量类型。当一个函数的局部变量数目不多时,编译器会把局部变量分配给内部寄存器,每个变量占一个32位的寄存器。这样short和char类型的变量不但起不到节省空间的作用,反而会耗费更多的指令周期来完成short和char的存取操作。C语言代码及其编译结果如下所示:

TCP/IP协议典型的优化原则和方法

条件执行

条件执行是程序中必不可少的基本操作。典型的条件执行代码序列是由一个比较指令开始的,接下来是一系列相关的执行语句。ARM中的条件执行是通过对运算结果标志位进行判断实现的,一些带标志位的运算结果中,N和Z标志位的结果与比较语句的结果相同。尽管在C语言中没有带标志位的指令,但在面向ARM的C语言程序中,如果运算结果是与0作比较,编译器会移去比较指令,通过一条带标志位指令实现运算和判断。例如:

TCP/IP协议典型的优化原则和方法

因此,面向ARM的C语言程序设计的条件判断应当尽量采用“与0比较”的形式。C语言中,条件执行语句大多数应用在if条件判断中,也有应用在复杂的关系运算(等)及位操运算(&&,!,and等)中的。面向ARM的C语言程序设计中,有符号型变量应尽量采取x& lt;0、x>=0、x==0、x!=0的关系运算;对于无符号型的变量应采用x==0、x!=0(或者x>0)关系运算符。编译器都可以对条件执行进行优化。

对于程序设计中的条件语句,应尽量简化if和else判断条件。与传统的C语言程序设计有所不同,面向ARM的C语言程序设计中,关系表述中类似的条件应该集中在一起,使编译器能够对判断条件进行优化。

技术专区

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

远程无线可移动视频监控系统:基于物联网与嵌入式技...

测温测量和控制在当今社会生活中扮演着至关重要的角色,国际国内市场现有的多种测温技术涵盖了安检、市 ...

发表于 2018-06-08 14:45 58次阅读
远程无线可移动视频监控系统:基于物联网与嵌入式技...

用嵌入式元件技术和EDA工具实现高端电子产品设计

将元件与基板连接主要有两种方式:成型连接和嵌入式连接。前者有效地利用了镀铜和阻性薄膜,在嵌入层(或表...

发表于 2018-06-05 11:00 137次阅读
用嵌入式元件技术和EDA工具实现高端电子产品设计

基于民用机载多媒体系统的CPCI平台解析

随着全球经济的高速发展,地域间交流变得越来越频繁,“地球村”的理想蓝图也在逐步实现。而作为实现“地球...

发表于 2018-06-04 15:29 59次阅读
基于民用机载多媒体系统的CPCI平台解析

基于ASIC和SoC设计的嵌入式存储器优化解析

在传统的大规模ASIC和SoC设计中,芯片的物理空间大致可分为用于新的定制逻辑、用于可复用逻辑(第三...

发表于 2018-06-03 15:38 36次阅读
基于ASIC和SoC设计的嵌入式存储器优化解析

物联网和人工智能将推动处理器架构和应用领域的研发...

另一个方面是物联网设备的功能安全性,它与汽车电子,工厂自动化,工业控制,铁路信号,智能电网等工业物联...

发表于 2018-05-02 15:58 761次阅读
物联网和人工智能将推动处理器架构和应用领域的研发...

嵌入式技术已经无处不在 嵌入式开发前景如何

更大的应用领域马上带来了更大的人才需求。据悉,目前国内3G核心嵌入式人才不足万人,其中华为约拥有50...

发表于 2018-04-18 16:55 763次阅读
嵌入式技术已经无处不在 嵌入式开发前景如何

国际嵌入式系统论坛议程公布,工业物联网与物联网安...

随着网络经济的发展和智能社会的快速推进,有工业物联网形成的安全问题日益突显、迅速放大,甚至将成为改变...

发表于 2018-03-02 11:09 695次阅读
国际嵌入式系统论坛议程公布,工业物联网与物联网安...

基于OpenWrt和TCPIP协议的Androi...

本文利用TCP/IP 协议,的Android 设备接入互联网,远程发送控制信号给刷有OpenWrt ...

发表于 2017-12-26 18:31 309次阅读
基于OpenWrt和TCPIP协议的Androi...

利用嵌入式技术进行智能寻迹机器人设计的案例

1 引言 在信息技术的飞速发展,计算机,通讯、消费电子三种技术合一的后PC的时代,虽然计算机和网络已...

发表于 2017-11-29 14:18 1777次阅读
利用嵌入式技术进行智能寻迹机器人设计的案例

学习STM32打好了基础,你需要知道这些

内建的嵌套向量中断控制器支持240条外部中断输入。向量化的中断功能大大减少了中断延迟,因为不在需要软...

发表于 2017-08-31 10:36 4603次阅读
学习STM32打好了基础,你需要知道这些

一位资深嵌入式工程师深情告白信

以下内容是来自于一位多年学习韦东山老师课程的同学写的告白信,我希望他的故事,能给正在迷茫的你,带来一...

发表于 2017-04-01 09:33 1963次阅读
一位资深嵌入式工程师深情告白信

全球嵌入式技术和物联网发展趋势

回顾已经过去的2016年,嵌入式技术和物联网发展迅速,嵌入式技术在巩固传统应用的基础上,探索新兴市场...

发表于 2017-03-10 18:06 3053次阅读
全球嵌入式技术和物联网发展趋势

DTU产品在桥隧监测系统中的应用

桥梁的应变监测系统中主要的部分就是桥梁应力信号的采集控制,通过对桥梁结构的应力监测系统特点进行详细分...

发表于 2017-01-19 14:26 491次阅读
DTU产品在桥隧监测系统中的应用

局域网通信协议详解及选择原则

通信协议实际上是一组规定和约定的集合,我们常用的计算机就离不开。本文将介绍局域网中的三种通信协议以及...

发表于 2017-01-06 15:45 799次阅读
局域网通信协议详解及选择原则

网络安全成为德国慕尼黑电子展最热话题

德国慕尼黑电子展electronica 2016于11月8日开幕。不同于国内展会的开幕典礼,幕展的开...

发表于 2016-11-10 02:16 213次阅读
网络安全成为德国慕尼黑电子展最热话题

清能德创李星霖:机器人要突破一定要走定制化路线

关键零部件依赖进口、工业机器人关键技术受制于人,制约了机器人产业化的发展。近年来,随着政策利好和资本...

发表于 2016-11-07 13:08 1258次阅读
清能德创李星霖:机器人要突破一定要走定制化路线

机器人小车DIY——开启机器人世界的第一步

接触过很多机器人爱好者,大都对机器人技术展示出了浓厚的兴趣,也在计划如何动手制作自己的第一个机器人。...

发表于 2016-11-05 10:25 1597次阅读
机器人小车DIY——开启机器人世界的第一步

智能手表的前世今生:谈谈早期的智能手表系统

1940年,第一款可计算手表诞生,他的牛逼之处在于,这竟然是机械手表做运算。智能手表兴起也有好些年了...

发表于 2016-11-05 10:07 1003次阅读
智能手表的前世今生:谈谈早期的智能手表系统

这些是未来5到10年物联网专利布局的关键

近年来,欧美科技大厂推出智能眼镜的有关消息层出不穷,例如: 苹果公司的iGlass、Snoy公司的显...

发表于 2016-11-03 15:15 770次阅读
这些是未来5到10年物联网专利布局的关键

电子圈倾城而动,ELEXCON深圳国际电子展暨嵌...

ELEXCON&IEE2016即将于8月24日~26日在深圳会展中心举办,这次电子与嵌入式各自领域的...

发表于 2016-08-03 15:04 370次阅读
电子圈倾城而动,ELEXCON深圳国际电子展暨嵌...

SST推出通过认证的基于GLOBALFOUNDR...

SST全球市场营销及业务发展总监Vipin Tiwari表示:“低掩膜次的嵌入式SuperFlash...

发表于 2016-07-13 14:33 436次阅读
SST推出通过认证的基于GLOBALFOUNDR...

Mentor Graphics 赢得 Synop...

俄勒冈州威尔逊维尔,2016 年 2 月 23 日 — Mentor Graphics公司(纳斯达克...

发表于 2016-02-23 11:10 436次阅读
Mentor Graphics 赢得 Synop...

资深工程师FPGA设计经验精华汇总

至今记得当初第一次在EDA实验平台上完成数字秒表,抢答器,密码锁等实验时,那个兴奋劲。##其实在国外...

发表于 2015-12-16 10:35 1461次阅读
资深工程师FPGA设计经验精华汇总

AT21CS01串行EEPROM与竞品的对比

此类存储内容可能包括设备和系统ID、制造信息、校准数据、序列化数据或其它任何可有效用作系统元数据的类...

发表于 2015-11-09 10:09 1887次阅读
AT21CS01串行EEPROM与竞品的对比

FPGA设计五大优势 凸显工业应用灵活性

本文介绍使用Altera®工业级FPGA作为协处理器或者芯片系统(SoC)解决方案,提高工业应用的灵...

发表于 2015-10-28 10:29 3781次阅读
FPGA设计五大优势 凸显工业应用灵活性

嵌入式ARM多核处理器并行化方法

本文探究的嵌入式多核处理器采用同构结构,实现同一段代码在不同处理器上的并行执行。##缓存优化(Cac...

发表于 2014-12-16 14:43 607次阅读
嵌入式ARM多核处理器并行化方法

对话宋雪松:如何成长为资深嵌入式工程师?

宋雪松老师编写的《手把手教你学51单片机》获得很多工程师的喜爱,鉴此,电子发烧友网专程邀请宋老师参与...

发表于 2014-11-25 10:20 13242次阅读
对话宋雪松:如何成长为资深嵌入式工程师?

超经典!工程师嵌入式Linux自学笔记及体会

针对初学嵌入式的广大朋友们,以下是我在初学接触嵌入式的过程中整理处的一些资料信息,希望能为大家有所帮...

发表于 2014-10-24 10:08 12450次阅读
超经典!工程师嵌入式Linux自学笔记及体会

工程师视角:学习嵌入式的十三个重要法则

通过实践、整理、分析,将自己在学习嵌入式开发过程中所总结的一些嵌入式法则、整理如下以供大家参考。

发表于 2014-10-08 11:18 1096次阅读
工程师视角:学习嵌入式的十三个重要法则

嵌入式工程师分享:学习单片机必备的八大步骤

成为一名嵌入式工程师,简单的单片机基础学习与应用是不可缺少的。学习单片机就是学习单片机的硬件结构,内...

发表于 2014-10-03 23:13 2084次阅读
嵌入式工程师分享:学习单片机必备的八大步骤

基于JTAG口对F1aSh的在线编程平台

对于研发人员来说,在开发阶段需要大量的程序调试,就意味着要对F1ash进行擦除和改写的工作,因此,如...

发表于 2014-09-03 13:35 1126次阅读
基于JTAG口对F1aSh的在线编程平台

酸甜苦辣兼有之,资深工程师谈创业之路

刘平老师是一个幽默、风趣、有知识、有内涵的人儿,他愿意跟大家一起分享他所经历的酸甜苦辣,而且刘老师的...

发表于 2014-08-29 09:51 2759次阅读
酸甜苦辣兼有之,资深工程师谈创业之路

基于嵌入式技术的监护系统的研究与设计

随着我国经济的快速发展、城市化进程的日益加速、人们生活节奏的不断加快,越来越多的人们开始感到自己的健...

发表于 2014-08-21 17:09 352次阅读
基于嵌入式技术的监护系统的研究与设计

AMD嵌入式技术为波音飞机保驾护航

作为AMD长期技术合作伙伴的CoreAVI现如今宣布,波音为其下一代高性能航空电子座舱显示系统选用了...

发表于 2014-07-23 14:00 226次阅读
AMD嵌入式技术为波音飞机保驾护航

创新物联网技术的狂欢

物联网是新一代信息技术的重要组成部分,它将现实世界数字化,应用十分广泛。

发表于 2014-05-05 16:42 664次阅读
创新物联网技术的狂欢

APU与GPU共进 AMD抢攻嵌入式应用

AMD近年来对于APU(加速处理器)与嵌入式应用一直抱持相当高的期待,也因此当AMD向外界宣称要更加...

发表于 2014-03-06 10:10 495次阅读
APU与GPU共进  AMD抢攻嵌入式应用

COS操作系统引热议,你怎么看?

近期,一款全新手机操作系统COS,以“中国操作系统”之姿杀入人们视野,意图打破谷歌、苹果和微软系统...

发表于 2014-01-23 14:37 4392次阅读
COS操作系统引热议,你怎么看?

基于ARM的无线视频监控系统的解决方案

随着嵌入式技术以及无线通信技术的发展,无线视频监控领域进入了一个崭新的发展时期。基于嵌入式技术的视频...

发表于 2014-01-07 17:00 1490次阅读
基于ARM的无线视频监控系统的解决方案

BDTI宣布打造以消费者为核心的全新移动终端用户...

技术行业值得信赖的分析、咨询及嵌入式处理技术及应用设计公司伯克利设计技术公司(BDTI:www.BD...

发表于 2013-08-16 13:51 283次阅读
BDTI宣布打造以消费者为核心的全新移动终端用户...

如何把握真正行之有效的嵌入式智能设备测试?

嵌入式技术和新一代移动通讯网络的发展使得嵌入式智能设备大量的涌现。这些设备的大都具有嵌入式操作系统的...

发表于 2012-12-27 10:46 459次阅读
如何把握真正行之有效的嵌入式智能设备测试?

日本2012先进嵌入式技术:非接触式?是的!

  日本的《嵌入式技术2012》(The Embedded Technology 2012)贸易展主...

发表于 2012-11-21 15:16 4004次阅读
日本2012先进嵌入式技术:非接触式?是的!

“嵌入式视觉”的处理技术选择

随着功能越来越强大的处理器、图像传感器、存储器和其他半导体器件以及相关算法的出现,可以在多种嵌入式系...

发表于 2012-05-16 11:53 704次阅读
“嵌入式视觉”的处理技术选择

2012最新嵌入式技术与应用展望

嵌入式技术已进阶成智能核心的关键性技术,随着云端运算的技术与环境逐渐成熟,各国政府均倾全力推动物联网...

发表于 2012-01-04 18:13 1346次阅读
2012最新嵌入式技术与应用展望

嵌入式技术与整车网络的实现

本文对整车网络开发和系统开发工作进行了详细描述,结合嵌入式理论介绍了基于功能面向需求的架构设计方法以...

发表于 2011-12-15 10:19 320次阅读
嵌入式技术与整车网络的实现

Intel嵌入式产品认知调查问卷 赢取幸运大奖

本次活动由英特尔赞助,在活动结束后会在11月30日在本文章里公布。

发表于 2011-11-25 13:48 366次阅读
Intel嵌入式产品认知调查问卷 赢取幸运大奖

2011中国(肇庆)嵌入式技术创新应用大会

2011中国(肇庆)嵌入式技术创新应用大会暨十大优秀嵌入式系统创新解决方案颁奖典礼即将举行.

发表于 2011-05-27 10:41 265次阅读
2011中国(肇庆)嵌入式技术创新应用大会

英飞凌推出8位微控制器XC800 150℃系列,...

英飞凌推出8位微控制器XC800 150℃系列,可以不受限制工作于150℃的高温环境 在纽必堡举行...

发表于 2010-03-11 10:35 321次阅读
英飞凌推出8位微控制器XC800 150℃系列,...

基于嵌入式技术的网络视频监控系统

基于嵌入式技术的网络视频监控系统  一、视频监控系统的发展历程   ...

发表于 2010-02-25 10:29 249次阅读
基于嵌入式技术的网络视频监控系统

基于嵌入式技术的温度测量系统设计

基于嵌入式技术的温度测量系统设计  1. 引言   嵌入式系统是能够运行操作系统的软、硬件综合体...

发表于 2010-01-08 10:51 283次阅读
基于嵌入式技术的温度测量系统设计