2021-12-04 09:45:18|已瀏覽:259次

嵌入式開發,RTOS比裸奔的優勢在哪?
第一、并發性
程序并發工作效率低在寫裸機軟件時,不可避免的在主程序中會有一個超級大的 while(1) 循環,這里面幾乎包含整個項目的所有業務邏輯。因為每個業務邏輯里面都會有 delay 這樣的循環等待函數,這樣導致了所有的業務邏輯幾乎都是串行起來工作的。這個時候 CPU 就會有很多時間都浪費在了延時函數里,一直在空轉,導致軟件的并發效率非常差。第二、模塊化:高內聚、低耦合的原則
從軟件工程的角度,我們在做軟件開發時,都會強調高內聚、低耦合的原則。而裸機的模塊化開發難度非常大,模塊間的耦合較重,這也導致了無法在大型項目使用裸機來開發。第三、生態:很多高級軟件組件,必須依賴于操作系統來實現
比如說,我前些年開源過一個基于 FreeModbus 的 Modbus 主機協議棧,因為要考慮各個平臺適配問題,原本計劃支持各種各樣的操作系統,甚至是裸機平臺。在各個操作系統上的適配都非常容易,但再去嘗試著適配裸機時,發現難度重重,有一些函數在裸機上實現起來非常復雜,而且針對于不同的裸機環境,幾乎沒有通用性可言,太耗費精力了。所以我最終就放棄了裸機適配,一直到現在,在裸機上還是沒法用這個 Modbus 主機協議棧。第四、實時性:功能復雜的情況下,實時性無法保證
軟件的實時性在一些領域會有一定的要求,軟件的每個步驟必須在指定的時間被觸發。工控領域就是最常見到的場景,如果實時性無法保證,機械設備可能就無法按照指定時序要求去動作,以至于發生機械事故,甚至會威脅到人的生命。回過來接著看裸機軟件,如果軟件變得龐大以后,可以想象到,主程序中那么大的一個 while(1) 循環,代碼耦合嚴重,到處都是 delay 延時,要保證實時性幾乎是不可能的。第五、可重用性:軟件可重用性差,總是重復造輪子
可重用性與模塊化程度有直接的關系。相信大家每個人在工作中都不想做很多重復性的工作,同樣在寫代碼時,也想著盡可能少寫一些功能相似的代碼。但在這個嵌入式碎片化極其嚴重的時代,各式各樣的芯片,想要讓同樣的代碼,在裸機環境下同時適配不同的硬件,難度非常大。這樣也就導致了裸機的代碼會過多的依賴于底層硬件,重復造輪子的過程也就不可避免。
本文由培訓無憂網達內教育課程顧問老師整理發布,更多課程信息可關注嵌入式開發培訓或添加老師微信:15033336050
注:尊重原創文章,轉載請注明出處和鏈接 http://m.hebeijilong.cn/news-id-6197.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注嵌入式開發頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050