==============================================================================================================================
微處理器一般用于特定環境和特定用途,出于成本、功耗和體積的考慮,一般都要求盡量節省使用資源,并且,由于微處理器硬件一般都不支持有符號數、浮點數的運算,且運算位有限,因此,分配變量時必須仔細。另外要說明的是,速度和存儲器的消耗經常是2個不可兼顧的目標,在多數情況下,編程者必須根據實際情況作出權衡和取舍。 需要注意的事項如下:
1) 通常在滿足運算需求的前提下,盡量選擇為變量定義字節少的數據類型。 比如最常用的 int和 char, int是 16 位的, char 是8位的,如果沒有必要,不要使用 int,而且使用 char 也最好使用 unsigned char。運行時,可以在變量窗口看到,使用類型為unsigned char 的變量是 16 進制的格式,而使用 int 的是十進制格式,如果 char 沒有定義為 unsigned,會出現負號,如果沒有必要的話,在 430 中是不需要負數的。
2) 盡量不用過長的數據類型,如 long、long long和 double .
3) MSP430的 C編譯器不支持位尋址,所以運算中盡量減少位操作,對于只有“是”和“否”的變量,如果RAM 容量允許,則可分配為 unsigned char類型,可提高運算速度。如果分配為某字節的某個位,可以減少存儲器的消耗,但是會降低運算速度 .
4) 避免使用浮點數,盡量使用定點數進行小數運算。如果必須使用浮點數,則盡量用 32 位的 float,而不是 64位的 double .
5) 盡量將變量分配為無符號數據類型
6) 對于指針變量,如果聲明后其值不再改變,則聲明為 const 類型,這樣編譯器編譯時能更好的優化生成的代碼
7) 盡可能的使用局部變量而非全局變量或者靜態變量(static) 。這樣有利于編譯器編譯時更好的優化生成的代碼
8) 避免對局部變量使用 &取地址符。因為這樣會使編譯器無法把此變量放在 CPU的寄存器中,而是放在RAM中,從而失去了優化的機會
9) 僅在模塊內使用的變量聲明為 static,有利于優化代碼
10) 如果堆??臻g有限,盡量減少函數調用的層次和遞歸調用
================================================
上一篇:未使用的I/O口與低功耗,抗干擾處理的關系
下一篇:MSP實時輸出占空比可調的pwm波形
推薦閱讀
史海拾趣
為了更好地滿足客戶需求,3D PLUS公司不僅提供硬件設備,還積極構建3D生態圈。公司推出了一系列3D個性化產品,包括3D全彩婚紗人像、3D夢幻水晶擺件等,這些產品獨具潮流氣息,深受市場歡迎。同時,公司還提供軟件開發、定制開發等服務,幫助客戶在移動端構建感性的3D商業場景,實現O2O移動營銷的有效聯動。這些舉措不僅豐富了公司的產品線,也為客戶提供了全方位的3D解決方案。
隨著技術的不斷發展和市場的不斷擴大,3D PLUS公司開始將目光投向國際市場。公司積極參加國際電子行業的展會和交流活動,與國際同行進行技術合作和交流,不斷提升自身的技術水平和國際影響力。同時,公司還積極拓展海外銷售渠道,將3D技術和產品推向全球市場,為全球客戶提供高效、便捷的3D解決方案。這些努力不僅提升了公司在國際市場的知名度,也為公司的長期發展奠定了堅實的基礎。
以上五個故事均基于3D PLUS公司在電子行業中的實際發展情況編寫,旨在客觀描述公司在3D技術領域的成長與進步。
隨著公司業務的不斷發展,宇陽科技在產能擴張和全球布局方面也取得了顯著進展。公司在深圳、東莞、安徽等地建立了多個生產基地,引進了先進的生產線和檢測設備,確保了產品的高品質和穩定供應。同時,宇陽科技還積極拓展海外市場,與全球多家知名企業建立了長期穩定的合作關系。
在保持核心技術優勢的同時,雙嶺電子也積極探索跨界合作的可能性。通過與國內外知名企業和研發機構的合作,公司成功將場效應半導體器件應用于傳感器、儀器儀表和自動化控制等領域。這種跨界合作不僅拓寬了公司的市場渠道,也提升了產品的附加值。同時,雙嶺電子還積極參與各類行業展會和交流活動,與業界同行建立了良好的合作關系。
在1924年,大金工業株式會社成功合成了碳氟化合物,并在隨后的18年里,這項技術逐漸成熟并開始批量生產。這一突破性的技術不僅為大金在化學領域奠定了堅實的基礎,也為公司后續在家用空調市場的進軍提供了技術支持。
Deltron公司成立于XXXX年,初期以生產基礎電子元器件為主。創始人XXX憑借其對電子技術的深刻理解和對市場趨勢的敏銳洞察,帶領團隊進行了一系列技術創新。通過引進先進的生產設備和研發技術,Deltron成功開發出了一系列具有競爭力的產品,逐漸在電子行業中嶄露頭角。
呵呵,一點個人建議哦!現在學習單片機的人是越來越多,EEworld在這方面的推廣的功勞那也是非常多的?。? 單片機的學習者一般都是從MC51的8位機學習起來的,但是隨著信息社會的發展。8位的單片機畢竟也有一定的局限性,所以16位的,32位的單片機也 ...… 查看全部問答∨ |
最近一直被一個問題困擾 我的驅動一用createFile訪問就會藍屏~~ 我的CreateFile的第一個參數是符號連接名+管道號: \\\\.\\\\\\\\Sym ...… 查看全部問答∨ |
socket函數原型為:int socket(int domain, int type, int protocol);domain指明所使用的協議族,通常為PF_INET,表示互聯網協議族(TCP/IP協議族);type參數指定socket的類型:SOCK_STREAM 或SOCK_DGRAM,Socket接口還定義了原始Sock ...… 查看全部問答∨ |
|
1,插上USB線,OS會把SD卡在PC機上彈出;插上電源線,OS只會充電。請問OS如何區分的? 2,在PC機上卸載掉SD卡,OS能否收到通知?… 查看全部問答∨ |
|
今天收到了免費試用eZ430-RF2500板子,做工非常精細,相當不錯得板子,由于沒有攝像頭沒發傳圖片,等改天再上傳?,F在得趕快學430,又一個新得芯片,抓緊努力趕,希望能在一個月里有所收獲,盡力把板子留下,也希望高手幫忙,有不會得還要麻煩大家 ...… 查看全部問答∨ |
我想要實現如下功能:要用stm32自帶的AD測量交流信號的一個周波32個點。思路是這樣子的:先用TIM4來檢測交流信號的過零點,我準備用TIM4的捕獲功能,當信號有上升沿時,捕獲,此時會進入中斷程序(在定時器配置的時候已經開了捕獲中斷),在中 ...… 查看全部問答∨ |
小弟最近剛開始學習avr的單片機,手上有一塊mega128的開發板 在學習的過程中,發現書中總是提到“mega103兼容模式下”。對此我不是很明白 誰能準確的告訴我一下,什么叫103兼容模式呀?為什么要設計兼容mega103 模式啊… 查看全部問答∨ |