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

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

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

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

RTT設(shè)備驅(qū)動(dòng)框架分析-串口調(diào)用流程

冬至子 ? 來(lái)源:chejia12 ? 作者:chejia12 ? 2023-10-26 17:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

應(yīng)用層函數(shù)調(diào)用流程分析以-串口為例

1.rt_device_find調(diào)用流程

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

1.jpg

RTT內(nèi)核對(duì)象存儲(chǔ)結(jié)構(gòu),
struct rt_object_information
{
enum rt_object_class_type type; / < object class type 比如線程類型,外部設(shè)備類型,信號(hào)量類型 /
rt_list_t object_list; /
< object list每個(gè)類型的設(shè)備形成為一個(gè)鏈表 */
rt_size_t object_size; /
*< object size 每個(gè)類型的鏈表item數(shù)量 */
};

2.設(shè)備打開rt_device_open

rt_device_open 首先是調(diào)用init函數(shù),然后調(diào)用open函數(shù)
init 內(nèi)部再次調(diào)用串口的configure函數(shù)
open內(nèi)部根據(jù)flag的類型,分別申請(qǐng)發(fā)送接收緩存rt_malloc,配置發(fā)送接收硬件serial->ops->control,如果配置的dma,則使用serial->ops->control配置打開dma。

1.jpg

3.rt_device_set_rx_indicate 和rt_device_set_tx_complete函數(shù)調(diào)用流程
這里的2個(gè)函數(shù)都是直接設(shè)置rt_device的rx_indicate 和 tx_indicate

1.jpg

4.rt_device_write 調(diào)用流程分析

rt_device_write 內(nèi)部調(diào)用device->write 函數(shù)也就是 rt_serial_write,內(nèi)部根據(jù)配置串口的發(fā)送方式發(fā)送數(shù)據(jù),是阻塞是dma還是中斷,阻塞和dma都是將數(shù)據(jù)放在緩沖區(qū)內(nèi)部,緩沖區(qū)在中斷和dma部還有臨界區(qū)的保護(hù)

1.jpg

5.rt_device_read 調(diào)用流程分析

rt_device_read內(nèi)部調(diào)用device->read 函數(shù)也就是 rt_serial_read,內(nèi)部根據(jù)配置串口的接收方式接收數(shù)據(jù),是阻塞接收是dma還是中斷接收,阻塞和dma都是將數(shù)據(jù)放在緩沖區(qū)內(nèi)部,緩沖區(qū)在中斷和dma部還有臨界區(qū)的保護(hù)

1.jpg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 接收機(jī)
    +關(guān)注

    關(guān)注

    9

    文章

    1240

    瀏覽量

    55819
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    577

    瀏覽量

    105286
  • 緩存器
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    12008
  • 串口中斷
    +關(guān)注

    關(guān)注

    0

    文章

    67

    瀏覽量

    14539
  • RTThread
    +關(guān)注

    關(guān)注

    8

    文章

    132

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    串口驅(qū)動(dòng)配置流程及電路圖設(shè)計(jì)

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

    OpenHarmony HDF 驅(qū)動(dòng)框架介紹和驅(qū)動(dòng)加載過(guò)程分析

    ,OpenHarmony 系統(tǒng) HDF 驅(qū)動(dòng)框架支持多種驅(qū)動(dòng)加載方式:支持驅(qū)動(dòng)動(dòng)態(tài)加載和靜態(tài)加載,解除驅(qū)動(dòng)代碼和
    發(fā)表于 08-31 15:51

    字符設(shè)備驅(qū)動(dòng) —— 字符設(shè)備驅(qū)動(dòng)框架

    1、概述:linux中一切皆文件,設(shè)備也如此,并且以操作文件即文件IO的方式訪問(wèn)設(shè)備。  應(yīng)用程序只能通過(guò)庫(kù)函數(shù)中的系統(tǒng)調(diào)用來(lái)操作硬件,對(duì)于每個(gè)系統(tǒng)調(diào)用
    發(fā)表于 10-19 17:08

    分析rt-thread的I2C設(shè)備驅(qū)動(dòng)框架

    簡(jiǎn)要上一篇分析RTT的PIN驅(qū)動(dòng),得到了很多網(wǎng)友的認(rèn)可,很開心。很多人跟我反映寫一些u***,wlan等框架,這個(gè)一步一步來(lái),從淺到深。這一篇文章我們來(lái)
    發(fā)表于 01-12 06:23

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

    使用說(shuō)明串口流程分析分為兩部分,一部分是串口驅(qū)動(dòng),另一部分是串口
    發(fā)表于 03-11 15:03

    解讀rtt的c的面向?qū)ο蟮膶?duì)象創(chuàng)建及其啟動(dòng)初始化流程

    rtt設(shè)備框架對(duì)接層。此層是拿rtt創(chuàng)建好的類來(lái)創(chuàng)建子類設(shè)備對(duì)象或者自己派生出新類創(chuàng)建子類設(shè)備
    發(fā)表于 07-05 11:01

    將硬件I2C嫁接到RTT原生的模擬I2C驅(qū)動(dòng)框架步驟分享

    1、將硬件I2C巧妙地將嫁接到RTT原生的模擬I2C驅(qū)動(dòng)框架剛開始接觸RTTI2C驅(qū)動(dòng)框架,說(shuō)實(shí)在的,感覺(jué)有點(diǎn)道理。
    發(fā)表于 07-07 16:29

    詳解IO設(shè)備管理之父類調(diào)用子類方法的過(guò)程

    驅(qū)動(dòng)層都實(shí)現(xiàn)了注冊(cè)給父類的方法。這些方法是IO設(shè)備模型框架的血肉!2.2.1 先看對(duì)象創(chuàng)建流程調(diào)用設(shè)備
    發(fā)表于 10-09 15:18

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

    ——finsh線程分析——可以參考理解子類方法是如何被父類調(diào)用的。tips:(1)給BSP新增設(shè)備驅(qū)動(dòng)對(duì)接到rtt
    發(fā)表于 10-09 15:30

    為什么rtt的音頻框架recorder的相關(guān)源碼需要對(duì)pipe設(shè)備操作加中斷保護(hù)呢?

    請(qǐng)教一個(gè)rtt audio驅(qū)動(dòng)框架的問(wèn)題:1)對(duì)于recorder,為什么rtt的源碼對(duì)pipe的操作全都增加了rt_hw_interrupt_disable
    發(fā)表于 03-14 10:30

    rt-thread SDIO驅(qū)動(dòng)框架分析(SD卡flash驅(qū)動(dòng)\SD Nand flash驅(qū)動(dòng)

    文章目錄rt-thread SDIO驅(qū)動(dòng)框架分析之SD卡驅(qū)動(dòng)1. 前言2. SDIO通用驅(qū)動(dòng)框架
    發(fā)表于 04-04 16:26

    RT-Thread (2) RTT SPI設(shè)備驅(qū)動(dòng)流程 || LWIP + ENC28J60

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

    《rt-thread驅(qū)動(dòng)框架分析》-i2c驅(qū)動(dòng)

    上一篇分析RTT的PIN驅(qū)動(dòng),得到了很多網(wǎng)友的認(rèn)可,很開心。很多人跟我反映寫一些usb,wlan等框架,這個(gè)一步一步來(lái),從淺到深。
    發(fā)表于 01-26 17:03 ?0次下載
    《rt-thread<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>框架</b><b class='flag-5'>分析</b>》-i2c<b class='flag-5'>驅(qū)動(dòng)</b>

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

    基于IAR搭建RA MCU串口RTT Viewer打印
    的頭像 發(fā)表于 08-14 09:49 ?1923次閱讀
    基于IAR搭建RA MCU<b class='flag-5'>串口</b>與<b class='flag-5'>RTT</b> Viewer打?。ㄉ希? />    </a>
</div>                              <div   id=

    基于IAR搭建RA MCU串口RTT Viewer打?。ㄏ拢?/a>

    基于IAR搭建RA MCU串口RTT Viewer打印
    的頭像 發(fā)表于 08-14 09:50 ?2037次閱讀
    基于IAR搭建RA MCU<b class='flag-5'>串口</b>與<b class='flag-5'>RTT</b> Viewer打?。ㄏ拢? />    </a>
</div>                    </div>
                    <div   id=