golang可以寫嵌入式,對於做嵌入式開發來說,golang的網路支援是非常好用的,主要是為嵌入式開發平台打造,基於cgo實現了golang對於/dev目錄下的uart設備控制,讀寫等操作。 cgo相關部分已封裝成golang包,在golang業務程式碼中使用golang呼叫即可。
本文的操作環境:Windows10系統、go1.20版本、dell g3電腦。
在嵌入式裝置中一般儲存控制項都比較小,go編譯後的程式包含執行時,體積一般比較大,所以我們需要對程式做一個瘦身,瘦身的方法很簡單,編譯的時候去除偵錯訊息,然後使用upx來做壓縮,upx支援各種cpu架構的壓縮。
主要是為嵌入式開發平台打造,基於cgo實作了golang對於/dev目錄下的uart裝置控制,讀寫等操作。 cgo相關部分已封裝成golang包,在golang業務程式碼中使用golang呼叫即可。
編譯方法
x86平台:go build
arm平台:CGO_ENABLED=1 GOOS=linux GOARCH=arm CC=arm-none-linux-gnueabi-gcc go build (注意:CC是你的交叉編譯工具名稱)
執行程式方法
兩個平台都是:
./cgouart
在移植過程中, 需要更改main.go執行程式的對應串列埠設備名稱,即可移植使用,例如6Q的: /dev/ttymxc1或x86的:ttyUSB0。這個需要自己根據自己平台串口的名稱進行更改移植
對於做嵌入式開發來說,golang的網路支援是非常好用的,但是往往嵌入式平台下,經常需要用到一些週邊,如gpio,uart、i2c,spi等等一些/dev目錄下的一些裝置。所以,使用cgo封裝成go包,對於要求需要網絡,同時也需要基礎硬體控制的平台來說,將會非常方便。
以上是golang能寫嵌入式嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!