我認爲你需要在這裏權衡你的成本選擇。
ARM + linux是一個選項,但您將爲這樣一個簡單的(從您的描述)功能集支付非常高的運行開銷。你不能只看ARM芯片的成本,但也必須考慮很可能需要的外部RAM以及閃存,以獲得足夠的空間來運行內核+應用程序。
注意:您可以通過非常小的內核和簡單的應用程序與具有大量內部資源的uC結合來避免外部需求。
第二個選項是一個簡單得多的輕量級操作系統微控制器。這樣可以降低CPU的硬件成本,並且可以在不使用外部RAM或閃存的情況下運行此類操作(取決於應用程序RAM和程序空間要求)
第三種選擇:我實際上沒有看到任何需求要求使用任何操作系統。基本的文件系統非常簡單,例如甚至有8位PIC的FAT驅動程序。連接到SD卡只需要一個SPI端口和最少的外部電路。
應用程序位可能簡單或複雜。我用PIC18微控制器構建了系統,該系統運行Web服務器,並通過簡單的上傳屏幕允許程序更新,它只是將新程序存儲到EEPROM或閃存中,重新引導到引導加載程序並將新程序複製到內部程序存儲器中。您可以設計一種方法,無需通過協作式多任務處理類型的體系結構重新啓動。任何你開始編寫應用程序的程序員都需要掌握架構的知識,並且可以訪問你編寫的庫/驅動程序。最簡單的做法是提供儘可能簡單的API,並嘗試爲它們自動完成構建過程。
第三個選項將是硬件方面的「最便宜」,因爲在處理應用程序時會有很小的開銷,讓您以最小的處理能力和內存脫身。這可能需要更多的編程/軟件架構,但除了學習在linux範例下編寫所需的設備驅動程序之外,您幾乎不需要進行研究,以便使Linux運行起來並運行。
與往常一樣,您必須將軟件開發成本包含在設備的構建成本中。如果您打算構建10,000多種這樣的產品,那麼可以更好地降低硬件成本,並將更多的人力投入到設計能夠使硬件達到設計目標的軟件解決方案中。如果你的建築物中有10個,如果能夠減少你的軟件開發成本,你最好在硬件上花費15-20美元。例如一個帶MMU的ARM,它具有完整的Linux內核支持和可用的設備驅動程序。
我覺得你現在選擇兩個世界中最糟糕的,你付出額外的成本來獲得一個uC你可以運行linux,但這樣做,你也選擇了一個可能是最複雜的部分linux上運行,特別是之前沒有在嵌入式平臺上使用linux。
你能提供應用一些更多的信息? 如果你真的只是跟幾個串口設備通信並且傳遞信息和ARM + linux,在成本和複雜性方面都可能是過度的,特別是如果你不熟悉這種設備上的工具鏈和OS的配置。 – Mark 2009-10-05 20:58:15