嵌入式C语言程序运行效率?

流浪的农民工 2018-03-24 01:31:44
本人是做嵌入式开发的,编程语言为C,最近的测试中发现,如果在循环中频繁的调用函数去修改底层的信息,如设置GPIO的输出电平,会导致整个程序循环一次的时间被拖慢,后来经高手指导后,在设置GPIO电平操作执行前加了if判断,若果电平没有发生反转则不去重复设置。修改了程序中多个此种情况后,程序执行一个循环的时间大大提高,在这里想请教一下,为什么调用对底层寄存器的操作会如此浪费时间?同事也请高手指点一下,如何提高C代码的运行效率?谢谢大家!!!
...全文
573 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
OnePeace888 2018-03-29
  • 打赏
  • 举报
回复
贴点代码学习一下。
Saleayas 2018-03-25
  • 打赏
  • 举报
回复
去看看指令的执行周期就可以了。 IO 的指令周期相对比较长。
赵4老师 2018-03-25
  • 打赏
  • 举报
回复
无profiler不要谈效率!!尤其在这个云计算、虚拟机、模拟器、CUDA、多核 、多级cache、指令流水线、多种存储介质、……满天飞的时代!
自信男孩 2018-03-24
  • 打赏
  • 举报
回复
这种情况,提高循环的执行效率就是不去做无用的工作,既然点评没有改变,则不去设置。 估计不是设置寄存器浪费时间,而是重复(大量的重复)做设置寄存器导致的耗时多。循环次数增加本身就会增加时间复杂度。

69,336

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧