一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>在ARM處理器上運(yùn)行Rust

在ARM處理器上運(yùn)行Rust

2023-06-13 | zip | 0.00 MB | 次下載 | 2積分

資料介紹

描述

在 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é)果將類似于:

pYYBAGPXI_SAU0PoAAAfoEIWLTs996.png
打印 rustc 和 cargo 版本
?

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所以讓我們安裝它!對于基于 Debian 的發(fā)行版運(yùn)行:

$ sudo apt install gcc-arm-linux-gnueabi

如果運(yùn)行時(shí)安裝成功:

$ arm-linux-gnueabi-gcc --version

結(jié)果將類似于:

pYYBAGPXI_aAZyDgAABHCegw3Es934.png
arm-gcc 的輸出
?

3.4 ADB(安卓設(shè)備橋)

ADB(Android Debug Interface)是一個(gè)用于與模塊通信的工具。在大多數(shù)情況下,ADB 用于 Android 開發(fā)。

該工具能夠向設(shè)備發(fā)送命令、上傳文件并提供對 Linux shell 的訪問。

3.4.1 對于 Linux

要在基于 Debian 的Linux 發(fā)行版中安裝 ADB,請運(yùn)行:

$ sudo apt-get update
$ sudo apt-get install adb

要啟用驅(qū)動(dòng)程序權(quán)限,請遵循Victor 文章的第 3.4.3 節(jié)

3.4.2 對于(Windows WSL)

對于 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
poYBAGPXI_iAQiO2AAAaLEuhKPE075.png
?

默認(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 :

pYYBAGPXI_uAKGlKAAAe3R4fF94787.png
?

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
poYBAGPXI_2Ae3F3AAAX7AMPbLw029.png
安裝目標(biāo)
?

4.3 指定鏈接器

現(xiàn)在是時(shí)候?yàn)?arm-gcc 目標(biāo)指定鏈接器了。它可以僅針對該項(xiàng)目在本地完成,也可以進(jìn)行全局配置。

要在本地指定,請?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"

如果您希望對任何其他項(xiàng)目進(jìn)行全局更改,請?jiān)?~/.cargo/config.toml文件中插入這些相同的兩行。OBS:如果它不存在,您可以創(chuàng)建它。

5.靜態(tài)編譯

另一件重要的事情是對您的項(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
pYYBAGPXJACAQJ6yAAAxZ8xEQBY691.png
建筑輸出
?

您編譯的二進(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
pYYBAGPXJAKAUW7cAAAxLgd_QvE674.png
使用 ADB 推送到模塊
?
poYBAGPXJASAR_79AAAQNa77ky4065.png
亞行外殼內(nèi)部
?

完成了!恭喜,您已經(jīng)在 NL668 Fibocom 模塊上創(chuàng)建了第一個(gè) Rust 應(yīng)用程序。接下來的步驟是嘗試一些 crate 來訪問一些其他硬件資源,如串行端口等。

玩得開心,再見!


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費(fèi)
  3. 2AD庫封裝庫安裝教程
  4. 0.49 MB   |  1次下載  |  免費(fèi)
  5. 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費(fèi)
  7. 4網(wǎng)絡(luò)安全從業(yè)者入門指南
  8. 2.91 MB   |  1次下載  |  免費(fèi)
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費(fèi)
  11. 6海川SM5701規(guī)格書
  12. 1.48 MB  |  次下載  |  免費(fèi)
  13. 7H20PR5電磁爐IGBT功率管規(guī)格書
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護(hù)等級(jí)說明
  16. 0.08 MB   |  次下載  |  免費(fèi)

本月

  1. 1貼片三極管上的印字與真實(shí)名稱的對照表詳細(xì)說明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開發(fā)包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開發(fā)包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設(shè)計(jì)指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍(lán)牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費(fèi)
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分