chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

RK平臺UART開發(fā)!從驅(qū)動配置到測試全流程

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

掃碼添加小助手

加入工程師交流群

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

一、RK UART核心功能特點(diǎn)

無論基于Linux還是RT-Thread系統(tǒng),RK平臺UART均以16550A串口標(biāo)準(zhǔn)為基礎(chǔ),核心功能保持一致,實(shí)際支持情況需以具體芯片手冊為準(zhǔn):

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

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

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

二、Linux系統(tǒng)下UART開發(fā)實(shí)戰(zhàn)

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

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

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

1.明確驅(qū)動路徑

Linux 3.10內(nèi)核使用獨(dú)立驅(qū)動文件drivers/tty/serial/rk_serial.c;Linux 4.4及以上內(nèi)核采用8250通用串口驅(qū)動,核心文件包括:

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

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

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

2. menuconfig開啟配置

進(jìn)入內(nèi)核配置界面,按以下路徑勾選UART相關(guān)選項(xiàng),建議使用RK SDK默認(rèn)配置:

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

3. DTS參數(shù)配置(關(guān)鍵?。?/span>

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

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>;//寄存器寬度(不可修改)   // 可配置參數(shù)1:DMA使能/關(guān)閉  dma-names ="tx","rx";//"tx"/"rx"開啟,"!tx"/"!rx"關(guān)閉  // 可配置參數(shù)2:引腳復(fù)用(含流控引腳)  pinctrl-names ="default";  pinctrl-0= <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;//開啟流控引腳  // 可配置參數(shù)3:模塊使能/關(guān)閉  status ="okay";//"okay"開啟,"disabled"關(guān)閉  // 可配置參數(shù)4:串口喚醒(需配合trust固件)  wakeup-source;};

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

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

4.波特率配置與設(shè)備注冊

?波特率計算UART波特率=工作時鐘源/內(nèi)部分頻系數(shù)/ 16,驅(qū)動會自動根據(jù)配置的波特率獲取時鐘,常用波特率(115200921600、1.5M3M、4M)均穩(wěn)定支持。

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

(二)控制臺配置:作為系統(tǒng)調(diào)試接口

控制臺串口用于輸出系統(tǒng)日志、執(zhí)行調(diào)試命令,基于fiq_debugger實(shí)現(xiàn),以UART2為例:

1.驅(qū)動路徑

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

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

核心驅(qū)動文件:drivers/staging/android/fiq_debugger/fiq_debugger.c

2.配置流程

1.menuconfig開啟

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

1.DTS配置:需禁用對應(yīng)普通串口,配置bootargsfiq-debugger節(jié)點(diǎn):

chosen: chosen {  bootargs ="earlycon=uart8250,mmio32,0xfe660000 console=ttyFIQ0";// 指向控制臺設(shè)備};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測試:用官方工具驗(yàn)證

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

1.準(zhǔn)備工作:通過ADB推送文件到開發(fā)板并賦予權(quán)限:

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.測試發(fā)送:向/dev/ttyS1發(fā)送send_0x55文件,波特率1.5M,關(guān)閉流控:

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

通過USB轉(zhuǎn)UART模塊連接PC,用串口工具(如SecureCRT)接收數(shù)據(jù),驗(yàn)證發(fā)送是否正常。

1.測試自發(fā)自收:無需外部硬件,驗(yàn)證串口內(nèi)部收發(fā)一致性:

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

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

1.測試流控:驗(yàn)證RTS/CTS硬件流控:

?拉高CTS引腳電平,執(zhí)行發(fā)送命令,數(shù)據(jù)應(yīng)阻塞;

?釋放CTS為低電平,阻塞數(shù)據(jù)應(yīng)繼續(xù)發(fā)送;

?測量RTS引腳電平,確認(rèn)能正常高低切換。

三、RT-Thread系統(tǒng)下UART開發(fā)實(shí)戰(zhàn)

RT-Thread作為輕量級實(shí)時操作系統(tǒng),RK UART配置更簡潔,核心是開啟驅(qū)動、配置設(shè)備節(jié)點(diǎn)和測試驗(yàn)證。

(一)代碼路徑與配置

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配置:進(jìn)入RT-Thread配置界面,勾選需要的UART設(shè)備:

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

配置完成后,系統(tǒng)會生成/dev/uart0//dev/uart2等設(shè)備節(jié)點(diǎn),通過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.測試命令

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

?發(fā)送數(shù)據(jù):termtest s /dev/uart4 115200(向uart4發(fā)送)

?收發(fā)雙向測試:termtest t /dev/uart4 115200

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

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

(三)波特率支持

RT-Thread下,1.5M及以下波特率可穩(wěn)定支持,1.5M以上需結(jié)合芯片時鐘樹實(shí)際測試,確保數(shù)據(jù)傳輸穩(wěn)定性。

四、RK UART開發(fā)知識腦圖

wKgZO2kal-aAO7S3AAKaEj77BWU563.png

五、開發(fā)注意事項(xiàng)

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

2.資源沖突:控制臺模式與普通串口模式互斥,啟用fiq_debugger后需禁用對應(yīng)普通串口節(jié)點(diǎn)。

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

掌握以上內(nèi)容,即可輕松應(yīng)對RK平臺UART在不同系統(tǒng)下的開發(fā)需求,無論是調(diào)試接口還是設(shè)備通信,都能高效實(shí)現(xiàn)~

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

    關(guān)注

    5198

    文章

    20434

    瀏覽量

    333862
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1313

    瀏覽量

    106615
  • 瑞芯微
    +關(guān)注

    關(guān)注

    27

    文章

    790

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開發(fā)板上進(jìn)行UART引腳復(fù)用配置

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

    迅為RK3568開發(fā)板篇Openharmony配置HDF控制UART-實(shí)操-HDF驅(qū)動配置UART-修改HCS配置

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

    迅為RK3568開發(fā)板實(shí)操-HDF驅(qū)動配置UART-修改HCS配置

    deviceMatchAttr 的值表示驅(qū)動的私有配置信息 5 serviceName 表示服務(wù)名稱,服務(wù)加載成功之后會在開發(fā)板的/dev/目錄下生成節(jié)點(diǎn)。例如 HDF_PLATFORM_U
    發(fā)表于 05-22 11:32

    OpenHarmony平臺驅(qū)動案例--UART

    控制器編號 deviceMatchAttr = \"rockchip_rk3568_uart_0\"; // 驅(qū)動私有數(shù)據(jù)匹配的關(guān)鍵字,必須和驅(qū)動私有數(shù)據(jù)配置表中
    發(fā)表于 08-17 16:57

    【北京迅為】iTOP-RK3568開發(fā)板鴻蒙OpenHarmony系統(tǒng)南向驅(qū)動開發(fā)實(shí)操-HDF驅(qū)動配置UART

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

    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制UART外設(shè)

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

    迅為RK3568開發(fā)板實(shí)操-HDF驅(qū)動配置UART

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

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

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

    一文吃透RK平臺OTA升級開發(fā)邏輯調(diào)試的完整指南

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

    RK?平臺?USB?攝像頭成像調(diào)試指南:信號畫質(zhì)的流程優(yōu)化

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

    深入解析?RK?平臺顯示驅(qū)動:格式支持、處理流程與實(shí)現(xiàn)原理

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

    RK3506 MIPI轉(zhuǎn)HDMI顯示開發(fā)實(shí)戰(zhàn):硬件驅(qū)動解析

    接芯片,可完美實(shí)現(xiàn)信號轉(zhuǎn)換。 本文將從硬件選型、驅(qū)動流程、核心機(jī)制三個維度,詳細(xì)拆解RK3506平臺MIPI轉(zhuǎn)HDMI的開發(fā)全過程,尤其聚焦
    的頭像 發(fā)表于 01-06 07:09 ?511次閱讀
    <b class='flag-5'>RK</b>3506 MIPI轉(zhuǎn)HDMI顯示<b class='flag-5'>開發(fā)</b>實(shí)戰(zhàn):<b class='flag-5'>從</b>硬件<b class='flag-5'>到</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>全</b>解析

    EMC摸底測試整改:摸底合規(guī)的流程系統(tǒng)方案

    深圳南柯電子|EMC摸底測試整改:摸底合規(guī)的流程系統(tǒng)方案
    的頭像 發(fā)表于 01-07 09:59 ?369次閱讀

    一文讀懂UEFI系統(tǒng):應(yīng)用場景RK平臺開發(fā)全攻略

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

    RK?平臺?SPI?開發(fā)完全指南(驅(qū)動?+?配置?+?測試?+?優(yōu)化)

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