存儲空間對于嵌入式系統還重要嗎
來源:ednchina.com
發布者:風河的首席技術官
時間:2008/8/12
點擊量:113

  存儲器,或你的軟件需要使用的總內存容量,曾經是嵌入式設備的一個難題。但是現在,RAM和閃存的成本比例和以前相比變得越來越小,是不是存儲器不再是一個問題了?隨意的使用?因為很便宜?還是不要太早的下定論。

    你可以把我看成是古板的學究。但我相信,存儲器在一些設備中仍舊是一個難題(雖然不是所有的情況總是如此),讓我來告訴你原因。

    當我最初開始編程的時候,我所選擇的電腦是TRS-80,也被Pet/Commodore/Apple稱作Trash-80。實際上對于我父親帶回家的這臺機器,我并不能做太多的選擇。到了1970年代以后,我使用的計算機有一個巨大的4KB RAM,并很快升級到了16KB。當時我使用的編程的語言是Z80匯編語言。在這種條件下,你只能使用你的第6感來解決程序問題,并盡量使用短小的代碼。我說這個并不是炫耀我的年齡而是要表明我的看法。

    在個人電腦/工作站/企業級平臺上,存儲器顯然已不是開發軟件的首要標準。你也可以對比Office97和Office2003。我們對于存儲器的需求至少增加了5倍。由于在PC上磁盤和RAM平均的增長數量與此相當,所以這并沒有帶來什么問題。

    但在嵌入式領域中并不是這樣。我會給你舉出3個理由,但我相信還有更多:

1.   與PC相比,內存在嵌入式設備中的成本還是比較重要的,雖然內存的價格已經便宜了很多,但其它組件也在降價,你在硬件上每一筆開支的節省都會在你賣掉成千上萬的廉價設備時得到補償。

2.   電能消耗

更多的內存就會消耗更多的電能。那些經歷過因Windows Mobile沒電而無法使用的用戶,會深刻體會到這一點的重要性。這不僅是你在設備中使用的內存數量問題,這同樣還涉及在不同情況下需要供電的內存數量。一些精巧的設備會關閉不需要使用的內存。

3.   啟動時間

一些設備,比如數碼相機需要快速啟動,在一些系統中,一大塊的啟動時間是用來將軟件從閃存中讀到RAM內存中。代碼越短的啟動越快。

       OK,所以存儲器還是很重要的,但是如何削減軟件在設備上占用的存儲器容量呢?

    這里有一些小技巧。有些時候代碼的大小可以衡量一些事情,比如特性、性能、程序的應用性等,但我發現保持代碼的精簡會使得程序的復雜性降低,這對于程序的質量來說是一件好事情。

  • 選擇一個可以優化程序代碼的編程語言

    這是一種簡單的替換。對于節省存儲器來說,相比于Java來說,C語言是一種較好的語言(因為你可以得到你想要的存儲空間)。如果你知道你在做什么,c++也是一種十分高效的語言,但是我見過很多臃腫的c++程序,所以我建議你小心使用。你可以閱讀Stroustrup的相關評論來了解更多的內容。盡量不要使用所有的C++組件。

  •  選擇一個可以優化代碼占用存儲空間大小的編譯器

    大多數的編譯器可以優化速度并關注代碼的大小,這與嵌入式編譯器有很大的差別。例如,其中的一個原因是我們使用風河的編譯器來編譯VxWorks,對比于gcc,它不僅會將代碼的運行效率提高10%,同時也會將代碼縮小10%。

  •   選擇一個可以訂制的操作系統并只包含你想要的組件

    為設備設計操作系統(比如VxWorks)與設計一般功能的操作系統(比如Linux)不同。RTOS系統(實時系統比如VxWorks),可以被看成是一個庫,你可以只將你實際用到的代碼放到代碼鏡像中。

但是得到精簡存儲器的最有效方法是精簡你的代碼構架并縮小你的代碼尺寸。雖然說起來容易,但當你真正處理現存的代碼時,你會發現這是很困難的。

精品国内自产拍在线观看,2020国自产拍精品露脸,91精品国自产拍天天拍,高清国语自产精品视频二区在