測試背景
樹莓派4是芯巴客社區(qū)非常熱門的一款創(chuàng)客小電腦,是全世界單板電腦的一個新標(biāo)桿,作為Raspberry Pi 最新一代的產(chǎn)品,并且得益于處理器芯片使用了4個Cortex A72架構(gòu)的計算核心,主屏高達(dá)1.5GHz,具有接近日常辦公電腦的性能。
近年來隨著物聯(lián)網(wǎng)行業(yè)的發(fā)展,涌現(xiàn)出很多優(yōu)秀的物聯(lián)網(wǎng)操作系統(tǒng)(IoT OS),這些IoT OS的內(nèi)核以Linux、VxWorks、RTOS等為基礎(chǔ),常見的RTOS有uCOS、ChibiOS、FreeRTOS、RT-Thread等。今天我們要用來測試樹莓派4的就是小而美的RT-Thread(簡稱RTT),他是國人自主開發(fā)并且是目前國內(nèi)最廣泛使用的開源RTOS。
RTT最近提供了樹莓派4的板級支撐,我們可以從RTT源碼的SBC目錄找到樹莓派4的分支。通過RTT系統(tǒng),樹莓派可以與其他主流的Cortex-M內(nèi)核的單片機(jī)在相同的系統(tǒng)下進(jìn)行跑分測試,這是件非常有趣的事情。于是便有了今天這個評測。
考慮到部分時間寶貴玩家沒有時間看完全文,我們把重要的內(nèi)容放在最前面匯報,直接說重點(diǎn),樹莓派4的測試成績是3.772 DMIPS/MHz。該計算速度達(dá)到了行業(yè)內(nèi)領(lǐng)先水平。全劇終^_^
玩笑開大了,小伙伴們,我們收。
編譯環(huán)境搭建
樹莓派的RTT系統(tǒng)在windows下使用RT-Studio作為IDE,編譯環(huán)境通過ENV工具實(shí)現(xiàn),其中編譯器ARM GCC集成在ENV工具里。當(dāng)然,您也可以像我一樣自定義最小化搭建這個編譯環(huán)境。
我先安裝了env工具。注意前面那個“env工具”上的藍(lán)色帶下劃線的超鏈接符號了嗎?大家可以點(diǎn)進(jìn)去下載了。env工具下載后解壓到你喜歡的路徑便可。
然后安裝gcc工具到env文件夾下的編譯工具目錄,我用的是gcc-arm-8.3-2019.03-i686-mingw32-aarch64-elf。發(fā)現(xiàn)這里的“gcc工具”又有超鏈接符號了嗎?大家又可以點(diǎn)進(jìn)去下載了。
接下來,把gcc-arm-8.3-2019.03-i686-mingw32-aarch64-elf解壓出來放到env的工具目錄里。完成后的路徑應(yīng)該是長這樣(我特意在描述路徑時省略了盤符和env上一級的目錄,也許有的同學(xué)是放在program files目錄,而有的同學(xué)是直接放在根目錄):
env/tools/gnu_gcc/arm_gcc/gcc-arm-8.3-2019.03-i686-mingw32-aarch64-elf
最后,下載RTT的源代碼,命令如下:
git clone https://github.com/RT-Thread/rt-thread.git
RTT源碼下載完畢后,進(jìn)入rt-thread/bsp/raspberry-pi/raspi4-64路徑,修改一下rtconfig.py文件,把EXEC_PATH的值修改到一直指到gcc-arm-8.3-2019.03-i686-mingw32-aarch64-elf下面的bin目錄。然后,在當(dāng)前路徑下(raspi4-64)打開env,在env里輸入scons回車。
如果你發(fā)現(xiàn)scons回車后編譯報錯信息如下,這表明環(huán)境搭建完成。至于怎么解決這個報錯,后面我們再填坑。
別走開,下面的第3小節(jié)教您修復(fù)方法。
scons編譯報錯修復(fù)方法
也許你跟著RTT源碼里的readme教程一步步做,也卡在scons這一步了,那么我的這一小節(jié)教程可以幫到您。
scons報錯原理很簡單,它與源代碼被其他項目編譯過有關(guān)。
解決的思路很簡單,我們只需要先執(zhí)行一下清理。
清理命令:
scons -c
然后,你就可以正常使用scons編譯了。
解決過程的截圖如下:
編譯完成后會在raspi4-64目錄生成一個rtthread.bin文件,把它放到樹莓派系統(tǒng)TF卡的boot目錄里,修改boot目錄里的config.txt的內(nèi)容為如下:
enable_uart=1
arm_64bit=1
kernel=rtthread.bin
core_freq=250
以上這個config.txt文件設(shè)置了串口調(diào)試和內(nèi)核文件,并把主頻設(shè)置為250MHz。會玩的小伙伴還可以把主頻設(shè)置高一點(diǎn)。
樹莓派4串口調(diào)試使用方法
給樹莓派的調(diào)試串口接上串口調(diào)試線,注意這里5V接口是不需要連接的,我們只使用GND、TX和RX。
確保TF卡插好后,先把USB轉(zhuǎn)串口模塊插到電腦上,啟動串口調(diào)試工具,然后給樹莓派上電。注意樹莓派上電在最后做,順序不要反。你應(yīng)該能在串口調(diào)試助手里看到下圖的啟動打印輸出。我的這個RTT系統(tǒng)是新編譯的,所以編譯日期是今天,1月20日。串口調(diào)試打印如下圖所示:
給RTT系統(tǒng)增加Dhrystone軟件
下面我們回到RTT系統(tǒng)編譯環(huán)境,重新制作一個帶有性能跑分軟件的系統(tǒng)。
在前面env環(huán)境里輸入menuconfig回車進(jìn)入RTT內(nèi)核設(shè)置,在online packages里的tools packages里找到DHRYSTONE,按空格給他打上勾,如下圖所示。
Dhrystone是測量處理器運(yùn)算能力的最常見基準(zhǔn)程序之一,常用于處理器的整型運(yùn)算性能的測量。程序是用C語言編寫的,因此C編譯器的編譯效率對測試結(jié)果也有很大影響。因此我們測試時候一定要把編譯器版本和編譯時候的優(yōu)化級別也一起考慮,盡量不要把不同優(yōu)化級別的程序放在一起比較。
另外,上圖里另一個CoreMark也是個跑分軟件,但是我測試有些問題,先不管那個CoreMark。
編譯器設(shè)置文件在rtconfig.py,本次使用的gcc版本為8.3,如下圖所示
默認(rèn)優(yōu)化級別是O2,如下圖所示,我們先用這個默認(rèn)優(yōu)化級別把Dhrystone的編譯過程走通,后一小節(jié)再做O0級別優(yōu)化的測試。
Dhrystone屬于online package,沒有集成在默認(rèn)的源碼里,需要在線下載,做完menuconfig以后還需要用命令pkgs update把Dhrystone的源碼下載,如下圖所示。這步很重要,別忘了下載,不然白白讓費(fèi)編譯時間。
用scones命令編譯出新的rtthread.bin,并放入樹莓派的boot目錄替換。這次啟動后可以用help命令查看可以使用的命令,并找到dhrystone_test,如下圖所示:
跑一下試試,默認(rèn)參數(shù)是循環(huán)320000次,如下圖所示:
因?yàn)樗俣忍欤瑏聿患坝嫊r,所以測試失敗,如下圖所示:
因此,接下來,我們要回去修改一下menuconfig的設(shè)置參數(shù),給循環(huán)次數(shù)再多加兩個0...
原文標(biāo)題:測評|使用RT-Thread對樹莓派4進(jìn)行性能測試
文章出處:【微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
RT-Thread
+關(guān)注
關(guān)注
31文章
1273瀏覽量
39933 -
樹莓派
+關(guān)注
關(guān)注
116文章
1699瀏覽量
105534 -
RTThread
+關(guān)注
關(guān)注
8文章
132瀏覽量
40811
原文標(biāo)題:測評|使用RT-Thread對樹莓派4進(jìn)行性能測試
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論