精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ART-PI Smart開發板介紹與開發環境的建立

RTThread物聯網操作系統 ? 來源:Thread問答社區 ? 作者:RickFlying ? 2022-05-13 09:45 ? 次閱讀

ART-PI Smart 開發板介紹

art-pi smart 是rt-thread公司推出的一款基于NXP公司imx6ull處理器的開發板,主要用來測試評估RT公司去年新發布的混合微內核操作系統RT-Smart。

84df03a8-d1e4-11ec-bce3-dac502259ad0.jpg

RT-Thread Smart(簡稱 rt-smart)嵌入式實時操作系統是基于 RT-Thread 操作系統衍生的新分支,面向帶 MMU,中高端應用的芯片,例如 ARM Cortex-A 系列芯片,MIPS 芯片,帶 MMU 的 RISC-V 芯片等。rt-smart 在 RT-Thread 操作系統的基礎上啟用獨立、完整的進程方式,同時以混合微內核模式執行。

854c0b60-d1e4-11ec-bce3-dac502259ad0.jpg

rt-smart 是一款高性能混合微內核操作系統,在傳統嵌入式操作系統劃分中,rt-smart 能夠填補傳統 RTOS 和大型操作系統 Linux 之間的空白,在實時性、成本、安全性、啟動速度等方面可以取得最佳的平衡。

開發環境的建立

下載RT-Smart SDK

RT官方針對ART-PI Smart開發板提供了完整的SDK開發包,該SDK有完整的bsp支持,并且有詳細的readme文件作為離線參考,在進行開發之前,先從gittee上獲取該sdk完整的文件(本人電腦離線使用居多,所以簡單粗暴直接從gittee上下載zip本地解壓即可)。這里需要注意一下,因為后續本人選擇的是scons構建工具通過ENV命令行窗口來進行構建,所以SDK放置的目錄一定不要有中文(任何開發設計工作,都不要出現中文路徑,這是個好習慣)。1.ART-Pi-Smart SDK倉庫

https://gitee.com/rtthread/ART-Pi-smart

2.ART-Pi-Smart 用戶手冊

https://art-pi.gitee.io/smart-website/docs/#/user_manual/user_manual?id=windows-%e4%b8%8b%ef%bc%8c%e5%bf%ab%e9%80%9f%e4%bd%93%e9%aa%8c-rt-smart

如下圖所示,是ART-PI Smart的SDK目錄結構:

855dd318-d1e4-11ec-bce3-dac502259ad0.jpg

如下圖所示,是開發板控制臺界面下smart系統目錄結構,具體開發板上電鏈接流程請參考官方文檔,此處不贅述。需要注意的是,電腦上要提前安裝cp210x的驅動。

85ed5114-d1e4-11ec-bce3-dac502259ad0.jpg

安裝ENV和SCONS構建工具

Env 是 RT-Thread 推出的開發輔助工具,針對基于 RT-Thread 操作系統的項目工程,提供編譯構建環境、圖形化系統配置及軟件包管理功能。其內置的 menuconfig 提供了簡單易用的配置剪裁工具,可對內核、組件和軟件包進行自由裁剪,使系統以搭積木的方式進行構建。

主要特性

menuconfig 圖形化配置界面,交互性好,操作邏輯強;
  • 豐富的文字幫助說明,配置無需查閱文檔;
  • 使用靈活,自動處理依賴,功能開關徹底;
  • 自動生成 rtconfig.h,無需手動修改;
  • 使用scons工具生成工程,提供編譯環境,操作簡單;
  • 提供多種軟件包,模塊化軟件包耦合關聯少,可維護性好;
  • 軟件包可在線下載,軟件包持續集成,包可靠性高;
具體的ENV安裝和使用,參考最權威的官方文檔即可,這里不做過多贅述啦。
  • RT官方ENV用戶手冊

https://www.rt-thread.org/document/site/#/development-tools/env/env

  • RT官方SCONS用戶手冊

https://www.rt-thread.org/document/site/#/development-tools/scons/scons

安裝對應系統下的編譯工具鏈

ART-PT Smart可以在windows下開發,也可以在Linux環境下開發,本人選擇了日常熟悉的windows環境開部署相關的編譯工具鏈,也方便后續新上手的朋友們快速熟悉。在解壓好的SDK根目錄下,找到toos文件夾,進去之后,在tools文件夾下,打開ENV窗口,輸入指令
1pythonget_toolchain.py
在主機保證聯網的前提下,該腳本會自動識別用戶當前的開發環境,自動安裝相匹配的編譯工具鏈

安裝完畢之后,在ENV命令行界面,輸入如下指令,查看工具鏈是否安裝正確:

1arm-linux-musleabi-gcc-v

出現如下內容代表工具鏈已經自動安裝好:

 1Usingbuilt-inspecs.
 2COLLECT_GCC=arm-linux-musleabi-gcc
 3COLLECT_LTO_WRAPPER=e:/test/rt-smart/tools/gnu_gcc/arm-linux-musleabi_for_i686-w64-mingw32/bin/../libexec/gcc/arm-linux-musleabi/7.3.0/lto-wrapper.exe
 4Target:arm-linux-musleabi
 5Configuredwith:../src_gcc/configure--disable-werror--prefix=--target=arm-linux-musleabi--with-sysroot=/arm-linux-musleabi--with-build-sysroot=/builds/research/musl-toolchain/build/arm-linux-musleabi_for_i686-w64-mingw32/sysroot/--enable-languages=c,c++--disable-multilib--enable-tls--disable-libmudflap--disable-libsanitizer--disable-gnu-indirect-function--disable-libmpx--enable-libstdcxx-time--host=i686-w64-mingw32--disable-bootstrapAR_FOR_TARGET=arm-linux-musleabi-arAS_FOR_TARGET=arm-linux-musleabi-asLD_FOR_TARGET=arm-linux-musleabi-ldNM_FOR_TARGET=arm-linux-musleabi-nmOBJCOPY_FOR_TARGET=arm-linux-musleabi-objcopyOBJDUMP_FOR_TARGET=arm-linux-musleabi-objdumpRANLIB_FOR_TARGET=arm-linux-musleabi-ranlibREADELF_FOR_TARGET=arm-linux-musleabi-readelfSTRIP_FOR_TARGET=arm-linux-musleabi-strip
 6Threadmodel:posix
 7gccversion7.3.0(GCC)
 8builddate:Sep30202113:47:19
 9buildsha:b998444eb32a74bdeb55fd70963187255ae6efe0
10buildjob:173019

接著,打開ENV工具,然后輸入執行:

1smart-env.bat
該操作是在進一步開發前先設置好環境變量(rt-smart 工具鏈、編譯器等),輸入如下指令,查看環境變量是否生效:
1setRTT

如果生效,則會顯示如下信息,否則請檢sdk相關查路徑是否有中文,或者工具鏈沒有安裝等。

1RTT_CC=gcc
2RTT_CC_PREFIX=arm-linux-musleabi-
3RTT_EXEC_PATH=E:	est
t-smart	oolsgnu_gccarm-linux-musleabi_for_i686-w64-mingw32
4in

(注意:后續每次打開ENV工具進行scons之類的操作,都必須線設置該環境變量,否則后續編譯構建將會報錯!)

構建和編譯內核

內核裁剪與構建

進入到SDK根目錄下,然后依次進入到ART-PI Smart BSP所在的目錄下,例如:

1盤符:..ART-Pi-smart-masterkernelspimx6ull-artpi-smart

在該目錄下,打開ENV命令行窗口,輸入指令:

1menuconfig

則ENV窗口會自動彈出內核的圖形配置界面,如下圖所示:
86659854-d1e4-11ec-bce3-dac502259ad0.png

在menuconfig配置界面下,有豐富的外設資源和各種系統相關的組件,以及內核相關的功能供開發者進行勾選、適配和裁剪。如果之前有過RT-Thread的開發經驗,那么這個流程將會非常熟悉。配置完成后,依次推出并保存,回到命令行界面,然后輸入如下指令對剛才配置好的內核進行編譯:
1scons

該編譯指令其實還可以配合其他參數一起使用,具體細節請參考前文提到的官方SCONS用戶手冊。

新內核的更新方式

在bsp目錄下,scons成功之后,將會生成內核的可執行文件,分別是:

1rtthread.bin
2rtthread.elf
3rtthread.imx
4rtthread.img

運行新的內核,本文只用到了以上兩種文件格式,分別是imx和bin格式的內核文件。

單次運行新內核

通過開發板網絡接口,可以傳輸內核文件到開發板并且執行,檢測內核當前運行情況。同時也可以利用開發板上第二個usb接口,通過上位機軟件加載啟動內核。這兩種方式在官方手冊里介紹的較為詳細,本文不再贅述。請參考前文給出的官方鏈接。
在這里提及這種方式,主要是想引出一個自己遇到的問題,本人手中的板子,emmc文件系統上的內核文件版本較老,網絡IP不能靜態設置,只能DHCP動態分配,而我身邊恰好沒有路由器,更新之后內核用到官方的方式加載運行之后,可以正常設置靜態IP,但是復位之后,系統內核又回到舊的版本,也就是說,上面提到的官方示例的加載運行方式是把內核文件加載到RAM種運行了,所以,如果跟我一樣有需要把內核文件上傳到emmc的文件系統中的朋友,可以用下面兩種方式。

固化內核到EMMC文件系統

方法一:通過webserver傳輸目前Smart的內核中,帶有webclien.elf程序,在電腦端可以建立一個webserver服務器,在板子上,執行webclient.elf,可以直接訪問并下載對應路徑下的內核bin文件,然后在控制臺窗口,通過cp指令把新的內核bin文件拷貝覆蓋到舊的內核所在的路徑下即可。這種方式比較一勞永逸,但是,在本人實際測試過程中,webclient下載到的文件一直出錯,文件大小也不對。不知道是否是webclient.elf源碼有bug。該方法暫時記錄在此處,有興趣研究的朋友可以后續自行嘗試。 下面貼出我在電腦端建立建議websever的python指令:
1python-mhttp.server8080

方法二:通過sd傳輸除了web下載內核bin文件到emmc上的文件系統中,還可以更簡單粗暴的通過sd卡把bin文件傳輸到文件系統中。該過程較為簡單,在系統控制臺界面,進入sd卡的bin文件所在路徑,直接cp操作就ok。
這里需要記錄一下本人在使用SD卡時出現的小問題。當前smart系統不支持sd卡的熱插拔檢測,所以,在系統運行時,拔掉sd卡,內核會報rt_device相關的錯誤。其二是,在系統初始化打印信息的時候,每次都提示SD卡初始化失敗,但是進入系統后,sd卡目錄又能正常訪問,不知道是不是系統bug,后續感興趣的朋友可以嘗試解決一下。

用戶態程序編譯

內核的相關操作之后,就是用戶APP程序的相關操作介紹了。這一部分較為簡單,在ENV窗口下(確保已經執在根目錄下行過set RTT指令,并且檢查環境變量是正確的),進入到如下路徑
1盤符:...ART-Pi-smart-masteruserapps
該路徑下apps文件夾下,存放的是用戶app的源文件,例如HELLO文件夾下,存放的就是輸出“hello world”的歷程源碼,在root/bin路徑下,存放的是用戶app對應編譯生成的系統elf格式的可執行文件。用戶APP程序構建使用的是SCONS工具,該工具采用的python語言編寫,類似于Liunx下常用的的Cmake之類的工具,我們以官方hello程序為例,默認scons構建腳本已經寫好,具體scons的操作方法,請參考前文提到的官網文檔,此處不贅述。此時在ENV界面下,輸入如下指令即可完成編輯和生成elf文件:
1scons--app=hello

編譯成功之后,會看到相應的信息和生成的elf文件名稱,如果程序有語法錯誤,那么此處會有詳細的報錯。這里再本人測試使用中發現一個問題,當前編譯檢查較為嚴格,移植之前自己寫的小例程,發現一些沒有調用的變量和函數,統統會被視為錯誤,或者一些不是那么匹配的數據類型(如char到int之類的),也是直接全部報錯,而不是警告,這一點是可以修改編譯規則的,但是本人太熟悉對應的腳本文件,所以暫時沒有處理,在次提出該問題,供后來朋友避坑。

用戶態程序下載運行

在sd卡運行

用戶程序生成的elf文件,在root/bin路徑下,拷貝該elf文件到sd卡,并且掛載sd卡到系統上,進入到對應目錄,即可運行用戶的應用程序。這個方法對于需要反復調試的操作很不友好。所以更推薦下面這種做法。

tftp方式運行

在群友@Red 的推薦下,本人測試了一款開源的tftp客戶端,名字叫做tftpx
tftpx github倉庫鏈接

https://github.com/ideawu/tftpx/blob/master/client.c

它在開發板上運行之后,配合電腦端tftp服務器,即可下載對應路徑下的elf文件到板子系統中去。電腦端推薦使用tftp64.exe這個軟件,按照要求建立好TFTP服務器,設置好IP和文件所在路徑,即可。然后通過SD卡,把tftpx.elf文件拷貝到板子系統root/bin路徑下,并且執行,執行格式如下:
1tftpx.elf192.168.1.1008080

此時只要網絡暢通,就會提示相應的操作說明,我們可以輸入如下指令,來下載剛剛編譯好的hello.elf

用戶app。

1gethello.elf

下載完畢后退出,即可。本人把編譯好的tftpx.elf文件放在附件中,供有需要的朋友下載使用。如果您有更方便更高效的elf傳輸加載方式,也可回帖分享介紹哦。(●'?'●)

總結

rt-smart作為國產新一代操作系統。未來可期。在起步階段,能做到當下的完成程度,實屬不易,任何一個做軟件開發的工程師,都能想象到這其中的艱辛和不易。在本次初步使用過程中,既體會到了RT系統高效精煉的特點,也發現了些許問題,在積極與群里各位大佬交流中,不僅解決了問題,還學到了很多其他方面的知識。我認為這才是一種良心循環。作為一個開源系統,衷心希望在@bernard 的帶領下,大家都多多參與進來,貢獻自己微薄的力量,讓Smart在未來能以洪水之勢迅猛發展。最后,再次感謝RT官方提供的這次試用機會,感謝熊大@bernard 在半夜還在給大家解決問題.感謝@RT-Thread小師弟認真負責的態度,在疫情期間保證了板子的順利發貨以及本活動的順利進行。本人預計后續會陸續把最近在使用過程中的一些心得、程序設計等方面的感悟分享出來。作為該分享的第一篇,我想以詩人北島的詩《回答》中的幾句話,作為第一篇文章的結束;致代碼,致理想,致這個世界上每一個參與開源項目的蕓蕓碼農。
“如果海洋注定要決堤,
就讓所有的苦水都注入我心中,
如果陸地注定要上升,
就讓人類重新選擇生存的峰頂。
新的轉機和閃閃星斗,
正在綴滿沒有遮攔的天空。
那是五千年的象形文字,
那是未來人們凝視的眼睛。”
---北島《回答》節選

作者:RT-Thread社區成員RickFlying

原文標題:RickFlying

文章出處:【微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • NXP
    NXP
    +關注

    關注

    60

    文章

    1243

    瀏覽量

    181455
  • 開發板
    +關注

    關注

    25

    文章

    4766

    瀏覽量

    96149
  • RT-Thread
    +關注

    關注

    31

    文章

    1238

    瀏覽量

    39424

原文標題:RickFlying

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ART-Pi Smart開發板開箱及愛之初次體驗

    ART-Pi Smart 開發板初次嘗鮮,ART-Pi Smart開箱及初次體驗內置應用.
    的頭像 發表于 05-03 16:25 ?4797次閱讀
    <b class='flag-5'>ART-Pi</b> <b class='flag-5'>Smart</b><b class='flag-5'>開發板</b>開箱及愛之初次體驗

    ART-Pi Smart開發板開箱體驗

    拿到開發板,首先考慮的是如何接線,先看了一遍sdk包里面 ART-Pi-smart-masterdocuments目錄下的操作文檔,然后拿了一根TypeC的usb線連接開發板并開始體驗ART-
    發表于 07-07 11:15 ?1076次閱讀

    ART Pi Smart基于RT-Thread Smart系統的LVGL移植

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

    ART-PI開發板是如何與5寸LCD屏幕進行連接的?

    如何啟用TouchGFX的lib庫?怎樣將觸摸坐標傳到TouchGFX中去?ART-PI開發板是如何與5寸LCD屏幕進行連接的?有哪些流程?
    發表于 07-06 06:11

    請問ART-PI開發板如何連接玫瑰科技5寸LCD屏幕?

    請問ART-PI開發板如何連接玫瑰科技5寸LCD屏幕?
    發表于 10-27 06:09

    Art-Pi開發板學習筆記資料匯總

    正常顯示。 ** 1.LVGL 不支持 24bit 的色彩,而 Art-Pi 媒體擴展版上的 LCD 剛好就是 24bit 的。開發環境: rt-thread studio 開發板
    發表于 03-21 14:56

    怎樣將art-pi的基于rtt的bootloader移植到stm32h750vbt6開發板

    開發環境:rt-thread studio開發板ART-PI和stm32h750vbt6通用開發板手頭除了
    發表于 03-22 09:56

    基于ART-Pi Smart平臺的設計方案推薦

    播放的功能;SDL2 的功能不僅僅局限于圖片、視頻的播放;得益于 SDL2 豐富的拓展庫,開發者可以快速、方便地實現非常多好玩的應用,例如:游戲開發。所以,在本篇文章中,基于 SDL2 以及其拓展庫,我們將在 ART-Pi
    發表于 03-24 16:56

    如何在Windows下搭建一種rt-smart開發環境

    構建環境(scons)、圖形化系統配置(menuconfig)及軟件包管理功能等工具通過 ART-Pi-Smart SDK 倉庫 (Gitee)下載最新的 ART-Pi Smart S
    發表于 03-30 17:02

    配置ART-Pi Smart開發板的啟動方式資料推薦

    BOOT_MODE 寄存器、eFUSEs、配置管腳等狀態來決定啟動模式以及啟動設備。故在啟動前,用戶可根據自己需要配置 ART-Pi Smart 開發板的啟動方式。目前,ART-Pi
    發表于 05-05 17:30

    ART-Pi Smart開發板啟動rtthread內核與開發環境搭建體驗

    體驗ART-Pi開發板。連接的usb口是一個usb轉串口,使用串口工具鏈接ART-Pi Smart開發板,我們使用的是SecureCRT,在
    發表于 06-20 11:58

    基于ART-PI開發板的智能管家精靈的設計

    概述主控平臺以 ART-PI 開發板為核心,主要任務是抓取網絡數據、如天氣、疫情等,并由OLED實時顯示最新數據,同時將抓取的數據當做log文件存儲在SD卡上,供后續分析使用。并推送室內環境信息如
    發表于 09-02 15:21

    ART-Pi LoRa開發套件教程相關資料分享

    1、ART-Pi LoRa 開發套件簡介  ART-Pi LoRa 開發套件(LSD4RFB-2EVKM0201)是利爾達科技與睿賽德科技聯合出品的一套面向物聯網
    發表于 09-30 11:57

    ART-PI開發板為核心的智能管家精靈設計

    概述 主控平臺以 ART-PI 開發板為核心,主要任務是抓取網絡數據、如天氣、疫情等,并由OLED實時顯示最新數據,同時將抓取的數據當做log文件存儲在SD卡上,供后續分析使用。 并推送室內環境信息
    的頭像 發表于 12-25 15:34 ?1704次閱讀

    RT-Thread聯合百問科技出品ART-Pi Smart開發板

    ART-Pi Smart 開發板是RT-Thread聯合百問科技出品,用于學習和評估RT-Thread Smart微內核操作系統。 硬件配置 i.MX6ULL,單核 ARM Corte
    的頭像 發表于 11-16 14:32 ?2839次閱讀