打印
[应用方案]

提升单片机代码执行效率

[复制链接]
楼主: chenci2013
手机看帖
扫描二维码
随时随地手机跟帖
21
pixhw| | 2025-5-13 20:18 | 只看该作者 回帖奖励 |倒序浏览
数组在访问速度上通常比链表更快              

使用特权

评论回复
22
zhengshuai888| | 2025-5-14 07:52 | 只看该作者
一个好的软件逻辑架构设计是前提

使用特权

评论回复
23
yeates333| | 2025-5-14 22:25 | 只看该作者
使用左移、右移替代乘除法,可以显著提高运算速度。

使用特权

评论回复
24
lidi911| | 2025-5-15 07:50 | 只看该作者
编译器设置不是关键因素,重要的还是有个好的架构设计。

使用特权

评论回复
25
vivilyly| | 2025-5-15 09:43 | 只看该作者
将关键代码或实时性要求较高的算法放在RAM中运行,可以提高执行速度。

使用特权

评论回复
26
youtome| | 2025-5-15 11:32 | 只看该作者
C语言里选择变量的数据类型很讲究,变量的数据类型过小满足不了程序的要求,变量的数据类型过大会占用太多的RAM资源。

使用特权

评论回复
27
alvpeg| | 2025-5-15 13:19 | 只看该作者
选择合适的数据类型以减少内存占用和访问时间。例如,使用uint8_t代替int,如果数据范围允许。

使用特权

评论回复
28
chenci2013|  楼主 | 2025-5-15 15:09 | 只看该作者
对于32位的数据,要分出其中的四个字节,常用的方式是与运算。

使用特权

评论回复
29
wilhelmina2| | 2025-5-15 16:56 | 只看该作者
对于频繁调用的简单函数,可以考虑使用内联函数,但要注意代码膨胀问题

使用特权

评论回复
30
zerorobert| | 2025-5-15 18:41 | 只看该作者
函数调用会带来额外的开销,如入栈出栈时间。
尽量减少不必要的函数调用,对于频繁调用的简单函数,可以考虑使用内联函数。但要注意,过度使用内联函数可能导致代码膨胀,需根据具体情况合理使用。

使用特权

评论回复
31
yorkbarney| | 2025-5-15 20:23 | 只看该作者
用定时器代替软件延迟,以提高时间精度和效率。

使用特权

评论回复
32
wilhelmina2| | 2025-5-15 22:15 | 只看该作者
部分单片机具备硬件乘法器、DMA

使用特权

评论回复
33
huquanz711| | 2025-5-16 08:18 | 只看该作者
执行效率不是靠设置编译器优化等级,而是一开始就有个好的顶层架构设计。

使用特权

评论回复
34
pmp| | 2025-5-16 11:08 | 只看该作者
通过代码复用和模块化,避免在程序中出现重复的代码段。
使用函数封装重复的操作,减少代码冗余,提高执行效率。

使用特权

评论回复
35
robertesth| | 2025-5-16 13:03 | 只看该作者
许多现代单片机都内置了硬件乘法器,可以大大加快乘法运算的速度。
在编写代码时,应尽量利用这些硬件资源。

使用特权

评论回复
36
tifmill| | 2025-5-16 14:55 | 只看该作者
多层循环嵌套会使时间复杂度大幅增加,应尽量减少嵌套层数。若能通过单层循环完成任务,就不要使用多层循环。

使用特权

评论回复
37
yeates333| | 2025-5-16 16:36 | 只看该作者
浮点运算通常比整数运算慢得多。              

使用特权

评论回复
38
pl202| | 2025-5-16 18:25 | 只看该作者
在代码里,若多次使用相同的计算结果,可将其存储在变量中,避免重复计算。

使用特权

评论回复
39
linfelix| | 2025-5-16 20:07 | 只看该作者
对于短小且频繁调用的函数,可使用内联函数。内联函数在编译时会直接将函数代码插入到调用处,避免了函数调用的开销。

使用特权

评论回复
40
plsbackup| | 2025-5-16 21:50 | 只看该作者
通过合理设置中断优先级,可以确保关键任务得到及时处理,从而提高系统的响应速度。
同时,过多的中断嵌套会增加系统的复杂度和执行时间,影响效率。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则