資料介紹
描述
在 Fibocom NL668-LA 模塊上運(yùn)行的 Rust 程序的簡單“Hello World”示例。涵蓋 Rust 語言交叉編譯的基本概念。
一、簡介
如本文所述,可以將您的應(yīng)用程序嵌入到 Fibocom 的 NL668 CAT4 模塊中,該模塊運(yùn)行基于 Linux 的操作系統(tǒng),稱為 OpenLinux。正如您現(xiàn)在可能看到的那樣,Rust 正在成為最流行的語言之一,并有望成為 C 和 C++ 語言的繼任者。
2.依賴關(guān)系
- NL668-LA模塊(或任何其他廣和通模塊)
- 銹
- 海灣合作委員會(huì)
- Linux操作系統(tǒng)(可以是虛擬機(jī)或WSL)
- VS代碼
- ADB(安卓調(diào)試橋)
3.安裝軟件依賴
讓我們說明安裝所有軟件要求......
3.1 鐵銹
- 首先必須安裝 Rust 和 Cargo,如果沒有,如rust 官方頁面中所述,可以運(yùn)行以下命令來完成:
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
然后運(yùn)行完成后:
$ rustc --version && cargo --version
如果 Rust 安裝成功,結(jié)果將類似于:

Rustc是官方的 Rust 編譯器,而Cargo是官方的 Rust 構(gòu)建工具和包管理器。
3.2 Armv7l 的目標(biāo)
Rust 有許多目標(biāo)架構(gòu)的平臺(tái)支持,其中之一是 armv7-unknown-linux-gnueabi,NL668 的平臺(tái)。
要安裝目標(biāo)包運(yùn)行:
$ rustup target add armv7-unknown-linux-gnueabi
注意:要查看所有可用的架構(gòu)類型:
$ rustc --print target-list
3.3 安裝鏈接器
Rust 中用于 mdm9607 處理器的鏈接器與用于的鏈接器相同,gcc-arm-linux-gnueabi所以讓我們安裝它!對(duì)于基于 Debian 的發(fā)行版運(yùn)行:
$ sudo apt install gcc-arm-linux-gnueabi
如果運(yùn)行時(shí)安裝成功:
$ arm-linux-gnueabi-gcc --version
結(jié)果將類似于:

3.4 ADB(安卓設(shè)備橋)
ADB(Android Debug Interface)是一個(gè)用于與模塊通信的工具。在大多數(shù)情況下,ADB 用于 Android 開發(fā)。
該工具能夠向設(shè)備發(fā)送命令、上傳文件并提供對(duì) Linux shell 的訪問。
3.4.1 對(duì)于 Linux
要在基于 Debian 的Linux 發(fā)行版中安裝 ADB,請(qǐng)運(yùn)行:
$ sudo apt-get update
$ sudo apt-get install adb
要啟用驅(qū)動(dòng)程序和權(quán)限,請(qǐng)遵循Victor 文章的第 3.4.3 節(jié)。
3.4.2 對(duì)于(Windows WSL)
對(duì)于 Windows WSL,可以按照Victor 文章的這一部分中的說明安裝以下內(nèi)容
3.4.3 在 Windows 上從 WSL 使用 ADB
如果你不喜歡在 Powershell 和 Bash 之間切換,可以直接從你的 bash 終端使用 WSL 創(chuàng)建一個(gè)符號(hào)鏈接到你在 windows 目錄中的可執(zhí)行文件,如果你將 ADB 安裝在C:/platform-tools文件夾上,命令將是:
$ sudo ln -s /mnt/c/platform-tools/adb.exe /usr/bin/adb
WARN:使用此技術(shù),不建議使用microcom訪問/dev/smd7ADB內(nèi)部的AT-Commands終端(),因?yàn)锳T命令中的移動(dòng)網(wǎng)絡(luò)可能無法正常工作。(我是根據(jù)經(jīng)驗(yàn)說的)。
4. 項(xiàng)目
4.1 創(chuàng)建項(xiàng)目
要開始一個(gè)新項(xiàng)目運(yùn)行:
$ cargo new cross-arm
此命令將創(chuàng)建一個(gè)新文件夾,其中包含一個(gè) cargo 項(xiàng)目。讓我們來看看。
$ cd cross-arm
$ ls -a

默認(rèn)情況下,該cargo new命令會(huì)創(chuàng)建一個(gè)文件結(jié)構(gòu),其中包含一些文件和文件夾,讓我們了解它們:
- .git - 默認(rèn)情況下,cargo 會(huì)為你的項(xiàng)目初始化一個(gè) git 倉庫。如果你熟悉 git,你就會(huì)知道這個(gè)文件夾是你項(xiàng)目中 git 存儲(chǔ)更改的地方。
- .gitignore - 此文件夾包含應(yīng)忽略哪些文件或目錄的信息。默認(rèn)情況下,它僅忽略目標(biāo)文件夾。
- Cargo.toml - 在此文件中,您指定您的依賴項(xiàng)和您以后可能在項(xiàng)目中使用的包(包就像 C/C++ 中的庫)。
- Cargo.lock - 你不應(yīng)該編輯這個(gè)文件,它是一個(gè)自動(dòng)生成的貨物文件,使用映射你的依賴關(guān)系的 cargo.toml 上的信息。
- src - 這是您的 main.rs 文件所在的位置,您可能創(chuàng)建的其他源文件也將保留。
- target - 此文件夾是您編譯的二進(jìn)制文件所在的位置。
默認(rèn)情況下,在src文件夾中,cargo 已經(jīng)創(chuàng)建了一個(gè)帶有“Hello World”示例的main.rs :

4.2 安裝目標(biāo)
要進(jìn)行交叉編譯,您必須安裝所需的目標(biāo)。在我們的例子中,我們將安裝armv7-unknown-linux-gnueabi:
$ rustup target add armv7-unknown-linux-gnueabi
要驗(yàn)證目標(biāo)是否已正確安裝:
$ rustup target list --installed

4.3 指定鏈接器
現(xiàn)在是時(shí)候?yàn)?arm-gcc 目標(biāo)指定鏈接器了。它可以僅針對(duì)該項(xiàng)目在本地完成,也可以進(jìn)行全局配置。
要在本地指定,請(qǐng)?jiān)陧?xiàng)目文件夾內(nèi)創(chuàng)建一個(gè).cargo 文件夾并在其中創(chuàng)建一個(gè)config.toml文件:
$ mkdir .cargo
$ cd .cargo
$ touch config.toml
編輯 config.toml 文件插入:
[target.armv7-unknown-linux-gnueabi]
linker = "arm-linux-gnueabi-gcc"
如果您希望對(duì)任何其他項(xiàng)目進(jìn)行全局更改,請(qǐng)?jiān)?~/.cargo/config.toml文件中插入這些相同的兩行。OBS:如果它不存在,您可以創(chuàng)建它。
5.靜態(tài)編譯
另一件重要的事情是對(duì)您的項(xiàng)目進(jìn)行靜態(tài)編譯,不要依賴任何其他共享庫。可以在您的 .cargo/config.toml 中添加以下行:
rustflags = ["-C", "target-feature=+crt-static"]
6.跑步
現(xiàn)在,編譯你的項(xiàng)目運(yùn)行:
$ cargo build --target armv7-unknown-linux-gnueabi

您編譯的二進(jìn)制文件將在里面target/armv7-unknown-linux-gnueabi/debug/
Let's推送到 NL668 并運(yùn)行:
$ cd target/armv7-unknown-linux-gnueabi/debug/
$ adb push cross-arm /data
$ adb shell
# cd /data
# chmod +x cross-arm
# ./cross-arm


完成了!恭喜,您已經(jīng)在 NL668 Fibocom 模塊上創(chuàng)建了第一個(gè) Rust 應(yīng)用程序。接下來的步驟是嘗試一些 crate 來訪問一些其他硬件資源,如串行端口等。
玩得開心,再見!
- 基于ARM處理器的TFT-LCD顯示系統(tǒng) 34次下載
- 基于ARM處理器的禽舍環(huán)境監(jiān)控系統(tǒng) 31次下載
- uCOS II在ARM處理器上移植過程中的中斷處理及三個(gè)要點(diǎn)資料下載
- ARM處理器內(nèi)核的詳細(xì)資料概述 15次下載
- OMAPL138B C6-Integra? DSP+ARM? 處理器 6次下載
- 51單片機(jī)和ARM處理器的比較及ARM處理器相關(guān)知識(shí)的詳解 66次下載
- 初識(shí)ARM系列處理器 3次下載
- 基于ARM 微處理器的故障記錄系統(tǒng) 57次下載
- ARM微處理器的編程模型
- ARM處理器的節(jié)能優(yōu)勢(shì)
- uc/os-ii在ARM處理器上的移植
- 基于ARM的PC/104處理器模塊設(shè)計(jì)
- UC/OS-Ⅱ操作系統(tǒng)在ARM處理器上的移植
- μC/OS-Ⅱ在ARM處理器上的移植介紹
- ARM微處理器的編程模型
- 什么是ARM處理器?與x86的比較及其優(yōu)缺點(diǎn) 1.9k次閱讀
- ARM處理器如何編寫B(tài)ootloader 1.4k次閱讀
- ARM協(xié)處理器接口 3.6k次閱讀
- 各類ARM處理器的區(qū)別及應(yīng)用 7.3k次閱讀
- 嵌入式系統(tǒng)架構(gòu)之ARM處理器 2.8k次閱讀
- 解答arm處理器的七種工作模式 1.8w次閱讀
- 淺談arm處理器的優(yōu)勢(shì) 1.3w次閱讀
- 解答arm是什么/arm處理器采用什么技術(shù) 8.6k次閱讀
- ARM處理器在節(jié)能方面具有哪些優(yōu)勢(shì) 1.5k次閱讀
- arm的協(xié)處理器有幾個(gè)?ARM協(xié)處理器詳解 9.7k次閱讀
- ARM處理器的2種工作狀態(tài)和7種工作模式及37個(gè)寄存器介紹 1.6w次閱讀
- 淺談ARM處理器的特點(diǎn)和體系結(jié)構(gòu) 1.8w次閱讀
- ARM處理器簡介及RISC特點(diǎn) 1.4w次閱讀
- 基于ARM處理器的高效異常處理解決方案 1.8k次閱讀
- 如何在芯片的PL上構(gòu)建軟核處理器? 1.5k次閱讀
下載排行
本周
- 1新一代網(wǎng)絡(luò)可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費(fèi)
- 2冷柜-電氣控制系統(tǒng)講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數(shù)據(jù)手冊(cè)
- 2.33 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管S9012數(shù)據(jù)手冊(cè)
- 2.62 MB | 次下載 | 免費(fèi)
- 5LAT1218 如何選擇和設(shè)置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環(huán)繞擴(kuò)音機(jī) AVR-1507手冊(cè)
- 2.50 MB | 次下載 | 免費(fèi)
- 8MS1000TA 超聲波測(cè)量模擬前端芯片技術(shù)手冊(cè)
- 0.60 MB | 次下載 | 免費(fèi)
本月
- 1愛華AIWA HS-J202維修手冊(cè)
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊(cè)
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測(cè)距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準(zhǔn)諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協(xié)議電壓誘騙控制器IC技術(shù)手冊(cè)
- 1.81 MB | 1次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論