2011-12-21 79 views
0

如果有C++類的任何集合,以便與硬件設備進行交互我想知道,我的意思是,I/O槽端口等串行或並行或類似的東西。C++硬件開發

,我發現了一些信息,但僅在C,我希望有已經寫C++類。

+1

爲什麼這麼急於使用cpp而不是c?他們是不同的,但他們是相似的,如果你知道的話,你有機會知道另一個體面的水平。 – ScarletAmaranth 2011-12-21 13:28:02

+3

[Boost.Asio](http://www.boost.org/doc/libs/release/doc/html/boost_asio/reference.html)支持串行端口。 – 2011-12-21 13:29:24

+1

@ScarletAmaranth:如果有的話,這個含義只能從C++到C - 反過來會更困難。 – 2011-12-21 13:30:21

回答

3

嵌入式硬件通常是專有的,因此任何這樣的庫仍然需要某種形式的硬件抽象層(這是C和C++的真)。 UART和GPIO是相對平凡的,但同時非常具有芯片特性,並且通常也有應用程序特定的要求,所以這種庫的實用性值得懷疑。

使應用層代碼將是平臺之間移植它可能會定義一些常用的抽象接口這些資源是有用的,但任何通用接口可用可能會或可能不適合您的要求。所以你通常會更好地實現自己的設計並重用它,而不是被其他人的實現所約束。

如果你能找到合適的C庫,那麼最簡單的方法是採取適當的C++包裝。 C代碼完全可以與C++互操作。

如果已將平臺的標準C庫移植到UART等設備上以支持stdio,則標準C++ iostream庫將可用,但不會提供用於設置幀和波特率的標準低級接口;你可以直接或通過定製的ioctl()命令來實現。如果流I/O語義是合適的,您可以實現其他設備和文件系統的低級驅動程序,以允許通過iostream訪問。