野火魯班貓2(RK3568J)開發邊緣計算網關的研發記錄

關鍵技術:

  • 邊緣計算網關邊緣計算是一種分布式計算范式,邊緣計算將使得在離散位置執行計算變得更加容易。是將計算資源和數據處理功能放置在接近數據源的邊緣設備上,以降低延遲、提高性能。邊緣計算網關作為邊緣計算的重要組成部分,負責連接邊緣設備與高級服務設備,并提供邊緣計算服務。
  • Docker容器技術已經在云計算領域取得了巨大成功。它提供了一種輕量級、可移植的方式來打包應用程序和其依賴項,確保在不同環境中的一致性運行。
    1. 可移植性:Docker容器非常便于在不同邊緣位置之間移動。無論是在工廠車間、智能城市中的傳感器節點,還是遠程邊緣服務器,容器都可以輕松部署和管理。這種可移植性確保了應用程序的一致性,無論它們在哪個邊緣位置運行。
    2. 資源隔離:Docker容器提供了資源隔離的能力,確保不同容器之間不會相互干擾。這對于在資源有限的邊緣設備上運行多個應用程序非常重要。資源隔離還可以提供更好的安全性,以防止不良應用程序影響其他正常運行的應用程序。
    3. 自動化部署和伸縮:Docker容器可以輕松進行自動化部署和伸縮。這對于在邊緣環境中管理大量設備和應用程序非常重要。使用容器編排工具(如Kubernetes)可以實現自動化部署、伸縮和健康檢查,確保應用程序的高可用性。
  • Rust語言,Rust運行效率高、開發效率好、適用范圍廣。作為一門編譯型語言,它直接編譯輸出到匯編代碼,通常公認裸機的Rust語言性能略高于C語言級別,擁有較高的運行效率。Rust語言的開發效率很高,文檔完善、編譯器提示有幫助,能節省軟件開發所需的時間。它能應用在多個平臺和指令集中。
    • 內存安全性:Rust通過借用檢查器和所有權系統,在編譯期間就能檢測出潛在的內存安全問題,避免了內存泄漏、緩沖區溢出等常見問題。
    • 并發性:Rust的并發模型允許開發者輕松編寫安全且高效的并發代碼,無需擔心數據競爭和死鎖等問題。
    • 豐富的類型系統:Rust擁有豐富的類型系統,可以在編譯時發現和修復大多數類型錯誤,從而大大提高了代碼的可讀性和可維護性。
    • 運行速度:Rust的運行速度和內存使用效率都非常優秀。
    • 跨平臺兼容性:Rust支持跨平臺開發,意味著可以在多個系統上編譯代碼而不需要太多的修改代碼。

基本目標:

  1. 基于國產瑞芯微RK3568芯片

—— 瑞芯微RK3568芯片是一款定位中高端的通用型SOC,是一款高性能低功耗四核應用處理器,采用22nm制程工藝,集成4核ARM架構A55處理器和Mali G52 2EE圖形處理器,支持4K解碼和1080P編碼。RK3568支持SATA/PCIE/USB3.0等各類型外圍接口,內置獨立的NPU,可用于輕量級人工智能應用。
—— 理解 Cortex-A55 的真正潛力,先來簡要回顧一下其上一代產品:ARM Cortex-A53。采用這款 CPU 的設備已超過 15億臺,該 CPU 依然是當今業界出貨量最高的 64 位 Cortex-A 系列 CPU。Cortex-A53 于 2012 年發布,其獨一無二的設計,集性能、低功耗以及尺寸擴展性于一身,具備一系列多用途特性,因而可應用于諸多市場,其中包括高端智能手機、網絡基礎設施、汽車信息娛樂、高級駕駛員輔助系統 (ADAS)、數字電視、入門級移動設備和消費級設備乃至人造衛星。
—— Cortex-A55 支持ARMv8.1,并采用最新的 ARMv8.2 架構,并在其前代產品的基礎上打造而成。它在性能方面突破了極限,同時依舊保持了與 Cortex-A53 相同的功耗水平。在相同的頻率與工藝條件下,內存性能最高可達 Cortex-A53 的兩倍;在相同的頻率與工藝條件下,效能比 Cortex-A53 高 15%;擴展性比 Cortex-A53 高十倍以上。

  1. 基于瑞芯微為RK3568定制與優化的Debian系統
  2. 實現至少2路CAN總線,同時支持CAN2.0與CAN-FD(ISO11898-1)
  3. 實現不少于2路串口,不少于2路485總線

研發動線:

  • 2024年8月16日,在Linux下將項目運行起來了,基本的Log服務,EdagHub服務都已正確啟動;這兩天在read canChannel的時候發現了一個與串口與tcp不同的地方,當沒有讀取到內容或未讀取完成時,read動作會阻塞住,這個特殊點折騰了我好幾個晚上。
  • 2024年8月11日,基本項目架構已搭建完畢,但是從docker容器里映射宿主機的can端口不太靈,還得再學習;另外從windows如何采用socketcan進行調試也太不絲滑,還得再設計,更方便快捷。
  • 2024年7月25日,基于實時Linux下的Docker的項目搭建基本成功,難點在于dockerfile的編寫與編譯,已全部實現。


    2024-07-25 222250.png
  • 2024年6月27日,完成CAN總線的收發的基本原理實現;下一步進行CAN2.0的實際收發測試。
  • 2024年6月26日,基于Docker容器技術的研發模式試驗完成并成功,基本達到預期目標。
  • 2024年5月22日,個人購買野火魯班貓2(RK3568J)利用業余時間進行邊緣網關的預研。

技術記錄

在研發機建立一個docker registy

  • 首先,確保本機已經安裝了 Docker。
  • 通過執行以下命令來運行 Docker Registry 作為一個容器,該命令會下載官方的 Docker Registry 鏡像(版本 2),以 registry 為名稱運行它作為一個容器,將您本機的 5000 端口綁定到容器的 5000 端口,并確保如果容器崩潰或服務器重啟時容器能夠自動重啟。
docker run -d -p 5000:5000 --restart=always --name registry registry:2

編譯為ARM64/V8,并推送到本機Registry2

第一步:構建鏡像。這樣做可以在推送之前檢查或測試構建的鏡像,或者在不同的時間推送鏡像。

docker buildx build --platform linux/arm64/v8 -f Dockerfile --tag localhost:5000/jupitercli:1.0.6-arm64 --output type=docker .

第二步:推送鏡像:構建完成并確認鏡像無誤后,使用 docker push 命令將鏡像推送到注冊表。

docker push localhost:5000/jupitercli:1.0.6-arm64

在網關拉取已編譯的鏡像

docker pull 192.168.x.xxx:5000/jupitercli:1.0.6-arm64

在網關運行鏡像

sudo docker run -d \
    --name jupitercli \
    -p 10101:10101 \
    -p 10100:10100 \
    -v /dev/can/can0:/dev/can/can0 \
    -v /dev/can/can1:/dev/can/can1 \
    192.168.3.18:5000/jupitercli:1.0.6-arm64

這個命令的組成部分解釋如下:

  • -d: 表示以“分離模式”運行容器,即容器在后臺運行。
  • --name 后面跟著的是給容器起的名字,這個名字可以自定義。
  • 192.168.x.xxx:5000/xxxxxx:5.0-arm64 指定要運行的鏡像名稱和標簽。
  • 使用-p參數來映射端口。例如,如果應用在容器內監聽 8080 端口,并且希望將其映射到宿主機的99上。

顯示運行日志

sudo docker logs -f jupitercli104

實時查看 Docker 容器的日志。如果已經有了一個正在運行的容器,并且想實時查看它的日志輸出,可以使用 docker logs 命令加上 -f(follow)選項。這會讓命令持續運行并顯示任何新產生的日志輸出。
想限制顯示的日志行數,你可以使用 --tail 選項,例如只顯示最新的 10 行日志:

sudo docker logs -f --tail 10 myname
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內容