- 註冊時間
- 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 |
|