女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

讓單片機(jī)代碼性能起飛的七大技巧

無際單片機(jī)編程 ? 來源:無際單片機(jī)編程 ? 2024-11-16 10:21 ? 次閱讀

單片機(jī)的程序比軟開少一些,真正想編寫出高效的代碼,還是要積累很多年的。

在做研發(fā)工程師的10年里,我經(jīng)歷過幾個(gè)公司,看過很多工程師寫的代碼,但真正能讓我跪著看完的,極少。哪怕是大廠工程師,也會(huì)有讓人笑掉大牙的代碼。

高效的背后,有很多學(xué)問,需要有一定的數(shù)學(xué)功底,對(duì)編譯器有較深的了解,懂匯編

具備這些能力,寫出來的代碼,才能讓cpu執(zhí)行這段代碼所花費(fèi)的時(shí)間,以及占用的ROMRAM資源更少。

然而,如果把項(xiàng)目每個(gè)細(xì)節(jié),都優(yōu)化到高效的程度,花費(fèi)的時(shí)間,是平時(shí)的兩倍。

所以,我們?cè)谧鲰?xiàng)目時(shí),一般只優(yōu)化核心功能,才能趕上項(xiàng)目的進(jìn)度,除非經(jīng)驗(yàn)相當(dāng)豐富。

下面分享幾點(diǎn)高效代碼的技巧:1.使用位操作代替算術(shù)操作,因?yàn)槲徊僮鞲臁?/p>

40e8cb68-9080-11ef-a511-92fbcf53809c.png

還有就是用左移、右移替代乘除法。 比如a=b*256,可以改成a = b<<8 比如a=b/256,可以改成a = b>>8

2.避免不必要的操作去除代碼中不必要的操作,如多余的變量賦值、函數(shù)調(diào)用等。

40fe4272-9080-11ef-a511-92fbcf53809c.png

3.控制數(shù)據(jù)類型大小特別是盡量別用float,浮點(diǎn)運(yùn)算通常需要更多的CPU周期和內(nèi)存空間,因?yàn)楦↑c(diǎn)數(shù)的表示和運(yùn)算比整數(shù)復(fù)雜,除非單片機(jī)內(nèi)置了硬件浮點(diǎn)單元(FPU)。 能用unsigned就不用signed,無符號(hào)整數(shù)的運(yùn)算可能比有符號(hào)整數(shù)更快,因?yàn)椴恍枰幚矸?hào)位。 能用char就不用int,較小的數(shù)據(jù)類型在處理和傳輸時(shí)更快,因?yàn)樗鼈冋加玫膬?nèi)存和帶寬更少。特別對(duì)于存儲(chǔ)大量數(shù)據(jù)的數(shù)組或緩沖區(qū),使用 char 類型可以顯著減少內(nèi)存占用。

4.利用硬件資源比如說STM32單片機(jī),可以利用DMA傳輸數(shù)據(jù),減少CPU負(fù)載。 5.代碼重用 一些重復(fù)的代碼,通過函數(shù)或宏來重用代碼。

4107bfdc-9080-11ef-a511-92fbcf53809c.png

6.自加、自減指令用i--、i-=1、i++、i+=1、去替代i = i-1,i=i+1的操作,有些編譯器對(duì)前者進(jìn)行了優(yōu)化,效率更高。 7.優(yōu)化算法以計(jì)算1到100的和為例。 我們可能會(huì)首先想到使用循環(huán),來寫程序:

4116e386-9080-11ef-a511-92fbcf53809c.png

這種方法雖然直觀,但在效率上可能不是最優(yōu)的。那怎么去優(yōu)化?這時(shí)候就要考驗(yàn)工程師的數(shù)學(xué)功底了。 可以根據(jù)等差數(shù)列求和公式,1到100的和可以表示為:

4125aeac-9080-11ef-a511-92fbcf53809c.png

n是序列的最后一項(xiàng),即100。將這個(gè)公式應(yīng)用到代碼中:

413879d8-9080-11ef-a511-92fbcf53809c.png

對(duì)以上兩種實(shí)現(xiàn)代碼的總結(jié):盡管程序都能得到相同的結(jié)果,但是第二種方法在運(yùn)行效率上明顯優(yōu)于第一種。因?yàn)樗苊饬搜h(huán)的開銷,直接通過數(shù)學(xué)公式計(jì)算出結(jié)果。 在編寫單片機(jī)代碼時(shí),盡量通過數(shù)學(xué)方法,或其他算法技巧,提高程序的執(zhí)行效率。 這不僅可以減少了CPU的計(jì)算時(shí)間,還能減少程序占用的內(nèi)存空間,從而提高整體性能。

插個(gè)題外話,之前很多老鐵問我,數(shù)學(xué)不好,可以學(xué)單片機(jī)嗎?

我覺得這就是一個(gè)很好的例子,數(shù)學(xué)不是門檻,而是天花板。

第一種實(shí)現(xiàn)方式,是小學(xué)算數(shù)低,但效率低。

第二種,則需要一定的數(shù)學(xué)能力,但效率高。

那同樣都能實(shí)現(xiàn)功能,效率低點(diǎn)就低點(diǎn)唄,有什么所謂?

其實(shí)這個(gè)會(huì)間接影響到硬件成本。

比如數(shù)學(xué)功底好的,可以用低端單片機(jī)去實(shí)現(xiàn)功能,而數(shù)學(xué)功底不好的,寫出來代碼效率低,則需要性能更強(qiáng)的單片機(jī)支撐。

不過,很多產(chǎn)品,對(duì)效率的要求并沒這么苛刻,哪怕用第一種方式,照樣沒問題。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6062

    文章

    44915

    瀏覽量

    646698
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3820

    瀏覽量

    82384
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4886

    瀏覽量

    70240

原文標(biāo)題:讓單片機(jī)代碼性能起飛的七大技巧,從位操作到算法優(yōu)化

文章出處:【微信號(hào):nanshuqg,微信公眾號(hào):無際單片機(jī)編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    全球七大主流單片機(jī)詳解

    單片機(jī)是Atmel公司推出的較為新穎的單片機(jī),其顯著的特點(diǎn)為高性能、高速度、低功耗。它取消機(jī)器周期,以時(shí)鐘周期為指令周期,實(shí)行流水作業(yè)。
    發(fā)表于 11-27 17:22 ?7.8w次閱讀

    《提高測(cè)量精度的七大技巧》

    偶然間在其他網(wǎng)站上看到的《提高測(cè)量精度的七大技巧》資源包,覺得還不錯(cuò),挺有用的,大家可以去看看!資源包將討論提高測(cè)量精度的七大技巧,涉及傳感器技術(shù),隔離屏蔽技術(shù),硬件指標(biāo)考量,后端信號(hào)處理等
    發(fā)表于 08-05 18:00

    轉(zhuǎn): 七大主流單片機(jī)最細(xì)剖析

    。這七大主流單片機(jī)到底哪家強(qiáng)?相信現(xiàn)在的你應(yīng)該知道了吧~~也有朋友會(huì)說瑞薩單片機(jī)是銷量最大的,且在車載電子行業(yè)應(yīng)用較多,穩(wěn)定性好,但是我個(gè)人不怎么喜歡小日本的產(chǎn)品,所以也沒用過瑞薩的東西。這個(gè)因人而異
    發(fā)表于 06-12 11:10

    七大主流單片機(jī)最細(xì)剖析

    單片機(jī)現(xiàn)在可謂是鋪天蓋地,種類繁多,讓開發(fā)者們應(yīng)接不暇,發(fā)展也是相當(dāng)?shù)难杆伲瑥纳鲜兰o(jì)80年代,由當(dāng)時(shí)的4位8位發(fā)展到現(xiàn)在的各種高速單片機(jī)…… 各個(gè)廠商們也在速度、內(nèi)存、功能上此起彼伏,參差不齊
    發(fā)表于 07-05 13:05

    業(yè)界七大主流單片機(jī)最細(xì)剖析

    渴望超低功耗,MSP430肯定不會(huì)你失望;如果你想支持國產(chǎn),STC會(huì)你興奮…  這七大主流單片機(jī)到底哪家強(qiáng)?相信現(xiàn)在的你應(yīng)該知道了吧~~  也有朋友會(huì)說瑞薩
    發(fā)表于 05-26 19:34

    VS-RK3399超強(qiáng)七大性能優(yōu)勢(shì)

    RK3399芯片資料簡(jiǎn)介,RK3399硬件開發(fā)資料VS-RK3399超強(qiáng)七大性能優(yōu)勢(shì)
    發(fā)表于 02-05 07:55

    51單片機(jī)應(yīng)用實(shí)例及源代碼

    51單片機(jī)應(yīng)用實(shí)例及源代碼
    發(fā)表于 12-16 12:15 ?107次下載
    51<b class='flag-5'>單片機(jī)</b>應(yīng)用實(shí)例及源<b class='flag-5'>代碼</b>

    單片機(jī)教程:單片機(jī)的特殊功能寄存器

    單片機(jī)教程:單片機(jī)的特殊功能寄存器 通過前面的學(xué)習(xí),我們已知單片機(jī)的內(nèi)部有ROM、有RAM、有并行I/O口,那么,除了這些東西之外,單片機(jī)
    發(fā)表于 05-15 23:01 ?2493次閱讀
    <b class='flag-5'>單片機(jī)</b>教程<b class='flag-5'>七</b>:<b class='flag-5'>單片機(jī)</b>的特殊功能寄存器

    單片機(jī)入門教程第14課-單片機(jī)指令(

    單片機(jī)入門教程第14課-單片機(jī)指令()  條件轉(zhuǎn)移指令  條件轉(zhuǎn)移指令是指在滿足一定條件時(shí)進(jìn)行相對(duì)轉(zhuǎn)移。  1、判A內(nèi)容是否為
    發(fā)表于 01-07 16:14 ?1586次閱讀
    <b class='flag-5'>單片機(jī)</b>入門教程第14課-<b class='flag-5'>單片機(jī)</b>指令(<b class='flag-5'>七</b>)

    51單片機(jī)與串口通信代碼

    51單片機(jī)與串口通信的代碼設(shè)計(jì)
    發(fā)表于 11-09 17:47 ?180次下載

    七大主流單片機(jī)優(yōu)缺點(diǎn)比較

    就是一般常用的單片機(jī)的比較,有優(yōu)點(diǎn)和缺點(diǎn)。
    發(fā)表于 06-17 15:42 ?2次下載

    章AVR單片機(jī)的應(yīng)用

    章AVR單片機(jī)的應(yīng)用
    發(fā)表于 09-21 11:41 ?4次下載
    第<b class='flag-5'>七</b>章AVR<b class='flag-5'>單片機(jī)</b>的應(yīng)用

    單片機(jī)系統(tǒng)開發(fā)設(shè)計(jì)的七大規(guī)則

    單片機(jī)的能力的關(guān)鍵就在軟件設(shè)計(jì)者編寫的軟件上。只有充分地了解到單片機(jī)的能力,才不會(huì)做出“冗余”的系統(tǒng)設(shè)計(jì)。而采用許多的外圍芯片來實(shí)現(xiàn)單片機(jī)能實(shí)現(xiàn)的功能。這樣做,即增加了系統(tǒng)成本,也可能會(huì)降低了系統(tǒng)的可靠性。
    發(fā)表于 11-19 15:35 ?3937次閱讀

    使用51單片機(jī)驅(qū)動(dòng)段LED數(shù)碼管的代碼免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)驅(qū)動(dòng)段LED數(shù)碼管的代碼免費(fèi)下載。
    發(fā)表于 07-02 17:42 ?9次下載
    使用51<b class='flag-5'>單片機(jī)</b>驅(qū)動(dòng)<b class='flag-5'>七</b>段LED數(shù)碼管的<b class='flag-5'>代碼</b>免費(fèi)下載

    新唐單片機(jī)代碼評(píng)審總結(jié)

    昨晚上,我們一個(gè)同事組織了一個(gè)小會(huì)議,大家一起討論了一個(gè)項(xiàng)目的單片機(jī)代碼,這個(gè)單片機(jī)用的是新唐單片機(jī),期間大家也討論了一些問題,總結(jié)一下,希望對(duì)寫
    發(fā)表于 12-01 16:06 ?15次下載
    新唐<b class='flag-5'>單片機(jī)</b><b class='flag-5'>代碼</b>評(píng)審總結(jié)