那曲檬骨新材料有限公司

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

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

3天內不再提示

RTT設備驅動框架分析-串口調用流程

冬至子 ? 來源:chejia12 ? 作者:chejia12 ? 2023-10-26 17:07 ? 次閱讀

應用層函數調用流程分析以-串口為例

1.rt_device_find調用流程

RTT內部有一個全局變量數組rt_object_container數組的數量就是 rt_object_info_type 內核對象的種類,其中包含一個RT_USING_DEVICE (設備的數據類型),數組內部的每一個變量包含一個鏈表,鏈表內部就構造了一個設備鏈表,rt_device_find函數就是在這個數組內部根據類型找到鏈表,然后在鏈表內部根據設備名字找到rt_device_t設備

1.jpg

RTT內核對象存儲結構,
struct rt_object_information
{
enum rt_object_class_type type; / < object class type 比如線程類型,外部設備類型,信號量類型 /
rt_list_t object_list; /
< object list每個類型的設備形成為一個鏈表 */
rt_size_t object_size; /
*< object size 每個類型的鏈表item數量 */
};

2.設備打開rt_device_open

rt_device_open 首先是調用init函數,然后調用open函數
init 內部再次調用串口的configure函數
open內部根據flag的類型,分別申請發送接收緩存rt_malloc,配置發送接收硬件serial->ops->control,如果配置的dma,則使用serial->ops->control配置打開dma。

1.jpg

3.rt_device_set_rx_indicate 和rt_device_set_tx_complete函數調用流程
這里的2個函數都是直接設置rt_device的rx_indicate 和 tx_indicate

1.jpg

4.rt_device_write 調用流程分析

rt_device_write 內部調用device->write 函數也就是 rt_serial_write,內部根據配置串口的發送方式發送數據,是阻塞是dma還是中斷,阻塞和dma都是將數據放在緩沖區內部,緩沖區在中斷和dma部還有臨界區的保護

1.jpg

5.rt_device_read 調用流程分析

rt_device_read內部調用device->read 函數也就是 rt_serial_read,內部根據配置串口的接收方式接收數據,是阻塞接收是dma還是中斷接收,阻塞和dma都是將數據放在緩沖區內部,緩沖區在中斷和dma部還有臨界區的保護

1.jpg

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

    關注

    8

    文章

    1184

    瀏覽量

    53631
  • dma
    dma
    +關注

    關注

    3

    文章

    566

    瀏覽量

    100949
  • 緩存器
    +關注

    關注

    0

    文章

    63

    瀏覽量

    11692
  • 串口中斷
    +關注

    關注

    0

    文章

    67

    瀏覽量

    14002
  • RTThread
    +關注

    關注

    8

    文章

    132

    瀏覽量

    40999
收藏 人收藏

    評論

    相關推薦

    串口驅動配置流程及電路圖設計

    串口驅動跟其他外設的驅動配置流程差不多,大概分為如下幾步: (1)查看電路圖,配置相應的gpio功能引腳 (2)配置串口控制器的相應寄存
    的頭像 發表于 10-07 17:33 ?6064次閱讀
    <b class='flag-5'>串口</b><b class='flag-5'>驅動</b>配置<b class='flag-5'>流程</b>及電路圖設計

    OpenHarmony HDF 驅動框架介紹和驅動加載過程分析

    ,OpenHarmony 系統 HDF 驅動框架支持多種驅動加載方式:支持驅動動態加載和靜態加載,解除驅動代碼和
    發表于 08-31 15:51

    字符設備驅動 —— 字符設備驅動框架

    1、概述:linux中一切皆文件,設備也如此,并且以操作文件即文件IO的方式訪問設備。  應用程序只能通過庫函數中的系統調用來操作硬件,對于每個系統調用
    發表于 10-19 17:08

    分析rt-thread的I2C設備驅動框架

    簡要上一篇分析RTT的PIN驅動,得到了很多網友的認可,很開心。很多人跟我反映寫一些u***,wlan等框架,這個一步一步來,從淺到深。這一篇文章我們來
    發表于 01-12 06:23

    RT-Thread串口的硬件工作模式有哪幾種呢?怎樣去使用

    使用說明串口流程分析分為兩部分,一部分是串口驅動,另一部分是串口
    發表于 03-11 15:03

    解讀rtt的c的面向對象的對象創建及其啟動初始化流程

    rtt設備框架對接層。此層是拿rtt創建好的類來創建子類設備對象或者自己派生出新類創建子類設備
    發表于 07-05 11:01

    將硬件I2C嫁接到RTT原生的模擬I2C驅動框架步驟分享

    1、將硬件I2C巧妙地將嫁接到RTT原生的模擬I2C驅動框架剛開始接觸RTTI2C驅動框架,說實在的,感覺有點道理。
    發表于 07-07 16:29

    詳解IO設備管理之父類調用子類方法的過程

    驅動層都實現了注冊給父類的方法。這些方法是IO設備模型框架的血肉!2.2.1 先看對象創建流程調用設備
    發表于 10-09 15:18

    幫助你看懂并理解rtt官方的IO設備模型框架

    ——finsh線程分析——可以參考理解子類方法是如何被父類調用的。tips:(1)給BSP新增設備驅動對接到rtt
    發表于 10-09 15:30

    為什么rtt的音頻框架recorder的相關源碼需要對pipe設備操作加中斷保護呢?

    請教一個rtt audio驅動框架的問題:1)對于recorder,為什么rtt的源碼對pipe的操作全都增加了rt_hw_interrupt_disable
    發表于 03-14 10:30

    rt-thread SDIO驅動框架分析(SD卡flash驅動\SD Nand flash驅動

    文章目錄rt-thread SDIO驅動框架分析之SD卡驅動1. 前言2. SDIO通用驅動框架
    發表于 04-04 16:26

    RT-Thread (2) RTT SPI設備驅動流程 || LWIP + ENC28J60

    系列文章目錄RT-Thread (1) 添加外部內存到內存管理RT-Thread (2) RTT SPI設備驅動流程 || LWIP + ENC28J60目錄0 概述0.0 參考資料0
    發表于 11-19 14:21 ?15次下載
    RT-Thread (2) <b class='flag-5'>RTT</b> SPI<b class='flag-5'>設備</b><b class='flag-5'>驅動</b><b class='flag-5'>流程</b> || LWIP + ENC28J60

    《rt-thread驅動框架分析》-i2c驅動

    上一篇分析RTT的PIN驅動,得到了很多網友的認可,很開心。很多人跟我反映寫一些usb,wlan等框架,這個一步一步來,從淺到深。
    發表于 01-26 17:03 ?0次下載
    《rt-thread<b class='flag-5'>驅動</b><b class='flag-5'>框架</b><b class='flag-5'>分析</b>》-i2c<b class='flag-5'>驅動</b>

    基于IAR搭建RA MCU串口RTT Viewer打印(上)

    基于IAR搭建RA MCU串口RTT Viewer打印
    的頭像 發表于 08-14 09:49 ?927次閱讀
    基于IAR搭建RA MCU<b class='flag-5'>串口</b>與<b class='flag-5'>RTT</b> Viewer打印(上)

    基于IAR搭建RA MCU串口RTT Viewer打印(下)

    基于IAR搭建RA MCU串口RTT Viewer打印
    的頭像 發表于 08-14 09:50 ?990次閱讀
    基于IAR搭建RA MCU<b class='flag-5'>串口</b>與<b class='flag-5'>RTT</b> Viewer打印(下)
    送彩金百家乐官网的玩法技巧和规则| 百家乐园百利宫娱乐城怎么样百家乐园百利宫娱乐城如何 | 足球竞彩网| 正品百家乐官网游戏| 百家乐网站可信吗| 尼勒克县| 闲和庄百家乐官网娱乐城| 威尼斯人娱乐平台赌| 百家乐官网棋牌游戏正式版| 澳门百家乐真人版| 姚记娱乐城网站| 24山72向局图解| 大发888卡| 网上百家乐官网游戏下载| 百家乐算牌方| 博网百家乐官网现金网| 网上赌百家乐正规吗| tt真人娱乐城| 百家乐娱乐开户| 明珠线上娱乐| 百家乐无敌直缆| 沙龙国际| 百家乐赢家球讯网| 两当县| 百家乐与龙虎斗怎么玩| 东港市| 最好的百家乐好评平台都有哪些| 皇冠平台出| 百家乐视频游戏平台| 平潭县| BB百家乐HD| 百家乐官网优惠高的网址| 百家乐五湖四海娱乐| 乐九百家乐官网现金网| 网络百家乐程序| 如何看百家乐官网路| 大发888娱乐场客户端下载| 百家乐官网游戏打水| 和乐娱乐| 伟德百家乐下载| 高清|