91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

基于DR1M90的Linux-RT內(nèi)核開(kāi)發(fā):從編譯配置到GPIO/按鍵應(yīng)用實(shí)現(xiàn)(2)

Tronlong創(chuàng)龍科技 ? 來(lái)源:Tronlong創(chuàng)龍科技 ? 作者:Tronlong創(chuàng)龍科技 ? 2025-12-26 17:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

系統(tǒng)開(kāi)發(fā)說(shuō)明

Linux-RT內(nèi)核與普通Linux內(nèi)核在系統(tǒng)開(kāi)發(fā)上基本保持一致,具體操作方法請(qǐng)參考《Linux系統(tǒng)開(kāi)發(fā)手冊(cè)》。

其中,使用Linux-RT內(nèi)核進(jìn)行系統(tǒng)開(kāi)發(fā)僅在Kernel開(kāi)發(fā)的配置與編譯環(huán)節(jié)存在關(guān)鍵差異,其他開(kāi)發(fā)流程(如U-Boot開(kāi)發(fā)、Rootfs開(kāi)發(fā)等)與普通內(nèi)核完全一致。以下對(duì)Linux-RT內(nèi)核的Kernel進(jìn)行說(shuō)明。

Kernel開(kāi)發(fā)(Linux-RT)

Kernel配置

執(zhí)行如下命令,進(jìn)入LinuxSDK源碼目錄下的內(nèi)核目錄,打開(kāi)圖形配置界面。

Host# cd /home/tronlong/DR1/SDK_2025.1/

Host# ./build.sh kernelmenuconfig

wKgZPGkn_QqAKnw4AAD7RYcS7ic809.png圖28

(1)配置RT內(nèi)核

打開(kāi)圖形配置界面,依次打開(kāi)"General setup -> Preemption Model(Preemptible Kernel(Low-Latency Desktop))"。

wKgZO2kyUUCAMuRpAAFJB6Y4xdc607.png圖 29

wKgZO2kyUUCANtuqAAHv4MsTWec634.png圖 30

進(jìn)入如圖所示界面后,選擇"Fully Preemptible Kernel (Real-Time)",接著選擇保存。

備注:我司提供的普通內(nèi)核版本默認(rèn)為"Preemptible Kernel(Low-Latency Desktop)"

wKgZPGkyUVKAFNlXAACgwsFqsdQ845.png圖31

wKgZO2kyUVKAahXAAAHshssVH2g006.png圖32

其他選項(xiàng)的參數(shù)解析如下表所示。

wKgZPGkyUWyAQ3R5AAAg6QUtATc387.png

(2)配置Linux-RT內(nèi)核定時(shí)器頻率

打開(kāi)圖形配置界面,依次打開(kāi)"Kernel Features-> Timer frequency(250 HZ)"。

wKgZO2kyUXaAW_mFAAFItcZIATA485.png圖33

wKgZO2kyUXaAYIQzAAIbLr7JqQM843.png圖34

進(jìn)入如圖所示界面后,選擇"1000HZ",接著選擇保存。

備注:普通Linux內(nèi)核需要選擇"250HZ"。

wKgZO2kyUYmAIFcBAAB7cBvK3ew127.png圖35

wKgZPGkyUYmAclZ5AAIZmLKHObs383.png圖36

配置完成后,將配置選項(xiàng)自動(dòng)保存到LinuxSDK根目錄下的"linux/arch/arm64/configs/anlogic_dr1m90_defconfig"中,執(zhí)行如下命令,檢查RT內(nèi)核是否配置成功。

Target# grep -nr "PREEMPT_RT" ./linux/arch/arm64/configs/anlogic_dr1m90_defconfig

Target# grep -nr "1000" ./linux/arch/arm64/configs/anlogic_dr1m90_defconfig

wKgZPGkyUZuABD4aAACA4NR2_ns009.png圖 37

編譯Kernel

請(qǐng)參考《Linux系統(tǒng)開(kāi)發(fā)手冊(cè)》的Kernel開(kāi)發(fā)章節(jié)編譯Kernel。

應(yīng)用開(kāi)發(fā)說(shuō)明

Linux-RT內(nèi)核與普通Linux內(nèi)核在應(yīng)用開(kāi)發(fā)上保持一致,具體操作方法請(qǐng)參考《Linux應(yīng)用開(kāi)發(fā)手冊(cè)》。

本章節(jié)說(shuō)明Linux-RT應(yīng)用開(kāi)發(fā)組件支持情況并介紹基于Linux-RT內(nèi)核開(kāi)發(fā)的應(yīng)用案例。

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è)試

執(zhí)行如下命令,查看程序運(yùn)行參數(shù)

Target# ./rt_gpio_ctrl -h

wKgZO2kyUaSAM3FEAAAVRVVyhKk738.png圖38

參數(shù)解析:

-t:程序運(yùn)行時(shí)間,單位s,默認(rèn)為10s;

-d:延遲時(shí)間,單位us,默認(rèn)為100us;

-h:打印幫助信息。

將案例bin目錄下的可執(zhí)行文件拷貝至評(píng)估板文件系統(tǒng),并執(zhí)行如下命令運(yùn)行測(cè)試程序,指定程序以增加100us的時(shí)間延時(shí)運(yùn)行,再按"Ctrl + C"退出測(cè)試,串口終端將打印程序統(tǒng)計(jì)的延遲數(shù)據(jù),如下圖所示。

Target# ./rt_gpio_ctrl -t 10 -d 100

wKgZPGkyUayASV1YAAAjppQX4FU992.png圖 39

同時(shí)使用示波器捕捉LED兩次電平翻轉(zhuǎn)之間的間隔,即可得到線程調(diào)度的延遲,測(cè)試點(diǎn)為R44電阻一端。

wKgZO2kyUbOABA58AADA9f0C1ZA977.png圖40

本次測(cè)得電平翻轉(zhuǎn)周期為?x = 108us,如下圖所示。由于程序中默認(rèn)增加了100us的時(shí)間延時(shí),因此實(shí)際延時(shí)應(yīng)為:108us - 100us = 8us,與程序統(tǒng)計(jì)打印的Latency results平均值相近。

wKgZPGkyUbuAQOUSAABe-bQOlhI710.png圖41

執(zhí)行如下命令,指定程序以增加0us的時(shí)間延時(shí)運(yùn)行,再按"Ctrl + C"退出測(cè)試,串口終端將打印程序統(tǒng)計(jì)的延遲數(shù)據(jù),如下圖所示。

Target# ./rt_gpio_ctrl -t 10 -d 0

wKgZO2kyUcSARRZuAAAjXwtOsyk493.png圖 42

同時(shí)使用示波器捕捉LED兩次電平翻轉(zhuǎn)之間的間隔,即可得到線程調(diào)度的延遲,測(cè)試點(diǎn)為R44電阻一端。本次測(cè)得電平翻轉(zhuǎn)周期為?x = 5.3us,如下圖所示。既實(shí)際延時(shí)為:5.3us,與程序統(tǒng)計(jì)打印的Latency results平均值相近。

wKgZPGkyUcyAIcPvAABg_yqS_Fs502.png圖43

案例編譯

將產(chǎn)品資料“4-軟件資料Demolinux-rt-demosrt_gpio_ctrl”案例源碼拷貝至Ubuntu。進(jìn)入案例源碼目錄,執(zhí)行如下命令,編譯案例生成可執(zhí)行文件。

Host# make CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++

wKgZO2kyUdOAB-mEAACFA-bPCdU806.png圖44

關(guān)鍵代碼

(1)創(chuàng)建實(shí)時(shí)任務(wù),具體操作包括內(nèi)存鎖定、線程堆棧內(nèi)存設(shè)置、調(diào)度策略和優(yōu)先級(jí)配置等。

wKgZPGkyUdqAVawxAADz9L8aoic413.png圖45

(2)在線程中打開(kāi)LED文件節(jié)點(diǎn),并對(duì)LED狀態(tài)進(jìn)行翻轉(zhuǎn)。

wKgZO2kyUeOALv0jAACkoKqnW2M846.png圖46

(3)統(tǒng)計(jì)調(diào)度時(shí)間延時(shí)情況。

wKgZO2kyUeyAY51mAAB4t2R4ouE427.png圖47

rt_input案例

案例說(shuō)明

通過(guò)創(chuàng)建一個(gè)基本的實(shí)時(shí)線程,在線程內(nèi)打開(kāi)input設(shè)備,并對(duì)按鍵事件進(jìn)行監(jiān)聽(tīng),然后觸發(fā)LED的電平翻轉(zhuǎn),再通過(guò)示波器測(cè)量按鍵觸發(fā)到LED電平翻轉(zhuǎn)期間的實(shí)際耗時(shí)。程序原理大致如下:

(1)在Linux-RT內(nèi)核上創(chuàng)建、使用實(shí)時(shí)線程。

(2)實(shí)時(shí)線程中對(duì)打開(kāi)的input設(shè)備節(jié)點(diǎn)進(jìn)行按鍵事件監(jiān)聽(tīng),通過(guò)判斷監(jiān)聽(tīng)得到的按鍵事件來(lái)觸發(fā)LED的電平翻轉(zhuǎn)。

案例測(cè)試

執(zhí)行如下命令,查看用戶輸入按鍵對(duì)應(yīng)的事件號(hào)。其中USER1(KEY2)對(duì)應(yīng)的按鍵事件號(hào)為event0。

Target# cat /proc/bus/input/devices

wKgZO2kyUfSAc9w7AAAa_AB5wkg250.png圖48

將案例bin目錄下的可執(zhí)行文件拷貝至評(píng)估板文件系統(tǒng),并執(zhí)行如下命令運(yùn)行測(cè)試程序。程序運(yùn)行后按下USER1(KEY2)用戶輸入按鍵點(diǎn)亮LED,松開(kāi)按鍵后LED熄滅,再按"Ctrl + C"退出測(cè)試程序。

Target# ./rt_input /dev/input/event0

wKgZPGkyUl6ALIZLAAAb3IdAg6Y514.png圖49

同時(shí)分別使用示波器探頭1測(cè)量LED電路R44電阻一端,使用示波器探頭2測(cè)量按鍵USER1(KEY2)引腳1。

wKgZO2kyUbOABA58AADA9f0C1ZA977.png圖50

wKgZPGkyUmiAWg5GAABZxaqxz9c572.png圖51

從按鍵下降沿觸發(fā)的開(kāi)始(下圖藍(lán)線)到LED上升沿觸發(fā)的完成(下圖黃線)的時(shí)間間隔,即為系統(tǒng)實(shí)時(shí)捕獲按鍵輸入時(shí)間并響應(yīng)觸發(fā)LED電平翻轉(zhuǎn)的時(shí)間?x,從圖中可看到?x = 138us。

wKgZPGkyUoOAZvmpAABehSrOPmA305.png圖52

備注:在硬件特性上,由于按鍵電壓由低電平上拉到高電平比較緩慢,因此本次測(cè)試實(shí)時(shí)事件的輸入采用下降沿觸發(fā)方式。

案例編譯

將產(chǎn)品資料“4-軟件資料Demolinux-rt-demosrt_input”案例源碼拷貝至Ubuntu。進(jìn)入案例源碼目錄,執(zhí)行如下命令,編譯案例生成可執(zhí)行文件。

Host# make CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++

wKgZPGkyUoqARTsjAAB93YDsBBw645.png圖53

關(guān)鍵代碼

(1)創(chuàng)建實(shí)時(shí)任務(wù),具體操作包括內(nèi)存鎖定、線程的堆棧內(nèi)存設(shè)置、調(diào)度策略和優(yōu)先級(jí)配置等。

wKgZO2kyUpKAaIzjAADsmnFtI0Q426.png圖54

(2)在線程中打開(kāi)input設(shè)備節(jié)點(diǎn)并監(jiān)聽(tīng)按鍵事件,同時(shí)觸發(fā)LED電平的翻轉(zhuǎn)。

wKgZO2kyUpuAZO1DAADD70mre5s469.png圖55

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

    關(guān)注

    5200

    文章

    20458

    瀏覽量

    334323
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11764

    瀏覽量

    219097
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    26

    文章

    6294

    瀏覽量

    118283
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1329

    瀏覽量

    56240
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于安路DR1M90 FPSoC的Linux系統(tǒng)全流程開(kāi)發(fā)指南(4)

    本手冊(cè)由創(chuàng)龍科技研發(fā),針對(duì)安路飛龍 DR1M90,詳述 Linux 系統(tǒng)開(kāi)發(fā)流程:LinuxSDK 配置編譯、BOOT.bin(FSBL+U
    的頭像 發(fā)表于 11-30 15:46 ?2203次閱讀
    基于安路<b class='flag-5'>DR1M90</b> FPSoC的<b class='flag-5'>Linux</b>系統(tǒng)全流程<b class='flag-5'>開(kāi)發(fā)</b>指南(4)

    RK3562 單板機(jī) Linux-RT 系統(tǒng)開(kāi)發(fā)指南:內(nèi)核配置、實(shí)時(shí)性優(yōu)化與案例詳解

    本文為創(chuàng)龍科技RK3562 單板機(jī) Linux-RT 開(kāi)發(fā)指南,核心聚焦實(shí)時(shí)內(nèi)核的性能測(cè)試與開(kāi)發(fā)應(yīng)用。內(nèi)容包括 Linux
    的頭像 發(fā)表于 02-10 11:49 ?1.7w次閱讀
    RK3562 單板機(jī) <b class='flag-5'>Linux-RT</b> 系統(tǒng)<b class='flag-5'>開(kāi)發(fā)</b>指南:<b class='flag-5'>內(nèi)核配置</b>、實(shí)時(shí)性優(yōu)化與案例詳解

    實(shí)測(cè)14us,Linux-RT實(shí)時(shí)性能及開(kāi)發(fā)案例分享—基于全志T507-H國(guó)產(chǎn)平臺(tái)

    ,僅供參考。 測(cè)試結(jié)果如下表所示: (1GPIO輸入延時(shí):通過(guò)使用示波器測(cè)量按鍵事件觸發(fā)LED電平翻轉(zhuǎn)的實(shí)際耗時(shí)結(jié)合系統(tǒng)延時(shí)與GPIO輸出延時(shí)得出數(shù)據(jù); (
    發(fā)表于 04-18 10:21

    實(shí)測(cè)14us,Linux-RT實(shí)時(shí)性能及開(kāi)發(fā)案例分享—基于全志T507-H國(guó)產(chǎn)平臺(tái)

    的案例用戶手冊(cè)進(jìn)行操作,得出如下測(cè)試結(jié)果。備注:測(cè)試數(shù)據(jù)與實(shí)際測(cè)試環(huán)境有關(guān),僅供參考。測(cè)試結(jié)果如下表所示: 表1 Linux-RT GPIO輸入輸出案例測(cè)試數(shù)據(jù) (1
    發(fā)表于 07-25 15:58

    米爾國(guó)產(chǎn)FPGA SoC芯選擇,安路飛龍DR1M90核心板重磅發(fā)布

    工業(yè)級(jí)FPGA FPSoC——發(fā)布MYC-YM90X SOM模組及評(píng)估套件。該產(chǎn)品采用安路飛龍DR1M90,95K LEs 可編程邏輯,片上集成 64位2*Cortex-A35 @1G
    發(fā)表于 01-10 14:32

    Linux-RT特點(diǎn)及簡(jiǎn)單應(yīng)用

    上下文切換延遲和提供硬實(shí)時(shí)保證來(lái)確保任務(wù)的低延遲和確定性。 Linux-RT上創(chuàng)建和管理實(shí)時(shí)任務(wù) 在Linux實(shí)時(shí)內(nèi)核Linux-RT)上創(chuàng)建和管理實(shí)時(shí)任務(wù)涉及
    發(fā)表于 12-05 07:37

    基于全志A40i開(kāi)發(fā)板——Linux-RT內(nèi)核應(yīng)用開(kāi)發(fā)教程(1

    目錄1 Linux-RT內(nèi)核簡(jiǎn)介 32 Linux系統(tǒng)實(shí)時(shí)性測(cè)試 33 rt_gpio_ctrl案例 104
    發(fā)表于 04-19 15:17

    全志A40i開(kāi)發(fā)板——Linux-RT內(nèi)核應(yīng)用開(kāi)發(fā)教程(2

    本帖最后由 Tronlong創(chuàng)龍科技 于 2022-4-19 15:30 編輯 目錄1 Linux-RT內(nèi)核簡(jiǎn)介 32 Linux系統(tǒng)實(shí)時(shí)性測(cè)試 33
    發(fā)表于 04-19 15:22

    基于全志A40i開(kāi)發(fā)板——Linux-RT內(nèi)核應(yīng)用開(kāi)發(fā)教程(3)

    目錄1 Linux-RT內(nèi)核簡(jiǎn)介 32 Linux系統(tǒng)實(shí)時(shí)性測(cè)試 33 rt_gpio_ctrl案例 104
    發(fā)表于 04-19 15:33

    創(chuàng)龍 瑞芯微 RK3588 國(guó)產(chǎn)2.4GHz八核 工業(yè)開(kāi)發(fā)板—Linux-RT應(yīng)用開(kāi)發(fā)案例

    Linux-RT 性能;還提供 rt_gpio_ctrl(實(shí)時(shí)線程控制 LED 翻轉(zhuǎn))、rt_input(實(shí)時(shí)線程監(jiān)聽(tīng)按鍵觸發(fā) LED)兩個(gè)開(kāi)發(fā)
    的頭像 發(fā)表于 09-25 17:25 ?764次閱讀
    創(chuàng)龍 瑞芯微 RK3588 國(guó)產(chǎn)2.4GHz八核 工業(yè)<b class='flag-5'>開(kāi)發(fā)</b>板—<b class='flag-5'>Linux-RT</b>應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>案例

    安路DR1M90評(píng)估板:基礎(chǔ)外設(shè)到通信模塊測(cè)試指南

    本手冊(cè)由創(chuàng)龍科技研發(fā),針對(duì)安路飛龍 DR1M90 評(píng)估板,詳述 Linux 系統(tǒng)下功能測(cè)試流程。含系統(tǒng)啟動(dòng)驗(yàn)證,LED、按鍵、DDR 等基礎(chǔ)外設(shè)測(cè)試,ETH、WiFi、4G、GPS 等通信功能測(cè)試
    的頭像 發(fā)表于 11-20 15:26 ?1432次閱讀
    安路<b class='flag-5'>DR1M90</b>評(píng)估板:<b class='flag-5'>從</b>基礎(chǔ)外設(shè)到通信模塊測(cè)試指南

    基于安路DR1M90 FPSoC 的Linux 系統(tǒng)全流程開(kāi)發(fā)指南(1

    本手冊(cè)由創(chuàng)龍科技研發(fā),針對(duì)安路飛龍 DR1M90,詳述 Linux 系統(tǒng)開(kāi)發(fā)流程:LinuxSDK 配置編譯、BOOT.bin(FSBL+U
    的頭像 發(fā)表于 11-25 14:09 ?391次閱讀
    基于安路<b class='flag-5'>DR1M90</b> FPSoC 的<b class='flag-5'>Linux</b> 系統(tǒng)全流程<b class='flag-5'>開(kāi)發(fā)</b>指南(<b class='flag-5'>1</b>)

    基于安路DR1M90 FPSoC 的Linux 系統(tǒng)全流程開(kāi)發(fā)指南(3)

    本手冊(cè)由創(chuàng)龍科技研發(fā),針對(duì)安路飛龍 DR1M90,詳述 Linux 系統(tǒng)開(kāi)發(fā)流程:LinuxSDK 配置編譯、BOOT.bin(FSBL+U
    的頭像 發(fā)表于 11-26 17:01 ?329次閱讀
    基于安路<b class='flag-5'>DR1M90</b> FPSoC 的<b class='flag-5'>Linux</b> 系統(tǒng)全流程<b class='flag-5'>開(kāi)發(fā)</b>指南(3)

    基于 DR1M90Linux-RT 內(nèi)核開(kāi)發(fā)編譯配置 GPIO / 按鍵應(yīng)用實(shí)現(xiàn)1

    本手冊(cè)由創(chuàng)龍科技研發(fā),針對(duì) DR1M90,詳述 Linux-RT 實(shí)時(shí)內(nèi)核開(kāi)發(fā):含實(shí)時(shí)性測(cè)試(Linux
    的頭像 發(fā)表于 12-02 10:38 ?1193次閱讀
    基于 <b class='flag-5'>DR1M90</b> 的 <b class='flag-5'>Linux-RT</b> <b class='flag-5'>內(nèi)核</b><b class='flag-5'>開(kāi)發(fā)</b>:<b class='flag-5'>從</b><b class='flag-5'>編譯</b><b class='flag-5'>配置</b><b class='flag-5'>到</b> <b class='flag-5'>GPIO</b> / <b class='flag-5'>按鍵</b>應(yīng)用<b class='flag-5'>實(shí)現(xiàn)</b>(<b class='flag-5'>1</b>)

    DR1M90 開(kāi)源 IgH EtherCAT 主站案例:伺服電機(jī)正反轉(zhuǎn)實(shí)時(shí)控制方案

    本文為創(chuàng)龍科技DR1M90 評(píng)估板的 IgH EtherCAT 主站應(yīng)用案例,基于 Linux-RT 內(nèi)核與開(kāi)源協(xié)議棧,實(shí)現(xiàn)伺服電機(jī)正反轉(zhuǎn)實(shí)時(shí)控制。案例通訊周期
    的頭像 發(fā)表于 01-04 15:40 ?1908次閱讀
    <b class='flag-5'>DR1M90</b> 開(kāi)源 IgH EtherCAT 主站案例:伺服電機(jī)正反轉(zhuǎn)實(shí)時(shí)控制方案