国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

基于DR1M90的Linux-RT內核開發:從編譯配置到GPIO/按鍵應用實現(2)

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

掃碼添加小助手

加入工程師交流群

系統開發說明

Linux-RT內核與普通Linux內核在系統開發上基本保持一致,具體操作方法請參考《Linux系統開發手冊》。

其中,使用Linux-RT內核進行系統開發僅在Kernel開發的配置與編譯環節存在關鍵差異,其他開發流程(如U-Boot開發、Rootfs開發等)與普通內核完全一致。以下對Linux-RT內核的Kernel進行說明。

Kernel開發(Linux-RT)

Kernel配置

執行如下命令,進入LinuxSDK源碼目錄下的內核目錄,打開圖形配置界面。

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

Host# ./build.sh kernelmenuconfig

wKgZPGkn_QqAKnw4AAD7RYcS7ic809.png圖28

(1)配置RT內核

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

wKgZO2kyUUCAMuRpAAFJB6Y4xdc607.png圖 29

wKgZO2kyUUCANtuqAAHv4MsTWec634.png圖 30

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

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

wKgZPGkyUVKAFNlXAACgwsFqsdQ845.png圖31

wKgZO2kyUVKAahXAAAHshssVH2g006.png圖32

其他選項的參數解析如下表所示。

wKgZPGkyUWyAQ3R5AAAg6QUtATc387.png

(2)配置Linux-RT內核定時器頻率

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

wKgZO2kyUXaAW_mFAAFItcZIATA485.png圖33

wKgZO2kyUXaAYIQzAAIbLr7JqQM843.png圖34

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

備注:普通Linux內核需要選擇"250HZ"。

wKgZO2kyUYmAIFcBAAB7cBvK3ew127.png圖35

wKgZPGkyUYmAclZ5AAIZmLKHObs383.png圖36

配置完成后,將配置選項自動保存到LinuxSDK根目錄下的"linux/arch/arm64/configs/anlogic_dr1m90_defconfig"中,執行如下命令,檢查RT內核是否配置成功。

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

請參考《Linux系統開發手冊》的Kernel開發章節編譯Kernel。

應用開發說明

Linux-RT內核與普通Linux內核在應用開發上保持一致,具體操作方法請參考《Linux應用開發手冊》。

本章節說明Linux-RT應用開發組件支持情況并介紹基于Linux-RT內核開發的應用案例。

rt_gpio_ctrl案例

案例說明

通過創建一個基本的實時線程,在線程內觸發LED的電平翻轉,同時程序統計實時線程的調度延時,并通過示波器測出LED電平兩次翻轉的時間間隔。由于程序默認以最高優先級運行,為避免CPU資源被程序完全占用導致系統被掛起,因此在程序中增加100us的延時。程序原理大致如下:

(1)在Linux-RT內核上創建、使用實時線程。

(2)實時線程中,計算出觸發LED電平翻轉的系統調度延時。

案例測試

執行如下命令,查看程序運行參數

Target# ./rt_gpio_ctrl -h

wKgZO2kyUaSAM3FEAAAVRVVyhKk738.png圖38

參數解析:

-t:程序運行時間,單位s,默認為10s;

-d:延遲時間,單位us,默認為100us;

-h:打印幫助信息。

將案例bin目錄下的可執行文件拷貝至評估板文件系統,并執行如下命令運行測試程序,指定程序以增加100us的時間延時運行,再按"Ctrl + C"退出測試,串口終端將打印程序統計的延遲數據,如下圖所示。

Target# ./rt_gpio_ctrl -t 10 -d 100

wKgZPGkyUayASV1YAAAjppQX4FU992.png圖 39

同時使用示波器捕捉LED兩次電平翻轉之間的間隔,即可得到線程調度的延遲,測試點為R44電阻一端。

wKgZO2kyUbOABA58AADA9f0C1ZA977.png圖40

本次測得電平翻轉周期為?x = 108us,如下圖所示。由于程序中默認增加了100us的時間延時,因此實際延時應為:108us - 100us = 8us,與程序統計打印的Latency results平均值相近。

wKgZPGkyUbuAQOUSAABe-bQOlhI710.png圖41

執行如下命令,指定程序以增加0us的時間延時運行,再按"Ctrl + C"退出測試,串口終端將打印程序統計的延遲數據,如下圖所示。

Target# ./rt_gpio_ctrl -t 10 -d 0

wKgZO2kyUcSARRZuAAAjXwtOsyk493.png圖 42

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

wKgZPGkyUcyAIcPvAABg_yqS_Fs502.png圖43

案例編譯

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

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

wKgZO2kyUdOAB-mEAACFA-bPCdU806.png圖44

關鍵代碼

(1)創建實時任務,具體操作包括內存鎖定、線程堆棧內存設置、調度策略和優先級配置等。

wKgZPGkyUdqAVawxAADz9L8aoic413.png圖45

(2)在線程中打開LED文件節點,并對LED狀態進行翻轉。

wKgZO2kyUeOALv0jAACkoKqnW2M846.png圖46

(3)統計調度時間延時情況。

wKgZO2kyUeyAY51mAAB4t2R4ouE427.png圖47

rt_input案例

案例說明

通過創建一個基本的實時線程,在線程內打開input設備,并對按鍵事件進行監聽,然后觸發LED的電平翻轉,再通過示波器測量按鍵觸發到LED電平翻轉期間的實際耗時。程序原理大致如下:

(1)在Linux-RT內核上創建、使用實時線程。

(2)實時線程中對打開的input設備節點進行按鍵事件監聽,通過判斷監聽得到的按鍵事件來觸發LED的電平翻轉。

案例測試

執行如下命令,查看用戶輸入按鍵對應的事件號。其中USER1(KEY2)對應的按鍵事件號為event0。

Target# cat /proc/bus/input/devices

wKgZO2kyUfSAc9w7AAAa_AB5wkg250.png圖48

將案例bin目錄下的可執行文件拷貝至評估板文件系統,并執行如下命令運行測試程序。程序運行后按下USER1(KEY2)用戶輸入按鍵點亮LED,松開按鍵后LED熄滅,再按"Ctrl + C"退出測試程序。

Target# ./rt_input /dev/input/event0

wKgZPGkyUl6ALIZLAAAb3IdAg6Y514.png圖49

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

wKgZO2kyUbOABA58AADA9f0C1ZA977.png圖50

wKgZPGkyUmiAWg5GAABZxaqxz9c572.png圖51

從按鍵下降沿觸發的開始(下圖藍線)到LED上升沿觸發的完成(下圖黃線)的時間間隔,即為系統實時捕獲按鍵輸入時間并響應觸發LED電平翻轉的時間?x,從圖中可看到?x = 138us。

wKgZPGkyUoOAZvmpAABehSrOPmA305.png圖52

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

案例編譯

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

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

wKgZPGkyUoqARTsjAAB93YDsBBw645.png圖53

關鍵代碼

(1)創建實時任務,具體操作包括內存鎖定、線程的堆棧內存設置、調度策略和優先級配置等。

wKgZO2kyUpKAaIzjAADsmnFtI0Q426.png圖54

(2)在線程中打開input設備節點并監聽按鍵事件,同時觸發LED電平的翻轉。

wKgZO2kyUpuAZO1DAADD70mre5s469.png圖55

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

    關注

    5198

    文章

    20449

    瀏覽量

    334012
  • Linux
    +關注

    關注

    88

    文章

    11760

    瀏覽量

    219019
  • 開發板
    +關注

    關注

    26

    文章

    6291

    瀏覽量

    118076
  • GPIO
    +關注

    關注

    16

    文章

    1328

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于安路DR1M90 FPSoC的Linux系統全流程開發指南(4)

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

    RK3562 單板機 Linux-RT 系統開發指南:內核配置、實時性優化與案例詳解

    本文為創龍科技RK3562 單板機 Linux-RT 開發指南,核心聚焦實時內核的性能測試與開發應用。內容包括 Linux
    的頭像 發表于 02-10 11:49 ?1.7w次閱讀
    RK3562 單板機 <b class='flag-5'>Linux-RT</b> 系統<b class='flag-5'>開發</b>指南:<b class='flag-5'>內核配置</b>、實時性優化與案例詳解

    實測14us,Linux-RT實時性能及開發案例分享—基于全志T507-H國產平臺

    ,僅供參考。 測試結果如下表所示: (1GPIO輸入延時:通過使用示波器測量按鍵事件觸發LED電平翻轉的實際耗時結合系統延時與GPIO輸出延時得出數據; (
    發表于 04-18 10:21

    實測14us,Linux-RT實時性能及開發案例分享—基于全志T507-H國產平臺

    的案例用戶手冊進行操作,得出如下測試結果。備注:測試數據與實際測試環境有關,僅供參考。測試結果如下表所示: 表1 Linux-RT GPIO輸入輸出案例測試數據 (1
    發表于 07-25 15:58

    米爾國產FPGA SoC芯選擇,安路飛龍DR1M90核心板重磅發布

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

    Linux-RT特點及簡單應用

    上下文切換延遲和提供硬實時保證來確保任務的低延遲和確定性。 Linux-RT上創建和管理實時任務 在Linux實時內核Linux-RT)上創建和管理實時任務涉及
    發表于 12-05 07:37

    基于全志A40i開發板——Linux-RT內核應用開發教程(1

    目錄1 Linux-RT內核簡介 32 Linux系統實時性測試 33 rt_gpio_ctrl案例 104
    發表于 04-19 15:17

    全志A40i開發板——Linux-RT內核應用開發教程(2

    本帖最后由 Tronlong創龍科技 于 2022-4-19 15:30 編輯 目錄1 Linux-RT內核簡介 32 Linux系統實時性測試 33
    發表于 04-19 15:22

    基于全志A40i開發板——Linux-RT內核應用開發教程(3)

    目錄1 Linux-RT內核簡介 32 Linux系統實時性測試 33 rt_gpio_ctrl案例 104
    發表于 04-19 15:33

    創龍 瑞芯微 RK3588 國產2.4GHz八核 工業開發板—Linux-RT應用開發案例

    Linux-RT 性能;還提供 rt_gpio_ctrl(實時線程控制 LED 翻轉)、rt_input(實時線程監聽按鍵觸發 LED)兩個開發
    的頭像 發表于 09-25 17:25 ?749次閱讀
    創龍 瑞芯微 RK3588 國產2.4GHz八核 工業<b class='flag-5'>開發</b>板—<b class='flag-5'>Linux-RT</b>應用<b class='flag-5'>開發</b>案例

    安路DR1M90評估板:基礎外設到通信模塊測試指南

    本手冊由創龍科技研發,針對安路飛龍 DR1M90 評估板,詳述 Linux 系統下功能測試流程。含系統啟動驗證,LED、按鍵、DDR 等基礎外設測試,ETH、WiFi、4G、GPS 等通信功能測試
    的頭像 發表于 11-20 15:26 ?1415次閱讀
    安路<b class='flag-5'>DR1M90</b>評估板:<b class='flag-5'>從</b>基礎外設到通信模塊測試指南

    基于安路DR1M90 FPSoC 的Linux 系統全流程開發指南(1

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

    基于安路DR1M90 FPSoC 的Linux 系統全流程開發指南(3)

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

    基于 DR1M90Linux-RT 內核開發編譯配置 GPIO / 按鍵應用實現1

    本手冊由創龍科技研發,針對 DR1M90,詳述 Linux-RT 實時內核開發:含實時性測試(Linux
    的頭像 發表于 12-02 10:38 ?1177次閱讀
    基于 <b class='flag-5'>DR1M90</b> 的 <b class='flag-5'>Linux-RT</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'>配置</b><b class='flag-5'>到</b> <b class='flag-5'>GPIO</b> / <b class='flag-5'>按鍵</b>應用<b class='flag-5'>實現</b>(<b class='flag-5'>1</b>)

    DR1M90 開源 IgH EtherCAT 主站案例:伺服電機正反轉實時控制方案

    本文為創龍科技DR1M90 評估板的 IgH EtherCAT 主站應用案例,基于 Linux-RT 內核與開源協議棧,實現伺服電機正反轉實時控制。案例通訊周期
    的頭像 發表于 01-04 15:40 ?1794次閱讀
    <b class='flag-5'>DR1M90</b> 開源 IgH EtherCAT 主站案例:伺服電機正反轉實時控制方案