女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

Linux中什么是 Regmap

麥辣雞腿堡 ? 來(lái)源:嵌入式Linux系統(tǒng)開(kāi)發(fā) ? 作者:嵌入式Linux系統(tǒng)開(kāi) ? 2023-07-06 17:25 ? 次閱讀

Linux 下大部分設(shè)備的驅(qū)動(dòng)開(kāi)發(fā)都是操作其內(nèi)部寄存器,比如 I2C/SPI 設(shè)備的本質(zhì)都是一樣的,通過(guò) I2C/SPI 接口讀寫(xiě)芯片內(nèi)部寄存器。芯片內(nèi)部寄存器也是同樣的道理,比如 I.MX6ULL的 PWM、定時(shí)器等外設(shè)初始化,最終都是要落到寄存器的設(shè)置上。

Linux 下使用 i2c_transfer 來(lái)讀寫(xiě) I2C 設(shè)備中的寄存器,SPI 接口的話(huà)使用 spi_write/spi_read等。I2C/SPI 芯片又非常的多,因此 Linux 內(nèi)核里面就會(huì)充斥了大量的 i2c_transfer 這類(lèi)的冗余代碼,再者,代碼的復(fù)用性也會(huì)降低。比如 icm20608 這個(gè)芯片既支持 I2C 接口,也支持 SPI 接口。假設(shè)我們?cè)诋a(chǎn)品設(shè)計(jì)階段一開(kāi)始將 icm20608 設(shè)計(jì)為 SPI 接口,但是后面發(fā)現(xiàn) SPI 接口不夠用,或者 SOC 的引腳不夠用,我們需要將 icm20608 改為 I2C 接口。這個(gè)時(shí)候 icm20608 的驅(qū)動(dòng)就要大改,我們需要將 SPI 接口函數(shù)換為 I2C 的,工作量比較大。

基于代碼復(fù)用的原則,Linux 內(nèi)核引入了 regmap 模型,regmap 將寄存器訪(fǎng)問(wèn)的共同邏輯抽象出來(lái),驅(qū)動(dòng)開(kāi)發(fā)人員不需要再去糾結(jié)使用 SPI 或者 I2C 接口 API 函數(shù),統(tǒng)一使用 regmapAPI 函數(shù)。這樣的好處就是統(tǒng)一使用 regmap,降低了代碼冗余,提高了驅(qū)動(dòng)的可以移植性。regmap 模型的重點(diǎn)在于:

通過(guò) regmap 模型提供的統(tǒng)一接口函數(shù)來(lái)訪(fǎng)問(wèn)器件的寄存器,SOC 內(nèi)部的寄存器也可以使用 regmap 接口函數(shù)來(lái)訪(fǎng)問(wèn)。

regmap 是 Linux 內(nèi)核為了減少慢速 I/O 在驅(qū)動(dòng)上的冗余開(kāi)銷(xiāo),提供了一種通用的接口來(lái)操作硬件寄存器。另外,regmap 在驅(qū)動(dòng)和硬件之間添加了 cache,降低了低速 I/O 的操作次數(shù),提高了訪(fǎng)問(wèn)效率,缺點(diǎn)是實(shí)時(shí)性會(huì)降低。

什么情況下會(huì)使用 regmap:

①、硬件寄存器操作,比如選用通過(guò) I2C/SPI 接口來(lái)讀寫(xiě)設(shè)備的內(nèi)部寄存器,或者需要讀寫(xiě) SOC 內(nèi)部的硬件寄存器。

②、提高代碼復(fù)用性和驅(qū)動(dòng)一致性,簡(jiǎn)化驅(qū)動(dòng)開(kāi)發(fā)過(guò)程。

③、減少底層 I/O 操作次數(shù),提高訪(fǎng)問(wèn)效率。

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

    關(guān)注

    87

    文章

    11456

    瀏覽量

    212750
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3483

    瀏覽量

    49968
  • 系統(tǒng)
    +關(guān)注

    關(guān)注

    1

    文章

    1028

    瀏覽量

    21701
收藏 人收藏

    評(píng)論

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

    飛凌嵌入式ElfBoard ELF 1板卡-Regmap子系統(tǒng)之Regmap簡(jiǎn)介

    Regmap(Register Map)API 是一個(gè)在 Linux 內(nèi)核中提供對(duì)寄存器映射的抽象訪(fǎng)問(wèn)的接口。它旨在簡(jiǎn)化對(duì)寄存器和寄存器集合的訪(fǎng)問(wèn)和配置,并提供一種統(tǒng)一的方式來(lái)管理硬件寄存器的讀取
    發(fā)表于 04-16 11:03

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-Regmap子系統(tǒng)之Regmap框架結(jié)構(gòu)

    Regmap 框架的主要分為物理總線(xiàn)、Regmap核心、Regmap API三部分組成。Regmap物理總線(xiàn)(Regmap Bus):
    發(fā)表于 04-17 13:59

    飛凌嵌入式ElfBoard ELF 1板卡-Regmap的優(yōu)勢(shì)

    一、抽象接口Regmap 提供了一個(gè)抽象的寄存器訪(fǎng)問(wèn)接口,隱藏了底層通信接口的細(xì)節(jié)。這使得驅(qū)動(dòng)程序可以使用統(tǒng)一的接口來(lái)訪(fǎng)問(wèn)不同類(lèi)型的設(shè)備寄存器,如 I2C、SPI、MMIO 等,而無(wú)需關(guān)心底層通信
    發(fā)表于 05-22 10:39

    飛凌嵌入式ElfBoard ELF 1板卡-Regmap使用

    , int reg, int val);//向單個(gè)reg寫(xiě)入指定長(zhǎng)度的數(shù)據(jù),數(shù)據(jù)存放在valint regmap_raw_write(struct regmap *map, int reg, void
    發(fā)表于 05-22 10:40

    「正點(diǎn)原子Linux連載」第六十章Linux RTC驅(qū)動(dòng)實(shí)驗(yàn)

    RTC硬件原理部分我們已經(jīng)在裸機(jī)篇的第二十五章進(jìn)行了詳細(xì)的講解,這里就不再?gòu)U話(huà)了。Linux內(nèi)核將RTC設(shè)備抽象為rtc_device結(jié)構(gòu)體,因此RTC設(shè)備驅(qū)動(dòng)就是申請(qǐng)并初始化rtc_device
    發(fā)表于 03-18 10:20

    「正點(diǎn)原子Linux連載」第六十章Linux RTC驅(qū)動(dòng)實(shí)驗(yàn)

    RTC硬件原理部分我們已經(jīng)在裸機(jī)篇的第二十五章進(jìn)行了詳細(xì)的講解,這里就不再?gòu)U話(huà)了。Linux內(nèi)核將RTC設(shè)備抽象為rtc_device結(jié)構(gòu)體,因此RTC設(shè)備驅(qū)動(dòng)就是申請(qǐng)并初始化rtc_device
    發(fā)表于 03-23 09:52

    以rk808驅(qū)動(dòng)為例子講解i2c regmap方式讀寫(xiě)

    I2C讀寫(xiě)時(shí)序regmap i2cIntroRegmap主要目的是減少慢速I(mǎi)/O驅(qū)動(dòng)上的重復(fù)邏輯,提供一種通用的接口來(lái)操作底層硬件上的寄存器.Regmap除了能做到統(tǒng)一的I/O接口,還可以在驅(qū)動(dòng)
    發(fā)表于 08-11 16:43

    Embeded linux的MMC驅(qū)動(dòng)

    Embeded linux的MMC驅(qū)動(dòng)
    發(fā)表于 05-14 16:08 ?1295次閱讀
    Embeded <b class='flag-5'>linux</b><b class='flag-5'>中</b>的MMC驅(qū)動(dòng)

    linux復(fù)制文件的方法

     linux如何復(fù)制文件?
    發(fā)表于 06-03 09:17 ?2335次閱讀
    <b class='flag-5'>linux</b><b class='flag-5'>中</b>復(fù)制文件的方法

    IoT Linux 選擇

    在物聯(lián)網(wǎng)的設(shè)備設(shè)計(jì),從低成本和低功耗的角度看,Android肯定比不過(guò)嵌入式Linux。但在選擇用于部署Linux的發(fā)行版本時(shí),卻一直飽受困擾。
    的頭像 發(fā)表于 12-25 18:24 ?703次閱讀

    如何在Linux查找斷開(kāi)的符號(hào)鏈接

    在之前的文章,我們解釋了什么是 Linux 的符號(hào)鏈接。符號(hào)鏈接(Symbolic links 或 symlinks)或軟鏈接(soft links)用于在 Linux
    的頭像 發(fā)表于 02-06 18:23 ?1876次閱讀

    Linux Regmap 驅(qū)動(dòng)框架

    regmap 向驅(qū)動(dòng)編寫(xiě)人員提供的 API 接口,驅(qū)動(dòng)編寫(xiě)人員使用這些API 接口來(lái)操作具體的芯片設(shè)備,也是驅(qū)動(dòng)編寫(xiě)人員重點(diǎn)要掌握的。 2、regmap 結(jié)構(gòu)體 Linux 內(nèi) 核 將 regm
    的頭像 發(fā)表于 07-06 17:29 ?1357次閱讀
    <b class='flag-5'>Linux</b> <b class='flag-5'>Regmap</b> 驅(qū)動(dòng)框架

    Linux Regmap 操作函數(shù)

    Regmap 操作函數(shù) 1、Regmap 申請(qǐng)與初始化 regmap 支持多種物理總線(xiàn),比如 I2C 和 SPI,我們需要根據(jù)所使用的接口來(lái)選擇合適的 regmap 初始化函數(shù)。
    的頭像 發(fā)表于 07-06 17:31 ?3499次閱讀