1. gzyueqian
      13352868059

      嵌入式開發:嵌入式軟件編程的五個技巧

      更新時間: 2023-02-27 07:20:25來源: 粵嵌教育瀏覽量:8599


        大多數軟件開發人員都接受過某種教育或培訓,其他人則是自學成才。但真正的編程學習是通過實踐經驗和知識交流。在編程過程中,他們會遇到有用的技術,或者在代碼審查期間從同事那里獲得建議。即使是非常有經驗的程序員也會不時收到寶貴的提示。因此,傳遞自己的經驗是非常有價值的。本文給嵌入式開發人員五個有用的建議:

        使用后將指針設置為NULL

        指針是語言中非常有用和強大的功能。但它們會導致錯誤。一個常見的錯誤是代碼使用的指針值無效。例如,如果它指的是一個已動態分配但已被放棄的內存。使用無效指針可能會產生負面影響,這種影響只有在長時間后才會變得明顯,因此很難發現。如果在使用后常規地將指針設置為NULL,則稍后的錯誤使用將導致立即發生錯誤,很容易進行本地化。

        程序員使用C中的“int”表示無符號數據

        在C語言中,int數據類型幾乎是標準的。事實上,在最初的語言定義中,它是函數的默認返回數據類型(應該是無效的,但后來才出現)。大多數C程序員傾向于選擇int作為變量,除非數據類型明顯不適合。他們真的應該選擇無符號,因為無符號的數據比有符號的數據多。最好仔細查看需要存儲的值范圍。它是未簽名還是已簽名?你需要8位、16位、32位或更多位嗎?令人驚訝的是,時間/日期計數器經常被簽名,導致Y2K錯誤。

        謹防過度完美

        軟件何時準備就緒?顯而易見的答案是,如果它提供了所有指定的函數而沒有已知的錯誤。有許多情況會危及完工:許多嵌入式開發工程師都是完美主義者,他們總是看到事情,他們可以“改進”自己的代碼。如果沒有盡可能多的關心和監督,一個項目可能會在他們手中變得糟糕。另一種不太明顯的情況是,代碼是為特定目的或項目編寫的,然后在其他地方重復使用。“建立在經驗基礎上”非常容易。“并在重用之前改進代碼。如果不小心,這將成為版本管理的噩夢。

        

        事件標志或信號是在RTOS上發送簡單邏輯信息的最有效方式

        現代RTOS,就像我們自己的Nucleus RTOS一樣,包含多種功能。由于這樣的操作系統是可擴展的,開發人員可以選擇要使用的功能,而不會因為代碼大小而丟失未使用的功能。在任何多線程設計中,任務間通信都很重要。因此,應提供各種功能,并應仔細選擇。如果一個任務只需要為另一個任務標記一個事件,那么最簡單的通信方法——事件標志或信號——可能是最有效的選擇。

        遞歸代碼看起來很優雅,但很危險

        許多數學過程可以用遞歸函數來描述,即用直接或間接調用自己的函數來描述。這可能是解決使用最少代碼的問題的一種看似優雅的方式。下面是一個簡單的例子:

        void printbase(int number, int base)

        {

        if (number >= base)

        {

        printbase(number/base, base);

        }

        printf("%X", number%base);

        }

        你明白這段代碼的作用嗎?答案很可能是“不”。這也是應該避免這種技術的原因之一。嵌入式開發人員清楚代碼的含義對于進一步的軟件維護至關重要。此外,遞歸函數非常密集地使用堆棧,這可能會使堆棧失控。堆棧溢出是非常細微的錯誤,需要進行本地化。


      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 中文乱码字幕在线观看直播 | 香港三级日本三级韩级人妇 | 久久精品99久久香蕉国产 | 亚洲一区二区师生制服 | 午夜精品褔利一区二区三区蜜桃 | 五月天Av在线进入不卡 |