找回密码
 注册
关于网站域名变更的通知
查看: 324|回复: 4
打印 上一主题 下一主题

单片机开发,怎么提高C语言编程代码的效率?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-28 09:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
想要效率提高,有哪些方面值得去优化?还是说直接用汇编?% P; F% K: W$ Z: A

该用户从未签到

2#
发表于 2022-9-28 11:07 | 只看该作者
1是算法问题,代码的重用,合理安排内存与代码量的问题。. Q2 ~- C, |6 @) T, Y
2是尽可能用底层来操作,通俗一点就是直接对寄存器进行操作。
  a7 f: d( q% u- H& S# ^3是尽可能用OS,合理分配CPU的占用。
" i6 z) R* T, L* E5 y9 K% ^+ H4合理利用中断、DMA、定时器等外设来分担CPU的负载。
" x* U, K3 U- D( c8 C$ u3 V最好能多阅读优秀的代码,多学习借鉴。当然优化C的效率,要建立在你需要长期使用这款MCU,如果是一过性的,那时间成本也要考虑。

该用户从未签到

3#
发表于 2022-9-28 14:13 | 只看该作者
早先我们都把C语句反汇编成汇编语言,对比机器周期,然后选用效率高的语句。

该用户从未签到

4#
发表于 2022-9-28 14:15 | 只看该作者
用C语言进行单片机程序设计是单片机开发与应用的必然趋势。
3 W2 s- b5 {* k5 Z) r8 Y3 C2 ]如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。! R" S! Q# q/ X5 s
在今后编程的时候,使用编译效率最高的语句。各家的C编译器都会有一定的差异,所以编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间,仅比以汇编语言编写的同样功能程度长5-20%。

该用户从未签到

5#
发表于 2022-9-28 14:19 | 只看该作者
对于复杂而开发时间紧的项目时,可以采用C语言,
& |3 ]+ N, D2 j+ y但前提是要求你对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。: F5 j# U/ m4 F& l6 i: X5 p
虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-9 10:43 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表