嵌入式開發團隊正在盡可能快地朝著一個目標或交付,他們正試圖快速達到一個目標?以下是嵌入式系統開發人員可以遵循的幾個技巧,以使他們的系統更快地推向市場。
1、為工作使用正確的工具
你是否曾嘗試使用錯誤尺寸的螺絲刀擰緊螺絲?如果有,你很清楚發生了幾件不同的事情:
螺絲頭可能被剝掉了,以后很難取下來
必須增加額外的壓力才能獲得所需的結果
如果你剛剛使用了正確的螺絲刀尖端,則花費的時間比應該花費的時間要長得多
開發嵌入式系統也不例外!很多工程師和團隊,他們急于將產品推向市場,但又不愿意在合適的工具上花一點錢。該工具可能是:
實時操作系統
電腦
軟件堆棧
調試器
編譯器
集成開發環境 (IDE)
ETC
為了節省成本,這些團隊由于額外的時間編譯、調試和測試他們的系統而遭受巨大的生產力和金錢損失,使用跟蹤工具本應花費幾分鐘才能發現的簡單錯誤突然需要數天或數周才能發現。
2、為每個 MCU 信號添加測試點
測試點很可能是嵌入式開發人員可以添加到他們的硬件中以確保他們的系統可以輕松調試的最重要的硬件功能。測試點允許軟件開發人員訪問關鍵信號,這些信號使他們能夠窺視軟件并查看硬件級別發生的情況。如果 SD 卡或 EEPROM 設備等組件未按預期工作,開發人員需要查看通信信號以了解發生了什么。沒有它們,這一切都只是猜測,調試需要十倍的時間。
測試點不必花哨,它們可以是小過孔,而且現在不會對電路板成本產生太大影響。不要忘記在未使用的 GPIO 引腳上也放置測試點。開發人員可能會發現他們需要一些額外的輸出信號來了解他們的軟件時序。
3、開發和使用自動化測試
徹底和成功地測試嵌入式系統可能非常耗時。輕微的軟件更改可能導致不得不返回并重新運行數百個測試用例。如果團隊手動執行此操作,他們要么將大部分時間花費在測試上,要么對微小的更改不屑一顧,交叉手指并希望最好。
創建可以在每晚檢查構建的持續集成服務器上執行的自動化測試可以確保開發人員將精力集中在開發軟件而不是對其進行測試上。開發自動化測試確實需要前期的時間和精力,但長期的好處和節省是不可忽視的。
4、創建和使用硬件抽象層 (HAL)
硬件抽象層是將底層硬件與應用程序代碼分離的好方法。HAL 使嵌入式開發人員能夠編寫他們的應用程序代碼,而不必擔心他們正在開發的硬件(或者至少少考慮硬件)。低級實現隱藏在一組保持不變的標準接口(函數調用)后面。
開發人員可以創建自己負責管理的 HAL,也可以使用已經存在的 HAL。許多微控制器制造商提供 HAL,以簡化與其產品的交互。利用現有的 HAL 可以顯著節省時間,特別是如果它是合格的或行業標準的。
5、利用現有的組件和框架
加快速度的訣竅是停止一遍又一遍地重做相同的工作。嵌入式軟件開發人員喜歡在位和字節上工作,使用硬件寄存器和最低軟件級別。時代在變。不利用現有組件、庫和框架而是決定自行開發的開發團隊將被拋在后面。市場上有 100 多種不同的 RTOS,它們可以輕松適應所有可能的應用和許可方案。
當今許多嵌入式系統中常見的其他組件也是如此。創建 SD 卡、EEPROM、USB、TCP/IP 或其他常見軟件堆棧毫無意義,從頭開始既費時又昂貴。
6、使用跟蹤工具調試你的系統
對于許多開發團隊來說,調試消耗了將近 40% 的開發周期。由于調試時間如此之長,開發人員需要確保他們不僅擁有良好的調試工具,而且擁有正確的調試工具。傳統上,嵌入式開發人員不得不在他們的軟件中添加閃爍的 LED、printf 語句等,以猜測他們的軟件是如何執行的。現代微控制器現在內置了強大的調試模塊,可以記錄以下事件:
進入和退出函數
中斷進入和退出
任務上下文切換
RTOS 對象事件
ETC
開發人員可以按時間記錄這些事件,并可視化他們的軟件是如何執行的。它消除了調試中的所有猜測,從而減少了調試時間和上市時間。
7、為重用而設計
嵌入式軟件開發人員需要以面向對象的方式開始思考,對于這篇文章,這意味著他們應該從一開始就考慮重用。嵌入式軟件傳統上是以一次性的方式開發的。直接寫入寄存器,將應用程序代碼與硬件代碼混合,瞧!代碼完成。嵌入式系統已經變得比五年前復雜得多,更不用說十年前了。以這種一次性的方式編寫應用程序不再有效。
相反,開發人員應該對他們的軟件進行分層,并在設計階段詢問哪些組件有可能被重用,哪些將被使用一次并丟棄。
結論
盡管今天的開發團隊面臨著工作越來越快的壓力,但仍有大量工具可以幫助他們完成這一任務。我們已經研究了一些關于嵌入式開發人員如何更快地工作的不同技巧。