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

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

3天內(nèi)不再提示

優(yōu)雅的在D1S上運(yùn)行RT-Smart

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:未知 ? 2022-11-16 20:15 ? 次閱讀

前言

最近在學(xué)習(xí) RT-Smart ,正巧有在全志開發(fā)者論壇看到這么一篇帖子【驚】在麻雀上運(yùn)行國(guó)產(chǎn)rt-smart系統(tǒng),看到很多人都在關(guān)注 D1S 在 Smart 上的運(yùn)行情況。如今該 BSP 已經(jīng)合并到 RT-Smart 主倉(cāng)庫(kù),于是我來展示一下 D1S 運(yùn)行 RT-Smart 的步驟,供大家參考~

嵌入式開發(fā)的人對(duì) RT-Thread 操作系統(tǒng)平臺(tái)應(yīng)該都是非常熟悉的,而 RT-Thread Smart 是基于 RT-Thread 操作系統(tǒng)上的混合操作系統(tǒng),簡(jiǎn)稱為 rt-smart,它把應(yīng)用從內(nèi)核中獨(dú)立出來,形成獨(dú)立的用戶態(tài)應(yīng)用程序,并具備獨(dú)立的地址空間。相比較于 linux 操作系統(tǒng)而言,RT-Thread Smart 是實(shí)時(shí)的操作系統(tǒng)。

環(huán)境及所需工具

軟件環(huán)境:

  • Ubuntu20.0.4


硬件環(huán)境:

  • 全志F系列—D1s芯片

  • 柿餅派M7

  • 麻雀MQ


下載代碼

下載 RT-Smart 用戶態(tài)應(yīng)用代碼:

gitclonehttps://github.com/RT-Thread/userapps.git
進(jìn)入到 userapps 目錄,克隆 RT-Thread rt-smart 分支
gitclone-brt-smarthttps://gitee.com/rtthread/rt-thread.git

配置工具鏈

在 userapps ools 目錄下運(yùn)行 get_toolchain.py 的腳本,會(huì)下載對(duì)應(yīng)的工具鏈并展開到 userapps oolsgun_gcc 目錄。后面的工具鏈名稱可以是 arm | riscv64。

因?yàn)?D1S 是 RISCV-64 架構(gòu)的,所以輸入下面的命令:

python3get_toolchain.pyriscv64

在 userapps 目錄下,運(yùn)行 smart-env.sh 配置工具鏈路徑,目前支持的參數(shù)可以是 arm | riscv64

sourcesmart-env.shriscv64

編譯內(nèi)核程序

進(jìn)入 rt-thread/bsp/allwinner/d1s 目錄下,執(zhí)行以下命令拉取一下軟件包

  • 注:若系統(tǒng)沒有安裝 env,需要手動(dòng)輸入 scons --menuconfig 命令手動(dòng)下載 env

source~/.env/env.sh
pkgs--update

使用 scons 命令進(jìn)行編譯,編譯成功后會(huì)在 userapps/rt-thread/bsp/allwinner/d1s 目錄下生成 sd.bin,這個(gè)文件就是我們需要燒錄到開發(fā)板中的文件,它包括了 uboot.dtb,opensbi,rtthread.bin。

燒錄程序

接下來介紹兩種燒錄方式:

  • 第一種針對(duì)使用 EMMC 啟動(dòng)方式的 D1S,例:柿餅派M7

詳見:D1S/README.md 文檔中的 真實(shí)硬件環(huán)境搭建 章節(jié)。

  • 第二種是針對(duì)使用 TF卡 作為啟動(dòng)方式的開發(fā)板,例:麻雀 D1S

1、首先準(zhǔn)備一張容量在 128G 以內(nèi)的空白 TF卡

2、使用 fdisk 分區(qū)。將 TF卡 掛載到 ubuntu 系統(tǒng)后,使用 df 查看設(shè)備路徑。筆者使用的 32GB TF卡,扇區(qū)大小 512 字節(jié),我們需要預(yù)留前 8M 的空間,那么計(jì)算得知分區(qū)扇區(qū)開始于:16384,使用命令:sudo fdisk /dev/sdb,選擇:o,n,p,1,16384,回車。

 1Command(mforhelp):o
2
3CreatedanewDOSdisklabelwithdiskidentifier0x3668b987.
4
5Command(mforhelp):n
6
7Partitiontype
8
9pprimary(0primary,0extended,4free)
10
11eextended(containerforlogicalpartitions)
12
13Select(defaultp):p
14
15Partitionnumber(1-4,default1):1
16
17Firstsector(2048-62410751,default2048):16384
18
19Lastsector,+sectorsor+size{K,M,G,T,P}(16384-62410751,default62410751):
20
21Createdanewpartition1oftype'Linux'andofsize29.8GiB.
22
23Command(mforhelp):w
24
25Thepartitiontablehasbeenaltered.

正確的分區(qū)效果如下:

然后格式化 sdb1 分區(qū)為 fat32 格式:

1$sudomkfs-tfat/dev/sdb1

這里可以使用 Gparted 工具可視化查看一下分區(qū)狀況:

3、接下來使用以下命令燒錄 RT-SMART 內(nèi)核:

1sudoddif=boot0_sdcard_sun20iw1p1_d1s.binof=/dev/sdbbs=1024seek=8
2
3sudoddif=sd.binof=/dev/sdbbs=1024seek=56
  • 注:boot0_sdcard_sun20iw1p1_d1s.bin 文件在 userapps/rt-thread/bsp/allwinner/d1s/tools 路徑下

  • 這里的 /dev/sdb 設(shè)備要根據(jù)自己的選擇


下面是燒錄成功的顯示:

啟動(dòng) RT-Smart

方式一(EMMC)啟動(dòng):

串口0 波特率 500000,然后上電即可。


方式二(TF 卡)啟動(dòng):

此時(shí)將 TF 卡放入開發(fā)板,串口0(底部排針的7,8腳),串口波特率 500000,然后上電,如下 RT-Smart 已經(jīng)成功啟動(dòng)?。ㄕ娴目欤镜囊幌戮瓦M(jìn)入系統(tǒng)了

 1|/
2-RT-ThreadSmartOperatingSystem
3/|5.0.0buildNov12022
42006-2022Copyrightbyrt-threadteam
5lwIP-2.0.2initialized!
6hal_sdc_create0
7card_detectinsert
8Initialcardsuccess.capacity:30436MB
9sdmmcbytes_per_secotr:200,sectorcount:3b72400
10foundpart[0],begin:8388608,size:29.732GB
11foundpartition:sd0ofmbratoffset0000000000004000,size:0000000003b6e400
12hal_sdc_create1
13card_detectinsert
14Initialcardfailed!!
15[E/drv-sdmmc]initsdmmcfailed!
16[E/drv-sdmmc]sdmmc_initfailed!
17[I/sal.skt]SocketAbstractionLayerinitializesuccess.
18[D/FAL](fal_flash_init:47)Flashdevice|sdcard0|addr:0x00000000|len:0x76e480000|blk_size:0x00000200|initializedfinish.
19[I/FAL]====================FALpartitiontable====================
20[I/FAL]|name|flash_dev|offset|length|
21[I/FAL]-------------------------------------------------------------
22[I/FAL]|download|sdcard0|0x00800000|0x00800000|
23[I/FAL]|easyflash|sdcard0|0x01000000|0x00100000|
24[I/FAL]|filesystem|sdcard0|0x01100000|0x00c00000|
25[I/FAL]=============================================================
26[I/FAL]RT-ThreadFlashAbstractionLayerinitializesuccess.
27HelloRISC-V
28[W/DBG]disp:[parser_disp_init_para575]of_property_readscreen1_output_typefail
29msh/>Mount"sd0p0"on"/"success
30msh/>


編譯用戶態(tài)程序

進(jìn)入 userapps 目錄下,使用 scons 編譯用戶態(tài)程序,編譯好的文件會(huì)生成在 root/bin 目錄下。

運(yùn)行用戶態(tài)程序

從 root/bin 目錄下拷貝出祖?zhèn)?hello 程序,到 TF卡 的文件系統(tǒng)中。

拔出 TF 卡,插入到開發(fā)板,上電。即可體驗(yàn)屬于自己的 helloworld 程序了。

 1msh/bin>ls
2Directory/bin:
3dbkit_client.elf616960
4elmFATKit.elf373880
5em.elf585504
6hdc_test.elf339976
7hello.elf339624
8lvgl.elf1382168
9lwIPKit.elf976784
10mmapctrl.elf339976
11ntp.elf363560
12ping.elf344208
13pmq.elf345176
14pong.elf339624
15syslog.elf364736
16syslogd.elf377560
17vi.elf446568
18webclient.elf358048
19msh/bin>
20msh/bin>hello.elf
21msh/bin>helloworld!


Q&A


Q:不小心把 TF 卡分區(qū)燒錄錯(cuò)了/如何格式化分區(qū)?

A:首先使用 sudo fdisk /dev/sdX 命令,輸入 p ,查看 SD卡 現(xiàn)有分區(qū),如下圖該 SD卡有一個(gè)分區(qū)。

然后輸入 d,刪除這個(gè)分區(qū)。

使用 sudo fdisk -l 查看SD卡分區(qū)情況,可以看到已經(jīng)沒有分區(qū)了,接著按照教程方式重新制作分區(qū)即可。

更多 QA 可詳見:D1S/README.md 文檔中的 QA 章節(jié)。


版權(quán)聲明:本文為RT-Thread論壇用戶「Rb君」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

原文鏈接:

https://club.rt-thread.org/ask/article/c0609a2215117c31.html



END



2022RDC RT-Thread開發(fā)者大會(huì)


一年一度的 RDC RT-Thread 開發(fā)者大會(huì)正式啟動(dòng)報(bào)名,本屆大會(huì)以 "聚勢(shì)而強(qiáng),乘勢(shì)而上" 為主題,并將于 2022年12月25日在上海麗昂豪生大酒店舉行。


立即掃碼報(bào)名



你可以添加微信17775983565為好友,注明:公司+姓名,拉進(jìn)RT-Thread官方微信交流群!



愛我就給我點(diǎn)在看

點(diǎn)擊閱讀原文進(jìn)入論壇


原文標(biāo)題:優(yōu)雅的在D1S上運(yùn)行RT-Smart

文章出處:【微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1249

    瀏覽量

    39725

原文標(biāo)題:優(yōu)雅的在D1S上運(yùn)行RT-Smart

文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RK3568平臺(tái)RT-smart系統(tǒng)跑不起來,為什么?

    RK3568平臺(tái)RT-smart系統(tǒng)跑不起來
    發(fā)表于 09-13 07:28

    如何優(yōu)雅OpenMV使用LVGL

    板級(jí)適配得益于官方團(tuán)隊(duì)對(duì)RA8D1-VisionBoard的SDK貼心地維護(hù),對(duì)于板級(jí)配置文件configuration.xml板載的攝像頭、SDRAM、LCD、TOUCH等眾多外設(shè)都已經(jīng)配置好了
    的頭像 發(fā)表于 07-31 08:36 ?907次閱讀
    如何<b class='flag-5'>優(yōu)雅</b>的<b class='flag-5'>在</b>OpenMV<b class='flag-5'>上</b>使用LVGL

    ART-PI Smart User運(yùn)行LED程序崩潰的原因?怎么處理?

    done! open em failed! hello rt-smart userapps中添加led_test.c,代碼如下: #include \"led_test.h
    發(fā)表于 07-05 08:21

    ART-Pi Smart 體驗(yàn) RT-Thread Smart v5.1.0

    1.引言RT-ThreadSmartv5.1.0已經(jīng)正式發(fā)布。這一版本在內(nèi)核和功能上做了大量的改進(jìn)與增強(qiáng)。我們可以ART-PiSmart開發(fā)板盡情探索這一新版更完善更強(qiáng)
    的頭像 發(fā)表于 06-14 08:35 ?431次閱讀
    <b class='flag-5'>在</b> ART-Pi <b class='flag-5'>Smart</b> 體驗(yàn) <b class='flag-5'>RT</b>-Thread <b class='flag-5'>Smart</b> v5.1.0

    全志D1s軟件入門之Tina Linux編譯教程

    的是 d1s_nezha 板子,也正是 D1s Nezha 開發(fā)板。輸入 5 回車即可。如果是其他板子,也可以輸入對(duì)應(yīng)板子的序號(hào)選擇方案。 lunch 之后 SDK 會(huì)自動(dòng)根據(jù)你所選擇的方案解壓編譯工具鏈,創(chuàng)建環(huán)境
    發(fā)表于 06-05 09:50

    全志D1s裸機(jī)開發(fā)之體驗(yàn)第一個(gè)程序

    體驗(yàn)第一個(gè)程序 2.1 編譯燒錄運(yùn)行 2.1.1編譯 先進(jìn)入源碼目錄,打開 Git Bash,如下圖操作: 然后 Git Bash 中執(zhí)行 make 命令,可以生成
    發(fā)表于 03-08 11:43

    全志D1s開發(fā)板裸機(jī)開發(fā)之壞境搭建

    、串口打印,并將主芯片所有的信號(hào)全部引出,其中左右兩側(cè)兼容了樹莓派的電源信號(hào)定義,可以很方便擴(kuò)展模塊。 D1S 是針對(duì)智能解碼市場(chǎng)推出的高性價(jià)比 AIoT 芯片,它使用阿里平頭哥的 64bit
    發(fā)表于 03-06 13:54

    西門子S7-200 SMART的通信端口解析

    S7-200 SMART CPU 集成的 RS485 通信端口(端口0)是與 RS485 兼容的9針 D 型連接器。CPU 集成的 RS485 通信端口的引腳分配如表1.
    發(fā)表于 02-27 11:28 ?2194次閱讀
    西門子<b class='flag-5'>S</b>7-200 <b class='flag-5'>SMART</b>的通信端口解析

    如何在PSoC62 Evaluation kit開發(fā)板運(yùn)行RT-Thread呢?

    本文主要介紹如何在PSoC62 Evaluation kit開發(fā)板運(yùn)行RT-Thread,如何連接CYW43012 WiFi藍(lán)牙模組,以及如何進(jìn)行WiFi聯(lián)網(wǎng)、網(wǎng)絡(luò)延遲、網(wǎng)絡(luò)帶寬測(cè)試。
    的頭像 發(fā)表于 02-27 10:49 ?881次閱讀
    如何在PSoC62 Evaluation kit開發(fā)板<b class='flag-5'>上</b><b class='flag-5'>運(yùn)行</b><b class='flag-5'>RT</b>-Thread呢?

    rtthread d1s編譯報(bào)錯(cuò)的原因是什么?如何處理?

    我使用使用的是現(xiàn)在git的rtthread的最新的master分支,因?yàn)?b class='flag-5'>rt-smart已經(jīng)并入主線,所以我想在windows下用env工具編譯。 因?yàn)橐幾griscv架構(gòu)的全志D1S,我下載了
    發(fā)表于 02-22 06:43

    優(yōu)雅停機(jī)是什么?SpringBoot+Nacos+k8s實(shí)現(xiàn)優(yōu)雅停機(jī)

    優(yōu)雅停機(jī)是什么?網(wǎng)上說的優(yōu)雅下線、無損下線,都是一個(gè)意思。
    的頭像 發(fā)表于 02-20 10:00 ?1666次閱讀
    <b class='flag-5'>優(yōu)雅</b>停機(jī)是什么?SpringBoot+Nacos+k8<b class='flag-5'>s</b>實(shí)現(xiàn)<b class='flag-5'>優(yōu)雅</b>停機(jī)

    你相信光嗎?開源一個(gè)能進(jìn)行虛擬光渲交互的全志D1s智能家居中控

    本文所介紹產(chǎn)品demo是立創(chuàng)開源平臺(tái)的開源作品**《全志D1s智能家居中控虛擬光渲交互(86盒)》**,項(xiàng)目選用RISC-V核心的全志D1s作為主控進(jìn)行開發(fā),并通過家庭WIFI內(nèi)網(wǎng),實(shí)現(xiàn)設(shè)備間
    發(fā)表于 12-14 15:26

    使用SystemView工具分析瑞薩RA6M4芯片RT-Thread的運(yùn)行情況

    使用SystemView工具分析瑞薩RA6M4芯片RT-Thread的運(yùn)行情況
    的頭像 發(fā)表于 12-11 17:23 ?515次閱讀
    使用SystemView工具分析瑞薩RA6M4芯片<b class='flag-5'>上</b><b class='flag-5'>RT</b>-Thread的<b class='flag-5'>運(yùn)行</b>情況

    ART Pi Smart基于RT-Thread Smart系統(tǒng)的LVGL移植

    ART-Pi Smart開發(fā)板為RT-Thread聯(lián)合百問科技出品,使用的是 NXP 公司的 i.MX6ULL 處理器,具備單核 ARM Cortex-A7,最高運(yùn)行頻率可以達(dá)到 800MHz。
    的頭像 發(fā)表于 11-29 14:29 ?1017次閱讀
    ART Pi <b class='flag-5'>Smart</b>基于<b class='flag-5'>RT</b>-Thread <b class='flag-5'>Smart</b>系統(tǒng)的LVGL移植

    RT-Smart開發(fā)筆記:int類型數(shù)值溢出造成的奇怪問題的分析與排查記錄

    最近在調(diào)試 RT-Smart 的用戶態(tài) mq(消息隊(duì)列)時(shí),遇到一個(gè)奇怪的問題,這個(gè)例程打印了一下獲取的時(shí)間,就可以正常的工作(超時(shí)退出),否則,就一直卡住(無法超時(shí))
    的頭像 發(fā)表于 10-31 16:16 ?694次閱讀
    <b class='flag-5'>RT-Smart</b>開發(fā)筆記:int類型數(shù)值溢出造成的奇怪問題的分析與排查記錄