資料介紹
描述
在 Fibocom NL668-LA 模塊上運行的 Rust 程序的簡單“Hello World”示例。涵蓋 Rust 語言交叉編譯的基本概念。
一、簡介
如本文所述,可以將您的應用程序嵌入到 Fibocom 的 NL668 CAT4 模塊中,該模塊運行基于 Linux 的操作系統,稱為 OpenLinux。正如您現在可能看到的那樣,Rust 正在成為最流行的語言之一,并有望成為 C 和 C++ 語言的繼任者。
2.依賴關系
- NL668-LA模塊(或任何其他廣和通模塊)
- 銹
- 海灣合作委員會
- Linux操作系統(可以是虛擬機或WSL)
- VS代碼
- ADB(安卓調試橋)
3.安裝軟件依賴
讓我們說明安裝所有軟件要求......
3.1 鐵銹
- 首先必須安裝 Rust 和 Cargo,如果沒有,如rust 官方頁面中所述,可以運行以下命令來完成:
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
然后運行完成后:
$ rustc --version && cargo --version
如果 Rust 安裝成功,結果將類似于:
Rustc是官方的 Rust 編譯器,而Cargo是官方的 Rust 構建工具和包管理器。
3.2 Armv7l 的目標
Rust 有許多目標架構的平臺支持,其中之一是 armv7-unknown-linux-gnueabi,NL668 的平臺。
要安裝目標包運行:
$ rustup target add armv7-unknown-linux-gnueabi
注意:要查看所有可用的架構類型:
$ rustc --print target-list
3.3 安裝鏈接器
Rust 中用于 mdm9607 處理器的鏈接器與用于的鏈接器相同,gcc-arm-linux-gnueabi
所以讓我們安裝它!對于基于 Debian 的發行版運行:
$ sudo apt install gcc-arm-linux-gnueabi
如果運行時安裝成功:
$ arm-linux-gnueabi-gcc --version
結果將類似于:
3.4 ADB(安卓設備橋)
ADB(Android Debug Interface)是一個用于與模塊通信的工具。在大多數情況下,ADB 用于 Android 開發。
該工具能夠向設備發送命令、上傳文件并提供對 Linux shell 的訪問。
3.4.1 對于 Linux
要在基于 Debian 的Linux 發行版中安裝 ADB,請運行:
$ sudo apt-get update
$ sudo apt-get install adb
要啟用驅動程序和權限,請遵循Victor 文章的第 3.4.3 節。
3.4.2 對于(Windows WSL)
對于 Windows WSL,可以按照Victor 文章的這一部分中的說明安裝以下內容
3.4.3 在 Windows 上從 WSL 使用 ADB
如果你不喜歡在 Powershell 和 Bash 之間切換,可以直接從你的 bash 終端使用 WSL 創建一個符號鏈接到你在 windows 目錄中的可執行文件,如果你將 ADB 安裝在C:/platform-tools
文件夾上,命令將是:
$ sudo ln -s /mnt/c/platform-tools/adb.exe /usr/bin/adb
WARN:使用此技術,不建議使用microcom訪問/dev/smd7
ADB內部的AT-Commands終端(),因為AT命令中的移動網絡可能無法正常工作。(我是根據經驗說的)。
4. 項目
4.1 創建項目
要開始一個新項目運行:
$ cargo new cross-arm
此命令將創建一個新文件夾,其中包含一個 cargo 項目。讓我們來看看。
$ cd cross-arm
$ ls -a
默認情況下,該cargo new
命令會創建一個文件結構,其中包含一些文件和文件夾,讓我們了解它們:
- .git - 默認情況下,cargo 會為你的項目初始化一個 git 倉庫。如果你熟悉 git,你就會知道這個文件夾是你項目中 git 存儲更改的地方。
- .gitignore - 此文件夾包含應忽略哪些文件或目錄的信息。默認情況下,它僅忽略目標文件夾。
- Cargo.toml - 在此文件中,您指定您的依賴項和您以后可能在項目中使用的包(包就像 C/C++ 中的庫)。
- Cargo.lock - 你不應該編輯這個文件,它是一個自動生成的貨物文件,使用映射你的依賴關系的 cargo.toml 上的信息。
- src - 這是您的 main.rs 文件所在的位置,您可能創建的其他源文件也將保留。
- target - 此文件夾是您編譯的二進制文件所在的位置。
默認情況下,在src文件夾中,cargo 已經創建了一個帶有“Hello World”示例的main.rs :
4.2 安裝目標
要進行交叉編譯,您必須安裝所需的目標。在我們的例子中,我們將安裝armv7-unknown-linux-gnueabi:
$ rustup target add armv7-unknown-linux-gnueabi
要驗證目標是否已正確安裝:
$ rustup target list --installed
4.3 指定鏈接器
現在是時候為 arm-gcc 目標指定鏈接器了。它可以僅針對該項目在本地完成,也可以進行全局配置。
要在本地指定,請在項目文件夾內創建一個.cargo
文件夾并在其中創建一個config.toml
文件:
$ mkdir .cargo
$ cd .cargo
$ touch config.toml
編輯 config.toml 文件插入:
[target.armv7-unknown-linux-gnueabi]
linker = "arm-linux-gnueabi-gcc"
如果您希望對任何其他項目進行全局更改,請在 ~/.cargo/config.toml
文件中插入這些相同的兩行。OBS:如果它不存在,您可以創建它。
5.靜態編譯
另一件重要的事情是對您的項目進行靜態編譯,不要依賴任何其他共享庫。可以在您的 .cargo/config.toml 中添加以下行:
rustflags = ["-C", "target-feature=+crt-static"]
6.跑步
現在,編譯你的項目運行:
$ cargo build --target armv7-unknown-linux-gnueabi
您編譯的二進制文件將在里面target/armv7-unknown-linux-gnueabi/debug/
Let's
推送到 NL668 并運行:
$ cd target/armv7-unknown-linux-gnueabi/debug/
$ adb push cross-arm /data
$ adb shell
# cd /data
# chmod +x cross-arm
# ./cross-arm
完成了!恭喜,您已經在 NL668 Fibocom 模塊上創建了第一個 Rust 應用程序。接下來的步驟是嘗試一些 crate 來訪問一些其他硬件資源,如串行端口等。
玩得開心,再見!
- 基于ARM處理器的TFT-LCD顯示系統 34次下載
- 基于ARM處理器的禽舍環境監控系統 31次下載
- uCOS II在ARM處理器上移植過程中的中斷處理及三個要點資料下載
- ARM處理器內核的詳細資料概述 15次下載
- OMAPL138B C6-Integra? DSP+ARM? 處理器 6次下載
- 51單片機和ARM處理器的比較及ARM處理器相關知識的詳解 66次下載
- 初識ARM系列處理器 3次下載
- 基于ARM 微處理器的故障記錄系統 57次下載
- ARM微處理器的編程模型
- ARM處理器的節能優勢
- uc/os-ii在ARM處理器上的移植
- 基于ARM的PC/104處理器模塊設計
- UC/OS-Ⅱ操作系統在ARM處理器上的移植
- μC/OS-Ⅱ在ARM處理器上的移植介紹
- ARM微處理器的編程模型
- 什么是ARM處理器?與x86的比較及其優缺點 482次閱讀
- ARM處理器如何編寫Bootloader 731次閱讀
- ARM協處理器接口 1420次閱讀
- 各類ARM處理器的區別及應用 6048次閱讀
- 嵌入式系統架構之ARM處理器 2211次閱讀
- 解答arm處理器的七種工作模式 1.6w次閱讀
- 淺談arm處理器的優勢 1.2w次閱讀
- 解答arm是什么/arm處理器采用什么技術 8078次閱讀
- ARM處理器在節能方面具有哪些優勢 1267次閱讀
- arm的協處理器有幾個?ARM協處理器詳解 8823次閱讀
- ARM處理器的2種工作狀態和7種工作模式及37個寄存器介紹 1.4w次閱讀
- 淺談ARM處理器的特點和體系結構 1.7w次閱讀
- ARM處理器簡介及RISC特點 1.2w次閱讀
- 基于ARM處理器的高效異常處理解決方案 1286次閱讀
- 如何在芯片的PL上構建軟核處理器? 1068次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多