ARM的C语言程序优化

arm和c语言编程的例子源码 arm和c语言编程的例子源码超好超好超好!!!!! 立即下载
2007-1-25 19:07:00
ARM的C语言程序优化

  • 数据类型
    • 存放在寄存器中的局部变量(尤其是循环变量)应尽可能使用32位数据类型int(=long),8位变量不节省任何空间和时间;
    • 即使传输一个8位数据,函数参数和返回值使用32位类令会更有效;
    • 能用指针递增寻址就不用数组下表递增寻址a=data[i++]不如a=*(data++);
    • 除法运算使用无符号数更快;
    • 存放在存储器中的数组和全局变量,尽可能使用小尺寸数据类型;
    • short型数组尽量避免使用数组基地址的偏移量,因为LDRH指令不支持偏移寻址;
    • 存储器变量和寄存器变量相互赋值时使用显式类型转换,其他情况下避免不必要的类型转换;
  • 循环结构
    • 采用减计数循环比增计数循环更好,终止条件尽量写 i != 0 ;循环变量起始值是变量且不等于0的情况下用do-while循环更优(终止条件在后);
    • 若循环体过于简单,比如少于4个周期,可展开循环体(重复写几遍循环体代码),以免循环体代码还不如循环本身执行周期长;
    • 尽量限制函数内部循环所用局部变量的数据,最多不要超过12个,这样编译器就可以把他们都分配给ARM寄存器;
  • 函数调用
    • 尽量限制函数的参数,不要超过4个。可以将几个相关参数组织在一个结构体中;
    • 把较小的被调函数和调用函数放在一个文件中,并先定义再调用;
    • 对性能影响较大的重要函数可使用_inline进行内联;
  • 指针别名
    • 建立一个新的局部变量来保存包含存储器访问的表达式,这样可以保证只对这个表达式求一次值,例如int a=data[n];b+=a;c+=a; 比b+=data[n];c+=data[n];好
    • 避免使用局部变量的地址,否则对这个变量的访问效率会比较低;
  • 结构体安排
    • 结构体元素要按照元素从小到大排序;
    • 避免使用很大的结构体,可以用层次化的小结构体来代替;

注:针对ARMv4以上版本

 
ARM程序C语言实例8个 ARM程序C语言实例8个,学习ARM的不错资源!!! 立即下载

相关推荐

arm程序设计优化的一些方法

arm程序设计中进行优化的原因、方式及一些常见方式的示例代码。

arm程序设计优化

<br />程序优化是指软件编程结束后,利用软件开发工具对程序进行调整和改进,让程序充分利用资源, 提高运行效率, 缩减代码尺寸的过程。按照优化的侧重点不同, 程序ARM优化可分为运行速度优化和代码尺寸优化。运行速度优化是指在充分掌握软硬件特性的基础上, 通过<br />应用程序结构调整等手段来降低完成指定任务所需执行的指令数。在同一个处理器上, 经过速度优化的程序比未经优化的程序在完成指定任务时所需的时间更短,即前者比后者具有更高的运行效率。代码尺寸优化是指,采取措施使应用程序在能够正确完成所需功能的前提

spanthrive的专栏 694

基于ARM的C语言程序

基于ARM的C语言程序,源代码

针对ARM处理器的C语言优化

这是一篇读书笔记:《ARM嵌入式系统开发——软件设计与优化》 稍后记得将前边贴出的代码照此规则处理一遍! 数据类型优化: 1.局部变量类型尽量申明为32位甚至是64位,来避免寄存器(32位)装载数据时进行位扩展,并减少编译器可能增加的边界检查代码; 2.访问数组的时候,尽量使用指针增量而不是数组下标(避免产生额外的指令); 3.函数的参数和返回值使用int类型(而不是8位或者16位)更有效,避...

同志,我还能抢救一下! 676

android 数据库锁的问题

最近在项目中遇到一个错误: 12-26 17:29:10.501 32592 32644 W SQLiteConnectionPool: The connection pool for database '***.db' has been unable to grant a connection to thread 1378 (thread-pool-0) with flags 0x2 for...

低调的成长 2903

candence layout快捷键

摁住鼠标左键再框选:选中 摁住鼠标右键再框选:放大 选中之后,滚动鼠标滚轮进行放大缩小。 F:回到全局 shift+V:缩小 键盘的箭头:移动视图 F1:显示帮助文档Candence help F2:保存 点击r,画出矩形时不双击鼠标,点击F3,可以设置尺寸。 Creat-Shape-Path Creat-Wiring-Bus:画多根线。F3设置线宽、间距等。 选中金属后,Shift+G画保护环guard ring。F3可以设置距离金属的间距、保护环的形状。 Path和Rectang

weixin_45861827的博客 2655

关于ARM的C语言优化

关于ARM的C语言优化      终于体会到优化程序有多么的痛苦,写代码简直就成了扫地雷,一不注意恐怕就炸出某个性能陷阱了。没办法,谁叫这就是所谓的资源受限。突然想起曾经在21IC上看过的一编东西,苦劝大家千万千万别搞嵌入式,看来这的有点道理。无奈,一只脚已经进泥潭了,硬着头皮先挣扎一会吧。     今天看书的总结如下:C数据类型1. C语言的程序优化与编译器和硬件系统都有关系

864

Python实现微信PC端聊天记录自动化监听与智能回复

本文详细介绍了如何使用Python实现微信PC端聊天记录的自动化监听与智能回复。通过win32api和uiautomation库,模拟人工操作,实时监控聊天窗口并抓取新消息。文章重点讲解了核心代码逻辑、环境搭建步骤,并提供了实现关键词触发自动回复的完整方案,旨在提高工作效率与信息管理自动化水平。

weixin_29092031的博客 346

ARM程序设计优化

<br />程序优化是指软件编程结束后,利用软件开发工具对程序进行调整和改进,让程序充分利用资源, 提高运行效率, 缩减代码尺寸的过程。按照优化的侧重点不同, 程序ARM优化可分为运行速度优化和代码尺寸优化。运行速度优化是指在充分掌握软硬件特性的基础上, 通过<br />应用程序结构调整等手段来降低完成指定任务所需执行的指令数。在同一个处理器上, 经过速度优化的程序比未经优化的程序在完成指定任务时所需的时间更短,即前者比后者具有更高的运行效率。代码尺寸优化是指,采取措施使应用程序在能够正确完成所需功能的前提

jonsenwu的专栏 661

学习Fidder主要掌握的技术——流量篡改

本文介绍了Fiddler工具的三种常用调试方法:1)本地映射-通过保存修改JSON响应文件实现接口数据模拟;2)Composer接口调试-通过修改请求参数快速测试接口异常处理;3)断点调试-在请求/响应过程中拦截并修改数据。这三种方法分别适用于前端开发、接口测试和健壮性验证等场景,能够有效提高调试效率。操作步骤包括保存响应、修改数据、配置规则等关键环节,并提供了详细的界面操作指引。

2301_79022773的博客 353

用Matlab和CVX搞定原子范数最小化:一个信号处理小白的避坑实践

本文详细介绍了如何使用Matlab和CVX实现原子范数最小化(Atomic norm minimization),特别适合信号处理初学者。从CVX安装配置、核心代码解析到实战中的典型问题与解决方案,提供了全面的避坑指南。通过具体案例展示了原子范数在频率估计和DOA估计中的优势,并给出性能优化策略和可视化方法。

weixin_28731231的博客 232

基于arm的c语言程序设计,基于ARM系统中C语言程序设计优化

基于 系统中 语言程序设计优化邹 小青 顺德职业技术学 院 广 东 佛 山【摘 要】是一种 高性能、低 功耗 的 位 嵌入式处理器 系列 。 目前在各种嵌入 式系统 中 获得 了广泛 的应用 。本文就 系统 中 语 言程序 的设 计优化 进行 了探 讨,详 细阐述 了 架构软件设计 的基本原 则,并介绍 了 语言程序设计优化的要点和步骤,以期 能为更好地进行 语 言程序设 计优 化而提 供参考借...

weixin_34180452的博客 564

SAP ABAP ALV表格实战:5分钟搞定单元格下拉框配置(附完整代码)

本文详细介绍了在SAP ABAP开发中如何快速配置ALV表格的单元格下拉框功能,通过5分钟实战教程帮助开发者掌握关键步骤。文章包含完整的ABAP代码示例,涵盖下拉值定义、字段目录配置及ALV控件绑定等核心操作,特别适合需要实现财务系统费用类型选择或采购系统物料分类等场景的开发者参考。

weixin_28331555的博客 111

[ARM 汇编]高级部分—内联汇编与C语言混合编程—3.1.3 使用内联汇编优化C语言程序

在本节中,我们将学习如何使用ARM内联汇编来优化C语言程序,提高代码的执行效率。我们将通过实例和案例代码来详细介绍如何利用内联汇编来优化C语言程序。

Andy0214的专栏 6230

农作物生长模型:数学建模与实战案例

在本篇博客中,我们介绍了农作物生长模型的基本原理,并结合Matlab代码和实战案例,演示了如何应用数学建模技术进行农作物生长模型的研究与应用。农作物生长模型在农业领域具有重要意义,希望本篇博客能帮助读者更好地理解农作物生长模型的原理和应用,并在实际农业生产中取得更好的效果。

YOLO 2734

SAP Joule Studio 能不能用来开发 skill:可以,但它开发的是 Joule 语境下的企业级 skill,而不是替代所有 SAP 开发技术的万能锤

SAP Joule Studio 专为开发Joule技能(Joule skills)而设计,这些技能是执行确定性单步业务动作的原子能力。它通过自然语言接口连接SAP和非SAP系统,适合处理边界清晰、可审计的任务(如创建工单、查询发票)。Joule技能作为会话式业务编排层,与ABAP、CAP等核心技术互补而非替代。开发支持低代码和专业代码两种方式,并具备企业级治理能力,但需要相应的BTP订阅和技术基础。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 202

优化设计c语言,嵌入式软件设计:ARM C程序优化设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我们立即下架或删除。简介:代码优化的思路大连理工大学 赖晓晨代码优化:时间优化、空间优化代码优化与程序的可读性:矛盾需要优先优化的代码对象:频繁使用的代码优化概述例:清除从指针data开始的N个字节空间...

weixin_30093159的博客 220

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

arm连续读优化 c语言,关于ARM的C语言优化

C数据类型1. C语言的程序优化与编译器和硬件系统都有关系,设置某些编译器选项是最直接最简单的优化方式。在默认的情况下,armcc是全部优化功能有效的,而GNU编译器的默认状态下优化都是关闭的。ARM C编译器中定义的char类型是8位无符号的,有别于一般流行的编译器默认的char是8位有符号的。所以循环中用char变量和条件 i ≥ 0时,就会出现死循环。为此,可以用fsigned - char...

weixin_34766430的博客 265

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【ARM 嵌入式 C 入门及渐进 9 --- 代码优化的经验与方法】

实际上,在我的项目中,我使用了很多优化ARM编程的方法(该项目是基于ARM平台的),也使用了很多互联网上面的方法。但并不是所有文章提到的方法都能起到很好的作用。所以,我对有用的和高效的方法进行了总结收集。同时,我还修改了其中的一些方法,使他们适用于所有的编程环境,而不是局限于ARM环境。没有这一点,所有的讨论都无从谈起。程序优化最重要的就是找出待优化的地方,也就是找出程序的哪些部分或者哪些模块运行缓慢亦或消耗大量的内存。只有程序的各部分经过了优化,程序才能执行的更快。

CodingCos的博客 1254

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

关于ARM的C语言优化(转载)

关于ARM的C语言优化(转载)(2009-10-20 09:34:02)转载标签:杂谈   终于体会到优化程序有多么的痛苦,写代码简直就成了扫地雷,一不注意恐怕就炸出某个性能陷阱了。没办法,谁叫这就是所谓的资源受限。突然想起曾经在21IC 上看过的一编东西,苦劝大家千万千万别搞嵌入式,看来这的有点道理。无奈,一只脚已经进泥潭了,硬着头皮先挣扎一会吧。      今天看书的总结如下:C数据类型1. C语言的程序优化与编译器和硬件系统都有关系,设置某些编译器选项是最直接最简单的优化方式。在默认的情况下,arm

jonsenwu的专栏 656

arm平台下linux c语言编程,简单分析针对ARM平台的C语言程序的编译问题

我们知道在C语言编译时,有那么几个常用的优化编译选项,分别是-O0,-O1,-O2,-O3以及-Os。之前一直觉得既然是优化选项,顶多是优化一下逻辑,提高一些效率或者减少一下程序大小而已。很少会觉得它们会影响程序的最终结果。直到最近在ARM平台上发现一个程序里的一个bug,才觉得这些优化选项有时候也没那么智能。或者说针对ARM平台,还没有那么智能。首先看这么一段程序,此程序是我将问题简单化的程序:...

weixin_39663593的博客 183

ARM程序优化及其在嵌入式TCP/IP协议实现中的应用

摘要:本文从ARM结构的特点出发,根据程序优化的基本原则,阐述了面向ARM的C语言程序优化设计的一些基本原则和方法及其在TCP/IP协议实现中的应用。 关键词:程序优化;嵌入式系统;ARM结构;TCP/IP协议 随着嵌入式技术的发展,人们对系统的智能化、小型化的要求也越来越高。基于ARM结构的微处理器以其高性能、低功耗、低价格等方面的优势被广泛应用于各种电子产品,特别是一些高端

记录点滴,静心学习 978
上一篇: 在定点DSP上实现DCT压缩
下一篇: WIN32多线程程序设计学习笔记[转]
JoeySparkman
博客等级 码龄22年 11粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值