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

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

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

3天內不再提示

RK平臺UART開發!從驅動配置到測試全流程

jf_44130326 ? 來源:Linux1024 ? 2026-02-04 17:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式開發中,UART(通用異步收發傳輸器)是實現設備間數據交互的關鍵接口,廣泛應用于調試、傳感器通信等場景。瑞芯微Rockchip)平臺針對不同操作系統(LinuxRT-Thread)提供了完善的UART開發支持,本文將結合官方開發指南,從功能特點、驅動配置、測試驗證三個維度,帶大家快速掌握RK平臺UART開發技巧,文末還附上知識腦圖方便梳理思路~

一、RK UART核心功能特點

無論基于Linux還是RT-Thread系統,RK平臺UART均以16550A串口標準為基礎,核心功能保持一致,實際支持情況需以具體芯片手冊為準:

?數據格式靈活:支持5-8位數據位、1/1.5/2位停止位,僅支持奇校驗/偶校驗(不支持mark/space校驗)。

?高效傳輸能力:自帶32字節或64字節的收發FIFO,最高支持4M波特率(需配合芯片時鐘分頻策略),支持中斷傳輸和DMA傳輸兩種模式。

?增強功能支持:部分UART模塊支持硬件自動流控(RTS+CTS)和串口喚醒系統(需修改trust固件)。

二、Linux系統下UART開發實戰

Linux系統中,RK UART分為普通串口控制臺兩種使用場景,配置流程差異較大,以下以常用的Linux 4.4/4.19內核為例說明。

(一)普通串口配置:三步搞定驅動與參數

普通串口適用于設備間數據通信(如與傳感器、模塊交互),核心是完成驅動路徑確認、配置項開啟和DTS參數修改。

1.明確驅動路徑

Linux 3.10內核使用獨立驅動文件drivers/tty/serial/rk_serial.cLinux 4.4及以上內核采用8250通用串口驅動,核心文件包括:

?drivers/tty/serial/8250/8250_core.c(驅動核心)

?drivers/tty/serial/8250/8250_dw.cSynopsis DesignWare適配)

?drivers/tty/serial/8250/8250_dma.cDMA功能支持)

2. menuconfig開啟配置

進入內核配置界面,按以下路徑勾選UART相關選項,建議使用RK SDK默認配置:

Device Drivers--->Characterdevices--->  Serial drivers--->   [*]8250/16550andcompatible serial support(勾選8250驅動)   [*] Rockchip serial port support(RK專屬選項)

3. DTS參數配置(關鍵?。?/span>

DTS(設備樹)用于定義UART硬件資源,以RK3568芯片UART1為例,典型配置如下,僅允許修改標注的可配置參數

wKgZO2kal-WAVkVfAAAfD26eyVM735.png

&uart1 {  compatible ="rockchip,rk3568-uart","snps,dw-apb-uart";  reg = <0x00xfe6500000x00x100>;//硬件地址(不可修改)  interrupts = 117IRQ_TYPE_LEVEL_HIGH>;//中斷號(不可修改)  clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;//時鐘(不可修改)  clock-names ="baudclk","apb_pclk";//時鐘名稱(不可修改)  reg-shift= <2>;//寄存器移位(不可修改)  reg-io-width = <4>;//寄存器寬度(不可修改)   // 可配置參數1:DMA使能/關閉  dma-names ="tx","rx";//"tx"/"rx"開啟,"!tx"/"!rx"關閉  // 可配置參數2:引腳復用(含流控引腳)  pinctrl-names ="default";  pinctrl-0= <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;//開啟流控引腳  // 可配置參數3:模塊使能/關閉  status ="okay";//"okay"開啟,"disabled"關閉  // 可配置參數4:串口喚醒(需配合trust固件)  wakeup-source;};

示例需求:開啟RK3568 UART1,啟用DMA和硬件流控。

DTS修改后:如上配置,確保dma-names"tx"/"rx",pinctrl-0包含流控引腳,status設為"okay"

4.波特率配置與設備注冊

?波特率計算UART波特率=工作時鐘源/內部分頻系數/ 16,驅動會自動根據配置的波特率獲取時鐘,常用波特率(115200921600、1.5M、3M4M)均穩定支持。

?設備注冊驗證:系統啟動后,若日志出現fe650000.serial: ttyS1 at MMIO 0xfe650000 (irq = 67, base_baud = 1500000) is a 16550A,說明設備注冊成功,對應節點為/dev/ttyS1(可通過DTSaliases修改編號)。

(二)控制臺配置:作為系統調試接口

控制臺串口用于輸出系統日志、執行調試命令,基于fiq_debugger實現,以UART2為例:

1.驅動路徑

?Linux 3.10arch/arm/mach-rockchip/rk_fiq_debugger.c

?Linux 4.4及以上:drivers/soc/rockchip/rk_fiq_debugger.c

核心驅動文件:drivers/staging/android/fiq_debugger/fiq_debugger.c

2.配置流程

1.menuconfig開啟

Device Drivers --->[*]Staging drivers ---> [*]Android --->  [*]Rockchip FIQ Debugger

1.DTS配置:需禁用對應普通串口,配置bootargsfiq-debugger節點:

chosen: chosen {  bootargs ="earlycon=uart8250,mmio32,0xfe660000 console=ttyFIQ0";// 指向控制臺設備};fiq-debugger {  compatible ="rockchip,fiq-debugger";  rockchip,serial-id = <2>;// 使用UART2  rockchip,wake-irq = <0>;  rockchip,irq-mode-enable = <1>;// 1=IRQ模式,0=FIQ模式  rockchip,baudrate = <1500000>;// 僅支持115200或1.5M  interrupts = 252IRQ_TYPE_LEVEL_LOW>;  pinctrl-names ="default";  pinctrl-0= <&uart2m0_xfer>;  status ="okay";};&uart2 {  status ="disabled";// 禁用普通串口模式};

1.parameter.txt配置Linux 3.10/4.4需添加):

CMDLINE:console=ttyFIQ0 androidboot.console=ttyFIQ0

(三)Linux UART測試:用官方工具驗證

瑞芯微提供測試程序ts_uart.uart及測試文件send_0x55/send_00_ff(可聯系FAE獲?。?,測試步驟如下:

1.準備工作:通過ADB推送文件到開發板并賦予權限:

adb root && adb remountadb push ts_uart.uart /dataadb push send_0x55 /data && adb push send_00_ff /dataadb shell"su -c chmod +x /data/ts_uart.uart"

1.測試發送:向/dev/ttyS1發送send_0x55文件,波特率1.5M,關閉流控:

adbshell"/data/ts_uart.uart s /data/send_0x55 1500000 0 0 0 /dev/ttyS1"

通過USBUART模塊連接PC,用串口工具(如SecureCRT)接收數據,驗證發送是否正常。

1.測試自發自收:無需外部硬件,驗證串口內部收發一致性:

adbshell"/data/ts_uart.uart m /data/send_00_ff 1500000 0 0 0 /dev/ttyS1"

若日志顯示send:1172, receive:1172 total:1172,說明收發一致,測試通過。

1.測試流控:驗證RTS/CTS硬件流控:

?拉高CTS引腳電平,執行發送命令,數據應阻塞;

?釋放CTS為低電平,阻塞數據應繼續發送;

?測量RTS引腳電平,確認能正常高低切換。

三、RT-Thread系統下UART開發實戰

RT-Thread作為輕量級實時操作系統,RK UART配置更簡潔,核心是開啟驅動、配置設備節點和測試驗證。

(一)代碼路徑與配置

1.核心代碼路徑

?串口框架:components/drivers/serial/serial.c/serial.h

?適配層:bsp/rockchip-pisces/drivers/drv_uart.c/drv_uart.h

?測試程序:bsp/rockchip-common/tests/termios_test.c

1.開啟UART配置:進入RT-Thread配置界面,勾選需要的UART設備:

RT-Thread bsp drivers ---> RT-Thread rockchip common drivers ---> [*]Enable UART [*]Enable UART0 [*]Enable UART2  // 根據需求勾選其他UART(如UART1、UART3)

配置完成后,系統會生成/dev/uart0//dev/uart2等設備節點,通過list_device命令可查看:

msh>list_devicedevice    type    refcount------    -------------------- ----------uart2    CharacterDevice  0uart0    CharacterDevice  0

(二)串口測試與控制臺配置

1.開啟測試程序

RT-Thread bsp testcase---> [*] Enable BSP Common TEST [*] Enable BSP Common UART TESTRT-Thread Components---> Device virtual filesystem--->  [*]Usingdevice virtual filesystem  [*]Usingdevfsfordevice objects POSIX layerandC standard library--->  [*] Enable termios feature

1.測試命令

?接收數據:termtest r /dev/uart4 115200(從uart4接收,波特率115200

?發送數據:termtest s /dev/uart4 115200(向uart4發送)

?收發雙向測試:termtest t /dev/uart4 115200

1.控制臺配置:將UART2設為控制臺,輸出rt_kprintf日志:

RT-ThreadKernel--->KernelDeviceObject--->  [*]Usingconsoleforrt_kprintf  (128) the buffer sizeforconsolelog printf  (uart2) the device nameforconsole  (1500000) the baud rateforconsole

(三)波特率支持

RT-Thread下,1.5M及以下波特率可穩定支持,1.5M以上需結合芯片時鐘樹實際測試,確保數據傳輸穩定性。

四、RK UART開發知識腦圖

wKgZO2kal-aAO7S3AAKaEj77BWU563.png

五、開發注意事項

1.硬件差異:不同RK芯片UART功能可能裁剪(如部分不支持DMA或流控),需優先參考對應芯片手冊。

2.資源沖突:控制臺模式與普通串口模式互斥,啟用fiq_debugger后需禁用對應普通串口節點。

3.DMA使用場景:僅當數據量極大時,DMA才能明顯減輕CPU負載,普通場景建議用中斷模式(啟動更快、資源消耗少)。

掌握以上內容,即可輕松應對RK平臺UART在不同系統下的開發需求,無論是調試接口還是設備通信,都能高效實現~

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

    關注

    5198

    文章

    20442

    瀏覽量

    333962
  • uart
    +關注

    關注

    22

    文章

    1314

    瀏覽量

    106634
  • 瑞芯微
    +關注

    關注

    27

    文章

    792

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ElfBoard技術貼|如何在【RK3588】ELF 2開發板上進行UART引腳復用配置

    IOMUX(引腳功能復用)是芯片廠商為高效利用有限硬件引腳資源而設計的關鍵技術,它允許單個物理引腳通過軟件配置為多種不同的功能(如GPIO、UART、I2C等)。不同SoC芯片的配置方式各異,本文將以【
    的頭像 發表于 11-18 16:54 ?5468次閱讀
    ElfBoard技術貼|如何在【<b class='flag-5'>RK</b>3588】ELF 2<b class='flag-5'>開發</b>板上進行<b class='flag-5'>UART</b>引腳復用<b class='flag-5'>配置</b>

    迅為RK3568開發板篇Openharmony配置HDF控制UART-實操-HDF驅動配置UART-修改HCS配置

    對于不同的平臺,需要在對應的平臺目錄修改對應的 hcs 文件,接下來示例為在 rk3568下新增 uart4 uart9
    發表于 02-21 10:53

    迅為RK3568開發板實操-HDF驅動配置UART-修改HCS配置

    deviceMatchAttr 的值表示驅動的私有配置信息 5 serviceName 表示服務名稱,服務加載成功之后會在開發板的/dev/目錄下生成節點。例如 HDF_PLATFORM_U
    發表于 05-22 11:32

    OpenHarmony平臺驅動案例--UART

    控制器編號 deviceMatchAttr = \"rockchip_rk3568_uart_0\"; // 驅動私有數據匹配的關鍵字,必須和驅動私有數據配置表中
    發表于 08-17 16:57

    【北京迅為】iTOP-RK3568開發板鴻蒙OpenHarmony系統南向驅動開發實操-HDF驅動配置UART

    【北京迅為】iTOP-RK3568開發板鴻蒙OpenHarmony系統南向驅動開發實操-HDF驅動配置
    的頭像 發表于 03-25 11:02 ?1725次閱讀
    【北京迅為】iTOP-<b class='flag-5'>RK</b>3568<b class='flag-5'>開發</b>板鴻蒙OpenHarmony系統南向<b class='flag-5'>驅動</b><b class='flag-5'>開發</b>實操-HDF<b class='flag-5'>驅動</b><b class='flag-5'>配置</b><b class='flag-5'>UART</b>

    基于小凌派RK2206開發板:OpenHarmony如何使用IoT接口控制UART外設

    1、實驗簡介本實驗將演示如何在小凌派-RK2206開發板上使用IOT庫的UART接口,進行UART編程開發。例程將創建一個任務,通過
    的頭像 發表于 04-22 14:22 ?1067次閱讀
    基于小凌派<b class='flag-5'>RK</b>2206<b class='flag-5'>開發</b>板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>UART</b>外設

    迅為RK3568開發板實操-HDF驅動配置UART

    對于不同的平臺,需要在對應的平臺目錄修改對應的 hcs 文件,接下來示例為在 rk3568下新增 uart4 uart9
    的頭像 發表于 06-27 15:58 ?589次閱讀

    一文搞定RK平臺Wi-Fi/BT調試!配置問題解決全攻略

    專用芯片,Wi-Fi/BT 的穩定運行直接影響產品體驗。本文配置、編譯、測試問題排查,手把手帶你搞定 RK
    的頭像 發表于 02-09 16:57 ?1295次閱讀
    一文搞定<b class='flag-5'>RK</b><b class='flag-5'>平臺</b>Wi-Fi/BT調試!<b class='flag-5'>從</b><b class='flag-5'>配置</b><b class='flag-5'>到</b>問題解決全攻略

    一文吃透RK平臺OTA升級開發邏輯調試的完整指南

    ,能讓開發者高效解決固件更新、功能迭代等問題。本文將從升級邏輯、核心技巧、調試要點到問題排查,全方位拆解 RK 平臺 OTA 升級開發,附關鍵流程
    的頭像 發表于 02-09 16:26 ?305次閱讀
    一文吃透<b class='flag-5'>RK</b><b class='flag-5'>平臺</b>OTA升級<b class='flag-5'>開發</b>:<b class='flag-5'>從</b>邏輯<b class='flag-5'>到</b>調試的完整指南

    RK?平臺?USB?攝像頭成像調試指南:信號畫質的流程優化

    在?RK(瑞芯微)平臺開發中,USB?攝像頭成像效果不佳是高頻問題,其根源多與?USB?信號質量、PHY?寄存器配置及硬件環境相關。本文結合?Rockchip USB SQ Tool?
    的頭像 發表于 11-26 07:05 ?799次閱讀
    <b class='flag-5'>RK</b>?<b class='flag-5'>平臺</b>?USB?攝像頭成像調試指南:<b class='flag-5'>從</b>信號<b class='flag-5'>到</b>畫質的<b class='flag-5'>全</b><b class='flag-5'>流程</b>優化

    深入解析?RK?平臺顯示驅動:格式支持、處理流程與實現原理

    、驅動處理流程、核心實現原理三個維度,帶您深入了解? RK? 平臺顯示驅動的工作機制。 一、 RK
    的頭像 發表于 12-02 07:10 ?322次閱讀
    深入解析?<b class='flag-5'>RK</b>?<b class='flag-5'>平臺</b>顯示<b class='flag-5'>驅動</b>:格式支持、處理<b class='flag-5'>流程</b>與實現原理

    RK3506 MIPI轉HDMI顯示開發實戰:硬件驅動解析

    接芯片,可完美實現信號轉換。 本文將從硬件選型、驅動流程、核心機制三個維度,詳細拆解RK3506平臺MIPI轉HDMI的開發全過程,尤其聚焦
    的頭像 發表于 01-06 07:09 ?531次閱讀
    <b class='flag-5'>RK</b>3506 MIPI轉HDMI顯示<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>解析

    EMC摸底測試整改:摸底合規的流程系統方案

    深圳南柯電子|EMC摸底測試整改:摸底合規的流程系統方案
    的頭像 發表于 01-07 09:59 ?383次閱讀

    一文讀懂UEFI系統:應用場景RK平臺開發全攻略

    瑞芯微( Rockchip ) RK 系列平臺上, UEFI 的深度集成讓開發者能夠更高效地搭建 Linux 系統開發環境。今天,我們就來詳細聊聊 UEFI 系統的應用場景,以及
    的頭像 發表于 01-19 09:55 ?1167次閱讀
    一文讀懂UEFI系統:<b class='flag-5'>從</b>應用場景<b class='flag-5'>到</b><b class='flag-5'>RK</b><b class='flag-5'>平臺</b><b class='flag-5'>開發</b>全攻略

    RK?平臺?SPI?開發完全指南(驅動?+?配置?+?測試?+?優化)

    Linux 平臺 SPI 驅動已形成完善的開發體系,支持 Master/Slave 雙模式、多速率適配及靈活配置。本文基于 Rockchip 官方
    的頭像 發表于 01-30 22:35 ?627次閱讀
    <b class='flag-5'>RK</b>?<b class='flag-5'>平臺</b>?SPI?<b class='flag-5'>開發</b>完全指南(<b class='flag-5'>驅動</b>?+?<b class='flag-5'>配置</b>?+?<b class='flag-5'>測試</b>?+?優化)