
耗費更少成果更多
|
225
顯示緩衝區
通訊緩衝區
感應器資料緩衝區
其他變數
堆疊
覆載 RAM:
顯示、通訊、感應器
RAM
4 K
溢位
堆疊
其他變數
圖 8-3 模組間共享 RAM
有幾種實作記憶體覆載的方式,最簡單是將緩衝區視為某一模組的私有資料,讓其他模
組透過單一函數操作,如 15 頁「從圖表到架構」中介紹的 singleton 模式的變型。另一
種方式是實作一個數個陣列的聯集(union),可能加上個所有者標記表示記憶體目前的
使用者。
除此之外,要讓子系統間關係較為明確,可能修改連結器命令稿覆載各模組的 RAM 緩
衝區,這能消除任何兩個子系統間直接的互動,但需要後續的開發人員瞭解兩個子系統
無法同時運作(否則會造成不可預期的結果。)
速度
在所有耗費寶貴的開發時間的地方,花費最多時間的就是從處理器多擠出額外的循環,
從設計系統開始試著避免這種狀況,也許在選擇處理器的時候試著多加上額外的負載。
然而,仍然會需要修改程式更快回應即時事件,試著加入其他功能或是降低功耗(參看
第十章)。
在動手調校系統之前,先做校能分析確認關鍵的部分,校能分析不像讀對應檔那麼簡
單,但最佳化錯誤的地方不是件好事(例如,減半只會在系統啟動時執行一次的初始化
所需時間,而非將精神花在主迴圈上。)
效能分析
要知道哪些程式耗用處理器循環,才能決定如何分配最佳化的時間,許多編譯器(以及
作業系統)內建了分析工具,包含剖析器(profiler)。花些時間學習這些工具,如果沒
有這些工具,可能就需要自行建立簡單的剖析器取得更深入的瞭解。