- 註冊時間
 - 2010-7-9
 - 最後登錄
 - 2021-6-12
 - 主題
 - 查看
 - 積分
 - 264
 - 閱讀權限
 - 50
 - 文章
 - 183
 - 相冊
 - 0
 - 日誌
 - 1
  
 
 
 
   
狀態︰
 離線  
 
 | 
眾所皆知嵌入式軟體必須在極有限的資源下執行,最常見的情形 
就是能夠使用的記憶體非常少,雖然有人抱持著「記憶體越來越 
大、越來越便宜」的觀點,但是請記得一句話: 
 
「用比較少的成本完成同樣一件事,這就是競爭力」 
 
還有一種情形是無論記憶體跌價多快,仍然不可能滿足所有的 
需求,例如現在越來越多 SoC 內建 USB Host,試問有可能一 
次把 USB Keyboard、USB Mouse、USB Printer、USB Disk... 
等驅動程式通通放上去嗎?假如要支援這麼多周邊(別忘了還要 
支援不同廠牌),Flash Memory & RAM 的成本將會高的嚇人。 
 
當然會有人反駁嵌入式系統就是為了某種特殊目的打造的機器, 
所以不可能需要支援這麼多周邊裝置。但是以消費者的觀點來看 
,他們都希望可以用合理的價格買到一台功能多的機器。 
 
難道沒有兩全其美的事嗎? 
 
ROM Builder 技術嘗試突破以上限制,利用軟體模組抽換的 
技巧無限擴充裝置功能,而不需要更多 Flash Memory &  
SDRAM,更不需要複雜如 Embedded Linux or WinCE 等 
Embedded OS,僅需要一般小型 RTOS 即可達成目的 
(如 uC/OS-II, ThreadX, eCos...)。如圖 1 所示: 
 
. 
 
其中 RomBuilder.dll 會把所有的 task & OS 合併為一個 
.rob,可經由 USB、RS232、TCP/IP 上傳到目標板上,執行 
時 rob-loader 會視需要將程式與資料從 ROM 拷貝到 RAM 
上,並且對每個 Task 分配 stack 空間(根據 .rob 檔頭的 
資料),假如你的 ROM 支援 XIP,只要把 R/W Data 拷貝到 
RAM 上就行了,如圖 2 所示: 
 
 
 
 
利用 ROM Builder 技術,user 與開發人員可以依需要抽換 
task 甚至是 OS |   
 
  
 |