?前言
本文適用開(kāi)發(fā)環(huán)境如下:
Windows開(kāi)發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit
虛擬機(jī):VMware15.5.5
Linux開(kāi)發(fā)環(huán)境:Ubuntu18.04.464bit
LinuxSDK:T113_Tina5.0-V1.0(Linux)
Kernel:Linux-RT-5.4.61
我司提供的Linux-RT內(nèi)核應(yīng)用了開(kāi)源的RT PREEMPT機(jī)制進(jìn)行補(bǔ)丁。PREEMPT_RT補(bǔ)丁的關(guān)鍵是最小化不可搶占的內(nèi)核代碼量,同時(shí)最小化必須更改的代碼量,以便提供這種附加的可搶占性。PREEMPT_RT補(bǔ)丁利用Linux內(nèi)核的SMP功能來(lái)添加這種額外的搶占性,而不需要完整的內(nèi)核重寫(xiě)。Linux-RT內(nèi)核增加PREEMPT_RT補(bǔ)丁后,增加了系統(tǒng)響應(yīng)的確定性和實(shí)時(shí)性,但是代價(jià)是CPU性能降低。
Linux-RT內(nèi)核與普通Linux內(nèi)核相比,幾個(gè)主要的相同之處是:
具有相同的開(kāi)發(fā)生態(tài)系統(tǒng),包括相同工具鏈、文件系統(tǒng)和安裝方法,以及相同的POSIX API等。
仍然存在內(nèi)核空間和用戶空間的劃分。
Linux應(yīng)用程序在用戶空間中運(yùn)行。
Linux-RT內(nèi)核與普通Linux內(nèi)核在常規(guī)編程方式上的幾個(gè)主要不同之處是:
調(diào)度策略。
優(yōu)先級(jí)和內(nèi)存控制。
基于Linux-RT內(nèi)核的應(yīng)用程序使用了調(diào)度策略后,系統(tǒng)將根據(jù)調(diào)度策略對(duì)其進(jìn)行調(diào)優(yōu)。
Linux系統(tǒng)實(shí)時(shí)性測(cè)試
本章節(jié)主要介紹使用Cyclictest延遲檢測(cè)工具測(cè)試Linux系統(tǒng)實(shí)時(shí)性的方法。Cyclictest是rt-tests測(cè)試套件下的一個(gè)測(cè)試工具,也是rt-tests下使用最廣泛的測(cè)試工具,一般主要用來(lái)測(cè)試內(nèi)核的延遲,從而判斷內(nèi)核的實(shí)時(shí)性。
我司默認(rèn)使用是的Linux內(nèi)核,同時(shí)提供了Linux-RT內(nèi)核位于產(chǎn)品資料“4-軟件資料LinuxKernelimagelinux-5.4-[版本號(hào)]-[Git系列號(hào)]nand”目錄下,請(qǐng)按照如下方法替換為L(zhǎng)inux-RT內(nèi)核。
將Linux-RT內(nèi)核鏡像boot-rt.fex和Linux-RT內(nèi)核配套的內(nèi)核模塊目錄modules-rt拷貝至Ubuntu工作目錄下,執(zhí)行如下命令,進(jìn)入modules-rt目錄下將Linux-RT內(nèi)核模塊壓縮包解壓。
Host# cd modules-rt/
Host# tar -zxf 5.4.61-rt37-gb1bd4aa.tar.gz
圖 1
將內(nèi)核鏡像和解壓后的內(nèi)核模塊拷貝至評(píng)估板文件系統(tǒng)任意目錄下。執(zhí)行如下命令,分別替換內(nèi)核鏡像和內(nèi)核模塊至Linux系統(tǒng)啟動(dòng)卡,評(píng)估板重啟生效。
備注:若使用eMMC配置評(píng)估板,請(qǐng)使用emmc目錄下的Linux-RT內(nèi)核鏡像和Linux-RT內(nèi)核模塊,并修改Linux系統(tǒng)啟動(dòng)卡對(duì)應(yīng)設(shè)備節(jié)點(diǎn)為"/dev/mmcblk1p4"。
Target# dd if=boot-rt.fexof=/dev/mmcblk0p4
Target# rm /lib/modules/* -rf
Target# cp 5.4.61-rt37-gb1bd4aa/ /lib/modules/ -r
Target# sync
Target# reboot
圖 2
圖 3Linux-RT內(nèi)核
Cyclictest工具簡(jiǎn)介
Cyclictest常用于實(shí)時(shí)系統(tǒng)的基準(zhǔn)測(cè)試,是評(píng)估實(shí)時(shí)系統(tǒng)相對(duì)性能的最常用工具之一。Cyclictest反復(fù)測(cè)量并精確統(tǒng)計(jì)線程的實(shí)際喚醒時(shí)間,以提供有關(guān)系統(tǒng)的延遲信息。它可測(cè)量由硬件、固件和操作系統(tǒng)引起的實(shí)時(shí)系統(tǒng)的延遲。
為了測(cè)量延遲,Cyclictest運(yùn)行一個(gè)非實(shí)時(shí)主線程(調(diào)度類SCHED_OTHER),該線程以定義的實(shí)時(shí)優(yōu)先級(jí)(調(diào)度類SCHED_FIFO)啟動(dòng)定義數(shù)量的測(cè)量線程。測(cè)量線程周期性地被一個(gè)到期的計(jì)時(shí)器(循環(huán)報(bào)警)所定義的間隔喚醒,隨后計(jì)算有效喚醒時(shí)間,并通過(guò)共享內(nèi)存將其傳遞給主線程。主線程統(tǒng)計(jì)延遲值并打印最小、最大和平均延遲時(shí)間。
參考鏈接:https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/start?s[]=cyclictest。
使用Cyclictest測(cè)試系統(tǒng)實(shí)時(shí)性
本次測(cè)試對(duì)比基于Linux-RT-5.4.61內(nèi)核和Linux-5.4.61內(nèi)核的Linux系統(tǒng)實(shí)時(shí)性。參照如下步驟,結(jié)合Iperf和Cyclictest工具測(cè)試系統(tǒng)的實(shí)時(shí)性。此處使用Iperf工具不斷觸發(fā)系統(tǒng)中斷,提高中斷處理負(fù)載,以便更好測(cè)試系統(tǒng)實(shí)時(shí)特性。
在Ubuntu執(zhí)行如下命令查看IP地址,并以服務(wù)器模式啟動(dòng)Iperf測(cè)試。
Host# ifconfig
Host# iperf-s
圖 4
分別使用Linux-RT-5.4.61內(nèi)核和Linux-5.4.61內(nèi)核啟動(dòng)評(píng)估板,執(zhí)行如下命令以客戶端模式啟動(dòng)Iperf,并連接至服務(wù)器端(Ubuntu系統(tǒng))。"192.168.1.209"為Ubuntu的IP地址,"-t3600"指定測(cè)試時(shí)間為3600秒,"&"表示讓程序在后臺(tái)運(yùn)行。
Target# iperf -c 192.168.1.209 -d -t3600 > /dev/null 2>&1 &
圖 5
執(zhí)行如下命令使用Cyclictest程序測(cè)試系統(tǒng)實(shí)時(shí)性。
Target# cyclictest -t5 -p98 -m -n -D10m

圖 7Linux-5.4.61內(nèi)核測(cè)試結(jié)果
表 1Cyclictest測(cè)試結(jié)果說(shuō)明
對(duì)比測(cè)試數(shù)據(jù),可看到基于Linux-RT-5.4.61內(nèi)核的系統(tǒng)的延遲更加穩(wěn)定,平均延遲、最大延遲更低,系統(tǒng)實(shí)時(shí)性更佳。
Cyclictest命令參數(shù)解析可執(zhí)行"cyclictest --help"查看,如下圖所示。
圖 8
圖 9
Linux-RT性能測(cè)試
本次測(cè)試分別在CPU空載、滿負(fù)荷(運(yùn)行stress壓力測(cè)試工具)、隔離CPU核心的情況下,對(duì)比評(píng)估Linux-RT內(nèi)核的系統(tǒng)實(shí)時(shí)性。
CPU空載狀態(tài)
評(píng)估板上電啟動(dòng),進(jìn)入評(píng)估板文件系統(tǒng)執(zhí)行如下命令,修改內(nèi)核printk日志等級(jí),避免內(nèi)核打印信息影響實(shí)時(shí)測(cè)試。
Target# echo 1 > /proc/sys/kernel/printk
調(diào)整內(nèi)存分配策略為“2”,禁用內(nèi)存過(guò)度使用。避免出現(xiàn)OOM(Out-of-Memory) Killer攻擊某些進(jìn)程而產(chǎn)生延遲,影響測(cè)試結(jié)果。
Target# echo 2 > /proc/sys/vm/overcommit_memory
圖 10
執(zhí)行如下命令,基于CPU空載狀況下測(cè)試系統(tǒng)的實(shí)時(shí)性。測(cè)試指令需運(yùn)行12小時(shí),請(qǐng)保持評(píng)估板長(zhǎng)時(shí)間穩(wěn)定工作,測(cè)試完成后將生成統(tǒng)計(jì)結(jié)果output文件。
Target# cyclictest -m -n -Sp99 -i1000 -h800 -D12h -q > output
圖 11
參數(shù)解析:
-m:鎖定當(dāng)前和將來(lái)的內(nèi)存分配;
-n:使用clock_nanosleep;
-S:采用標(biāo)準(zhǔn)SMP測(cè)試;
-p:設(shè)置線程優(yōu)先級(jí);
-i:設(shè)置線程的基本間隔;
-h:運(yùn)行后將延遲直方圖轉(zhuǎn)儲(chǔ)至標(biāo)準(zhǔn)輸出,亦可指定要跟蹤的最大延時(shí)時(shí)間(以微秒為單位);
-D:指定測(cè)試運(yùn)行時(shí)長(zhǎng),附加m(分鐘)、h(小時(shí))、d(天)指定;
-q:運(yùn)行時(shí)不打印相關(guān)信息;
CPU滿負(fù)荷狀態(tài)
評(píng)估板上電啟動(dòng),進(jìn)入評(píng)估板文件系統(tǒng)執(zhí)行如下命令,修改內(nèi)核printk日志等級(jí),避免內(nèi)核打印信息影響實(shí)時(shí)測(cè)試。
Target# echo 1 > /proc/sys/kernel/printk
調(diào)整內(nèi)存分配策略為“2”,禁用內(nèi)存過(guò)度使用。避免出現(xiàn)OOM(Out-of-Memory) Killer攻擊某些進(jìn)程而產(chǎn)生延遲,影響測(cè)試結(jié)果。
Target# echo 2 > /proc/sys/vm/overcommit_memory
圖 12
執(zhí)行如下命令,運(yùn)行stress壓力測(cè)試工具,使得CPU處于滿負(fù)荷狀態(tài)。再使用cyclictest工具測(cè)試CPU滿負(fù)荷狀態(tài)下的系統(tǒng)實(shí)時(shí)性能。測(cè)試指令需運(yùn)行12小時(shí),請(qǐng)保持評(píng)估板長(zhǎng)時(shí)間穩(wěn)定工作,測(cè)試完成后將生成統(tǒng)計(jì)結(jié)果output文件。
Target# stress --cpu 2--io 2--vm 2--vm-bytes 32M --timeout43200s &
Target# cyclictest -m -n -Sp99 -i1000 -h800 -D12h -q > output
圖 13
參數(shù)解析:
--cpu:指定壓力測(cè)試的進(jìn)程個(gè)數(shù);
--io:指定I/O測(cè)試的進(jìn)程個(gè)數(shù);
--vm:指定內(nèi)存測(cè)試的進(jìn)程個(gè)數(shù);
--vm-bytes:指定每個(gè)內(nèi)存測(cè)試進(jìn)程中分配內(nèi)存的大小;
--timeout:指定測(cè)試時(shí)長(zhǎng);
隔離CPU核心狀態(tài)
本次測(cè)試以隔離CPU1核心為例,通過(guò)降低系統(tǒng)上所運(yùn)行的其他進(jìn)程對(duì)隔離CPU1產(chǎn)生的延遲影響,確保CPU1進(jìn)程的正常運(yùn)行,進(jìn)而評(píng)估Linux-RT內(nèi)核的系統(tǒng)實(shí)時(shí)性。
評(píng)估板上電啟動(dòng)后,在U-Boot倒計(jì)時(shí)結(jié)束之前按下空格鍵進(jìn)入U(xiǎn)-Boot命令行模式,執(zhí)行如下命令,修改環(huán)境變量,隔離CPU1核心。
U-Boot# setenv setargs_sd setenv bootargs clk_ignore_unused initcall_debug=${initcall_debug} console=${console} loglevel=${loglevel} root=${sd_root} init=${init} partitions=${partitions} cma=${cma} snum=${snum} mac_addr=${mac} wifi_mac=${wifi_mac} bt_mac=${bt_mac} specialstr=${specialstr} gpt=1 isolcpus=1
U-Boot# setenv setargs_nand_ubi setenv bootargs ubi.mtd=${mtd_name} clk_ignore_unused initcall_debug=${initcall_debug} console=${console} loglevel=${loglevel} root=${nand_root} rootfstype=${rootfstype} init=${init} partitions=${partitions} cma=${cma} snum=${snum} mac_addr=${mac} wifi_mac=${wifi_mac} bt_mac=${bt_mac} specialstr=${specialstr} gpt=1 isolcpus=1
U-Boot# saveenv
U-Boot# reset
圖 14
備注:若為eMMC配置評(píng)估板,請(qǐng)執(zhí)行如下命令,修改環(huán)境變量,隔離CPU1核心。
U-Boot# setenv setargs_emmc setenv bootargs clk_ignore_unused initcall_debug=${initcall_debug} console=${console} loglevel=${loglevel} root=${emmc_root} init=${init} partitions=${partitions} cma=${cma} snum=${snum} mac_addr=${mac} wifi_mac=${wifi_mac} bt_mac=${bt_mac} specialstr=${specialstr} gpt=1 isolcpus=1
U-Boot# setenv setargs_sd setenv bootargs clk_ignore_unused initcall_debug=${initcall_debug} console=${console} loglevel=${loglevel} root=${sd_root} init=${init} partitions=${partitions} cma=${cma} snum=${snum} mac_addr=${mac} wifi_mac=${wifi_mac} bt_mac=${bt_mac} specialstr=${specialstr} gpt=1 isolcpus=1
U-Boot# saveenv
U-Boot# reset
進(jìn)入評(píng)估板文件系統(tǒng),執(zhí)行如下命令,修改內(nèi)核printk日志等級(jí),避免內(nèi)核打印信息影響實(shí)時(shí)測(cè)試。
Target# echo 1 > /proc/sys/kernel/printk
調(diào)整內(nèi)存分配策略為“2”,禁用內(nèi)存過(guò)度使用。避免出現(xiàn)OOM(Out-of-Memory) Killer攻擊某些進(jìn)程而產(chǎn)生延遲,影響測(cè)試結(jié)果。
Target# echo 2 > /proc/sys/vm/overcommit_memory
圖 15
執(zhí)行如下命令,運(yùn)行stress壓力測(cè)試工具,使得CPU處于滿負(fù)荷狀態(tài)。再使用taskset工具將cyclictest測(cè)試程序運(yùn)行在CPU1核心,測(cè)試CPU1核心滿負(fù)荷狀態(tài)下的系統(tǒng)實(shí)時(shí)性能。測(cè)試指令需運(yùn)行12小時(shí),請(qǐng)保持評(píng)估板長(zhǎng)時(shí)間穩(wěn)定工作,測(cè)試完成后將生成統(tǒng)計(jì)結(jié)果output文件。
Target# stress --cpu 2 --io 2 --vm 2 --vm-bytes 32M --timeout 43200s &
Target# taskset -c 0,1 cyclictest -m -n -Sp99 -i1000 -h800 -D12h -q > output
圖 16
統(tǒng)計(jì)結(jié)果分析
我司已提供腳本文件get_histogram.sh用于繪制統(tǒng)計(jì)結(jié)果直方圖,位于產(chǎn)品資料“4-軟件資料Demolinux-rt-demosCyclictestbin”目錄下,請(qǐng)將該腳本文件拷貝至Ubuntu工作目錄下。
圖 17
在Ubuntu系統(tǒng)執(zhí)行如下命令,安裝gnuplot工具。
Host# sudo apt-get install gnuplot
圖 18
CPU空載狀態(tài)
請(qǐng)將CPU空載狀態(tài)下的統(tǒng)計(jì)結(jié)果output文件拷貝至Windows工作目錄,使用Windows文本工具打開(kāi)該文件并拖動(dòng)至文件末尾,可查看Linux系統(tǒng)每個(gè)核心(CPU0~CPU1)的最小延遲(MinLatencies)、平均延遲(AvgLatencies)、最大延遲(MaxLatencies)統(tǒng)計(jì)結(jié)果。
圖 19
請(qǐng)將CPU空載狀態(tài)下的統(tǒng)計(jì)結(jié)果output文件拷貝至Ubuntu,存放在get_histogram.sh同一目錄下。執(zhí)行如下命令生成直方圖文件plot.png,請(qǐng)將其拷貝至Windows下并打開(kāi)。
Host# ./get_histogram.sh
圖 20
圖 21
根據(jù)測(cè)試結(jié)果output文件數(shù)據(jù)以及結(jié)合直方圖,可得主要數(shù)據(jù)如下表。本次測(cè)試中,CPU1核心Max Latencies值最大,為59us,CPU0核心的Max Latencies值最小,為52us。
備注:測(cè)試數(shù)據(jù)與實(shí)際測(cè)試環(huán)境有關(guān),僅供參考。
表 2
CPU滿負(fù)荷狀態(tài)
參考如上方法,分析CPU滿負(fù)荷狀態(tài)下的統(tǒng)計(jì)結(jié)果如下所示。本次測(cè)試中,CPU0核心Max Latencies值最大,為91us,CPU1核心的Max Latencies值最小,為75us。
圖 22
表 3
隔離CPU核心狀態(tài)
參考如上方法,分析隔離CPU核心狀態(tài)下的統(tǒng)計(jì)結(jié)果如下所示。本次測(cè)試中,CPU0核心Max Latencies值最大,為61us,隔離CPU1核心的Max Latencies值最小,為55us。
圖 23
表 4
根據(jù)CPU空載、CPU滿負(fù)荷、隔離CPU核心三種狀態(tài)的測(cè)試結(jié)果可知:當(dāng)程序指定至隔離的CPU1核心上運(yùn)行時(shí),Linux系統(tǒng)延遲最低,可有效提高系統(tǒng)實(shí)時(shí)性。故推薦對(duì)實(shí)時(shí)性要求較高的程序(功能)指定至隔離的CPU核心運(yùn)行。
rt_gpio_ctrl案例
案例說(shuō)明
通過(guò)創(chuàng)建一個(gè)基本的實(shí)時(shí)線程,在線程內(nèi)觸發(fā)LED的電平翻轉(zhuǎn),同時(shí)程序統(tǒng)計(jì)實(shí)時(shí)線程的調(diào)度延時(shí),并通過(guò)示波器測(cè)出LED電平兩次翻轉(zhuǎn)的時(shí)間間隔。由于程序默認(rèn)以最高優(yōu)先級(jí)運(yùn)行,為避免CPU資源被程序完全占用,導(dǎo)致系統(tǒng)被掛起,因此在程序中增加100us的延時(shí)。程序原理大致如下:
(1)在Linux-RT內(nèi)核上創(chuàng)建、使用實(shí)時(shí)線程。
(2)實(shí)時(shí)線程中,計(jì)算出觸發(fā)LED電平翻轉(zhuǎn)的系統(tǒng)調(diào)度延時(shí)。
案例測(cè)試
本小節(jié)測(cè)試以隔離CPU1核心為例,通過(guò)降低系統(tǒng)上所運(yùn)行的其他進(jìn)程對(duì)隔離CPU1產(chǎn)生的延遲影響,確保CPU1進(jìn)程的正常運(yùn)行,進(jìn)而評(píng)估Linux-RT內(nèi)核的系統(tǒng)實(shí)時(shí)性。
評(píng)估板上電啟動(dòng)后,在U-Boot倒計(jì)時(shí)結(jié)束之前按下空格鍵進(jìn)入U(xiǎn)-Boot命令行模式,執(zhí)行如下命令,修改環(huán)境變量,隔離CPU1核心。
U-Boot# setenv setargs_sd setenv bootargs clk_ignore_unused initcall_debug=${initcall_debug} console=${console} loglevel=${loglevel} root=${sd_root} init=${init} partitions=${partitions} cma=${cma} snum=${snum} mac_addr=${mac} wifi_mac=${wifi_mac} bt_mac=${bt_mac} specialstr=${specialstr} gpt=1 isolcpus=1
U-Boot# setenv setargs_nand_ubi setenv bootargs ubi.mtd=${mtd_name} clk_ignore_unused initcall_debug=${initcall_debug} console=${console} loglevel=${loglevel} root=${nand_root} rootfstype=${rootfstype} init=${init} partitions=${partitions} cma=${cma} snum=${snum} mac_addr=${mac} wifi_mac=${wifi_mac} bt_mac=${bt_mac} specialstr=${specialstr} gpt=1 isolcpus=1
U-Boot# saveenv
U-Boot# reset
圖 24
將案例bin目錄下的可執(zhí)行文件拷貝至評(píng)估板文件系統(tǒng),并執(zhí)行如下命令運(yùn)行測(cè)試程序,再按"Ctrl + C"退出測(cè)試,串口終端將打印程序統(tǒng)計(jì)的延遲數(shù)據(jù),如下圖所示。
Target# sysctl kernel.sched_rt_runtime_us=-1
Target# taskset -c 1 ./rt_gpio_ctrl -t 10 -d 100
圖 25
同時(shí)使用示波器捕捉LED兩次電平翻轉(zhuǎn)之間的間隔就對(duì)應(yīng)上線程調(diào)度的延遲,測(cè)試點(diǎn)為R46電阻一端。
圖 26
算出電平兩次翻轉(zhuǎn)的時(shí)間間隔為?x=104us,如下圖所示。由于程序中增加了100us的時(shí)間延時(shí),因此實(shí)際延時(shí)時(shí)應(yīng)為:104us– 100us= 4us,與程序統(tǒng)計(jì)打印的Latency results平均值5us相近。
圖 27
案例編譯
將產(chǎn)品資料“4-軟件資料Demolinux-rt-demosrt_gpio_ctrlsrc”案例源碼拷貝至Ubuntu。進(jìn)入案例源碼目錄,執(zhí)行如下命令,編譯案例生成可執(zhí)行文件。
Host# CC=/home/tronlong/T113/tina5.0_v1.0/out/t113_i/tlt113-evm-nand/buildroot/buildroot/host/usr/bin/arm-linux-gnueabi-gccCXX=/home/tronlong/T113/tina5.0_v1.0/out/t113_i/tlt113-evm-nand/buildroot/buildroot/host/usr/bin/arm-linux-gnueabi-g++ make
備注:若使用eMMC配置評(píng)估板,請(qǐng)將命令中的"tlt113-evm-nand"改為"tlt113-evm-emmc"。
圖 28
關(guān)鍵代碼說(shuō)明
(1)創(chuàng)建一個(gè)基于PREEMPT_RT的實(shí)時(shí)任務(wù),具體操作包括內(nèi)存鎖定、線程堆棧內(nèi)存設(shè)置、調(diào)度策略和優(yōu)先級(jí)配置等。
圖 29
(2)在線程中打開(kāi)LED文件節(jié)點(diǎn),并對(duì)LED狀態(tài)進(jìn)行翻轉(zhuǎn)。
圖 30
(3)統(tǒng)計(jì)調(diào)度時(shí)間延時(shí)情況。
圖 31
?
審核編輯 黃宇
-
Linux
+關(guān)注
關(guān)注
88文章
11760瀏覽量
219019 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
26文章
6291瀏覽量
118076
發(fā)布評(píng)論請(qǐng)先 登錄
Qt應(yīng)用開(kāi)發(fā)--國(guó)產(chǎn)工業(yè)開(kāi)發(fā)板T113-i的部署教程
【米爾-全志T113-i開(kāi)發(fā)板試用】上電+配編譯器+編譯+運(yùn)行ruapu測(cè)試工具全流程視頻
【米爾-全志T113-i開(kāi)發(fā)板試用】米爾-全志T113-i開(kāi)發(fā)環(huán)境搭建
國(guó)產(chǎn)RISC-V基于全志T113-i異構(gòu)多核平臺(tái)
國(guó)產(chǎn)RISC-V案例分享,基于全志T113-i異構(gòu)多核平臺(tái)!
【正點(diǎn)原子】全志T113-i開(kāi)發(fā)板資料震撼來(lái)襲!異核開(kāi)發(fā)、工控設(shè)計(jì)方案!
全志T113-i+玄鐵HiFi4開(kāi)發(fā)板(雙核ARM Cortex-A7 )規(guī)格書(shū)
多核異構(gòu)工業(yè)開(kāi)發(fā)板:創(chuàng)龍科技T113-i
如何把LVGL移植到T113-i國(guó)產(chǎn)工業(yè)開(kāi)發(fā)板
G2D圖像處理硬件調(diào)用和測(cè)試-基于米爾-全志T113-i開(kāi)發(fā)板
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開(kāi)發(fā)板—DSP案例開(kāi)發(fā)手冊(cè)
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開(kāi)發(fā)板—ARM + DSP、RISC-V核間通信開(kāi)發(fā)案例
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開(kāi)發(fā)板—Linux系統(tǒng)使用手冊(cè)(二)
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開(kāi)發(fā)板—Linux系統(tǒng)使用手冊(cè)(三)
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開(kāi)發(fā)板—Linux-RT應(yīng)用開(kāi)發(fā)案例
評(píng)論