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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
想要效率提高,有哪些方面值得去优化?还是说直接用汇编?4 K* l3 S4 b+ _) e' D( t# |

该用户从未签到

2#
发表于 2022-9-28 11:07 | 只看该作者
1是算法问题,代码的重用,合理安排内存与代码量的问题。3 o% E  T; j( [# _+ n: ~( z/ S
2是尽可能用底层来操作,通俗一点就是直接对寄存器进行操作。
" k- K' C# v: l9 c9 Q& i3是尽可能用OS,合理分配CPU的占用。( A  s$ j1 _* C
4合理利用中断、DMA、定时器等外设来分担CPU的负载。
0 ~- g& v- d7 X5 E最好能多阅读优秀的代码,多学习借鉴。当然优化C的效率,要建立在你需要长期使用这款MCU,如果是一过性的,那时间成本也要考虑。

该用户从未签到

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

该用户从未签到

4#
发表于 2022-9-28 14:15 | 只看该作者
用C语言进行单片机程序设计是单片机开发与应用的必然趋势。( S' @4 Y& @8 m- C! Y; C
如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。
7 b+ r7 o1 p& W$ L/ ~5 _在今后编程的时候,使用编译效率最高的语句。各家的C编译器都会有一定的差异,所以编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间,仅比以汇编语言编写的同样功能程度长5-20%。

该用户从未签到

5#
发表于 2022-9-28 14:19 | 只看该作者
对于复杂而开发时间紧的项目时,可以采用C语言,  o3 c/ u' V- [  O6 g6 J7 r
但前提是要求你对该MCU系统的C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。3 m- |: y. y7 n" ~% g+ f/ q' Z$ A
虽然C语言是最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很多,反而导致执行效率低于汇编语言。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-30 05:56 , Processed in 0.109375 second(s), 24 queries , Gzip On.

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

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

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