当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]图像屏幕尺寸绵放的C程序优化技巧

引 言
    嵌入式系统的核心部件是嵌入式处理器。在众多的处理器中,ARM是专为嵌入式应用而设计的处理器,由于其低功耗、高性价比和易扩展性等特点,在嵌入式系统中得到了最为广泛的应用。在许多成功的32位嵌入式系统中,ARM处理器都是其核心组成部分。ARM内核已被广泛应用于移动电话、掌上设备以及种类繁多的便携式消费类产品中。随着ARM处理器越来越广泛的应用,如何提高代码的执行效率已成为工程师关注的问题,同时如何在实时嵌入式应用中,通过代码优化以减少消耗过多的CPU运行时间已成为人们关注的焦点。软件开发中,常用的代码优化技巧有“循环展开”、“减少外存访问”、“考虑CPU带宽”、“循环减计数”、“循环变量数据类型”、“使用SWITCH取代条件判断”等。而图像在不同屏幕尺寸之间缩放的程序是嵌入式领域常常用到的功能。这里就以实现这样一个常见功能的程序为例,说明程序优化的技巧。

1 实例分析
    程序的目标是将一个长宽为240×160,格式为RGB565的显示缓冲区的内容映射到长宽为320×240,格式也为RGB565的显示缓冲区内。因为源数据宽度是240点,所以,放大到目的区域的时候,就需要每3个源数据点中,重复1点的数据,变成4点,放到目的显示缓冲区中。同样,每2行源数据也要重复1行,变成3行,放到目的显示缓冲区中。源数据和目的数据分别定义如下(保证源显示缓冲区和目的显示缓冲区都是4字节对齐起始的):
  

    注:以下所有程序均是使用ADS1.1编译,CPU主频为100 MHz,使用ARM7EJ-S为目标处理器,小端编译方式,测试的时间是以所有的程序和数据均是Cache全命中为前提测试得到的。

2 原始程序
    下面这段程序是没有经过任何优化的程序,仅仅实现了相应的功能要求,运行时间为10 ms。

[!--empirenews.page--]

3 优化步骤

    第一,采用循环展开的技巧进行优化,也就是尽量减少内层循环的次数。这里在行循环中,由原来的每次处理1行源数据,一共循环160次,改成每次处理2行源数据,一共只需要循环80次。同时,在行内部的列循环中,由原来的每次处理1个源像素点,一共循环240次,改成1次处理3个源像素点,一共只需要循环 80次。运行时间缩短为8 ms。

 

 [!--empirenews.page--]

   第二,因为ARM处理器的带宽是4字节,所以,取数据时也使用4字节的方式是效率最高的,程序设计时也要尽量利用这个特点提高效率。下面就利用这个特点,每次取源数据时都取4字节。因为行内部是每3点要重复1点,因此,行内部循环改为每次处理6个像素点,这样,又进一步减少了循环次数。运行时间缩短为4 ms。


    第三,访问外存往往是程序运行的瓶颈,因为外存的速度一般远远低于CPU运行速度,所以,在编程的过程中,要尽量减少对外存的访问。下面,将行循环中重复写入的那行在上一行生成的过程中直接完成,减少了拷贝重复行过程中读取1行的时间。运行时间缩短为3 ms。

结 语
    本文以图像在不同屏幕尺寸之间缩放的程序为例讲解了代码优化技巧方法,给出了源代码进行探讨,并通过实验得以证实。希望有助于读者编写出在提高执行速度和减小代码尺寸方面更高效的C源代码。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

在这篇文章中,小编将对CPU中央处理器的相关内容和情况加以介绍以帮助大家增进对CPU中央处理器的了解程度,和小编一起来阅读以下内容吧。

关键字: CPU 中央处理器 晶圆

在桌面级处理器上,AMD多年来一直在多核上有优势,不过12代酷睿开始,Intel通过P、E核异构实现了反超,13代酷睿做到了24核32线程,核心数已经超过了锐龙7000的最大16核。在服务器处理器上,AMD优势更大,64...

关键字: AMD CPU Intel EUV

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭