国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用

這篇具有很好參考價值的文章主要介紹了<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用

<Android開發(fā)> Android開發(fā)工具- 之-I2C TOOLS工具使用
<Linux開發(fā)>驅動開發(fā) -之- Linux I2C 驅動

一 前言

在筆者的另一篇文章 <Android開發(fā)> Android開發(fā)工具- 之-I2C TOOLS工具使用講解過,如何在android上使用I2C TOOLS工具。本文主要是分析如何在linux開發(fā)板上使用I2C TOOLS工具,整體使用和android基本一致,差一點主要在編譯這一塊。畢竟不同項目編譯還是有一定差異的;接下來我們就來看看如何將I2C TOOLS工具移植到linux開發(fā)板上。

二 獲取I2C工具源碼

下載地址:I2C_TOOLS
打開后如下:
<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)
筆者選擇了4.3版本,如下:
<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)
下載得到的是一個源碼包。
<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)
讀者根據(jù)自己想要的版本下來即可,下載完成后使用如下命令解壓:

tar -xvf i2c-tools-4.3.tar.gz

解壓后內容如下:
<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)

三 編譯I2C工具源碼

前面獲取得到源碼后,我們就需要使用交叉編譯工具,進行編譯,然后將編譯后生成的執(zhí)行文件放到設備中,即可。
整體的流程其實和平常Linux開發(fā)的流程基本是一樣的。
接下來我們看看如何編譯i2c-tools。

下載i2c-tools并解壓后如下圖:
<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)
使用編輯工具打開Makefile文件,筆者使用vscode。
打開后根據(jù)Linux板子的類型選擇32位還是64位的交叉編譯工具。然后新增以下內容:

32位設備添加:

bindir	+= /usr/local/arm/gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf/bin
ARCH = arm
CC =   arm-linux-gnueabihf-gcc

64位設備添加:

bindir	+= /usr/local/arm/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin
ARCH = arm
CC =  aarch64-linux-gnu-gcc

<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)
第28行:指定包含交叉工具的路徑,交叉編譯工具下載:linaro;下載后解壓到指定目錄下;筆者使用“tar -xvf gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.xz -C /usr/local/arm”解壓到該目錄。

第29行:執(zhí)行架構,Linux開發(fā)板,當然是arm了;

第30行:指定gcc編譯工具,這里指向交叉編譯工具。即 /usr/local/arm/gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc

第33行:指定包含交叉工具的路徑,交叉編譯工具下載:linaro;下載后解壓到指定目錄下;筆者使用“tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz -C /usr/local/arm”解壓到該目錄。

第34行:執(zhí)行架構,Linux開發(fā)板,當然是arm了;

第35行:指定gcc編譯工具,這里指向交叉編譯工具。即 /usr/local/arm/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc

添加好編譯參數(shù)后,打開終端,并執(zhí)行"make",如下:
<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)
可看到輸出內容,在tools目錄下生成我們所需要的工具文件。

進入tools目錄查看文件信息;
<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)
使用file命令可查看文件屬性,可看出 生成的i2cset是 32位,ARM的可執(zhí)行文件。

如果是用64位交叉編譯則是如下圖:
<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)

編譯得到的工具文件有:i2cdetect、i2cset、i2cdump、i2cget、i2ctransfer這幾個工具文件,我們將這幾個文件放到設備中即可使用。

四 I2C工具使用

3.1 準備工具文件

將2cdetect、i2cset、i2cdump、i2cget、i2ctransfer這幾個工具文件放到設備中,我們將其放到系統(tǒng)bin目錄下;以及l(fā)ibi2c.so,命令如下:

//移植執(zhí)行文件
cd i2c-tools-4.3/tools
cp i2cdetect ../../../nfs/buildrootfs/bin/
cp i2cset ../../../nfs/buildrootfs/bin/
cp i2cdump ../../../nfs/buildrootfs/bin/
cp i2cget ../../../nfs/buildrootfs/bin/
cp i2ctransfer ../../../nfs/buildrootfs/bin/

//移植libi2c.so
cd ../lib
cp libi2c.so ../../../nfs/buildrootfs/lib/
cp libi2c.so.0 ../../../nfs/buildrootfs/lib/
cp libi2c.so.0.1.1 ../../../nfs/buildrootfs/lib/

3.2 i2c-tool使用測試

本次測試是基于I.MX6ULL平臺驗證。筆者設備上i2c-0掛了一個三合一環(huán)境傳感器:AP3216C,詳細可查看:<Linux開發(fā)>驅動開發(fā) -之- Linux I2C 驅動

1)用i2cdetect檢測有幾組i2c總線在系統(tǒng)上
命令:

i2cdetect -l

<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)
所查詢的兩個I2C控制器 與設備樹中描述一致。
<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)

2)用i2cdetect檢測掛載在i2c-1總線上器件,
命令:

i2cdetect -r -y 1

<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)

其中:
1:表示檢測i2c-1上的掛載情況
檢測i2c-0上的掛載情況
<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)

3)用i2cdump查看器件所有寄存器的值,這個命令可以查看器件所有寄存器的值,在實際測試時很好用
命令:

i2cdump -f -y 0 0x1e

其中 :
0: 表示I2C-0這個總線;
0x1e:表示總線上 設備地址為0x1e的這個設備;
<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)

4)用i2cset來設置單個寄存器值
命令:

i2cset -f -y 0 0x1e 0x00 0x04   //復位器件
i2cset -f -y 0 0x1e 0x00 0x03   //啟動三合一環(huán)境傳感器轉換

其中 :
0: 表示I2C-0這個總線;
0x1e:表示總線上 設備地址為0x1e的這個設備;
0x00:操作的寄存器地址
0x04:當前操作的寄存器到寫入的值

進行上述配置后傳感器會啟動數(shù)據(jù)轉換,接著使用“i2cdump -f -y 0 0x1e”查看轉換后的數(shù)據(jù)即可,如下:
<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)
0X0A 0X0B 寄存器:紅外線強度(IR)、0x0C 0X0D寄存器:環(huán)境光強度(ALS)、0X0E 0X0F寄存器:接近距離(PS) 這三個環(huán)境參數(shù)。

4)用i2cget來獲取單個寄存器值
命令:

i2cget -f -y 0 0x1e 0x0A
i2cget -f -y 0 0x1e 0x0B
i2cget -f -y 0 0x1e 0x0C
i2cget -f -y 0 0x1e 0x0D
i2cget -f -y 0 0x1e 0x0E
i2cget -f -y 0 0x1e 0x0F

其中 :
0: 表示I2C-0這個總線;
0x1e:表示總線上 設備地址為0x1e的這個設備;
0x0A:操作的寄存器地址

<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用,Linux開發(fā)工具,linux,驅動開發(fā),arm開發(fā)

5)i2ctransfer 使用,i2ctransfer支持16位/32位寄存器的讀寫,i2cset和i2cget只能讀取8位的寄存器。所以i2ctransfer可以替代i2cset和i2cget
(1) 往i2c-0上0x1E器件 0x0000寄存器 寫0x01

$i2ctransfer -f -y 0 w3@0x1E 0x00 0x00 0x01

(2) 在i2c-0上0x1E器件 0x000A寄存器 讀取6個字節(jié)數(shù)據(jù)

i2ctransfer -f -y 0 w2@0x1E 0x00 0x0A r6

因為筆者使用的外設是8位寄存器的所以就沒有演示了。

五 總結

善于使用工具可以有效提交我們測試驗證外設的可用性 和錯誤性。幫助我們快速開發(fā)外設使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-586559.html

到了這里,關于<Linux開發(fā)> linux開發(fā)工具-之-I2C TOOLS工具使用的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Linux在應用層上使用I2C

    通常情況下i2c讀寫一般是在kernel中使用,但是在應用層上一樣可以使用。在應用上可以通過讀寫/dev/i2c-x這個節(jié)點從而控制i2c接口進行讀寫數(shù)據(jù)。 通常一個SOC有多個I2C控制器,假設有這個SOC有3個控制器,我們會在/dev目錄下看到i2c-0、i2c-1、i2c-2,計數(shù)從0開始。 1.首先使用的時

    2024年02月02日
    瀏覽(28)
  • 詳解AT24CXX驅動開發(fā)(linux platform tree - i2c應用)

    詳解AT24CXX驅動開發(fā)(linux platform tree - i2c應用)

    目錄 概述 1 認識AT24Cxx 1.1 AT24CXX的特性 1.2 AT24CXX描述 1.2.1 引腳 1.2.2 容量描述 1.2.3 設備地址 1.3 操作時序 1.3.1 寫單個字節(jié)時序 1.3.2 寫page字節(jié)時序 1.3.3 讀取當前數(shù)據(jù)時序 1.3.4 隨機讀取數(shù)據(jù) 1.3.5 連續(xù)讀取多個數(shù)據(jù) 2 驅動開發(fā) 2.1 硬件接口 2.2 代碼實現(xiàn) 2.2.1 查看設備信息 2.2.2 編寫

    2024年02月22日
    瀏覽(29)
  • linux i2c驅動開發(fā)之最簡單入門:設備樹與驅動的匹配

    1在設備樹中聲明我們的模擬I2C設備: i2c的設備加入是必須放在某個i2c的總線下面的,我們這里是放在 i2c7下面。 可以直接在設備樹搜索i2c7,然后把status 修改為okay,然后再加入設備信息. 這里我們指定和驅動匹配的字符串是 myi2c-dev,在bus segment 上分配的地址是 0x70 。 當然這

    2024年02月16日
    瀏覽(27)
  • I2C知識大全系列四 —— I2C驅動之Linux下的I2C

    I2C知識大全系列四 —— I2C驅動之Linux下的I2C

    Linux 系統(tǒng)定義了 I2C 驅動體系結構。在 Linux 系統(tǒng)中, I2C 驅動由三部分組成,即 I2C 核心 、 I2C 總線驅動 和 I2C 設備驅動 。這三部分相互協(xié)作,形成了非常通用、可適應性很強的 I2C 框架。 I2C核心 I2C 核心提供了 I2C 總線驅動 和 設備驅動 的 注冊 、 注銷方法 , I2C 通信方法

    2024年02月07日
    瀏覽(29)
  • Linux設備驅動開發(fā)學習筆記(等待隊列,鎖,字符驅動程序,設備樹,i2C...)

    container_of函數(shù)可以通過結構體的成員變量檢索出整個結構體 函數(shù)原型: 內核開發(fā)者只實現(xiàn)了循環(huán)雙鏈表,因為這個結構能夠實現(xiàn)FIFO和LIFO,并且內核開發(fā)者要保持最少代碼。 為了支持鏈表,代碼中要添加的頭文件是linux/list.h。內核中鏈表實現(xiàn)核心部分的數(shù)據(jù)結構 是struct li

    2024年01月22日
    瀏覽(19)
  • Linux Kernel 4.19+內核使用GPIO模擬I2C的方法

    1.修改內核配置文件,使內核支持GPIO模擬I2C 2.對應的dts里面增加GPIO模擬I2C的設備樹 編譯后燒寫,會發(fā)現(xiàn)/dev下多了一個i2c總線,多出來的那個就是了。

    2024年02月16日
    瀏覽(30)
  • 【分析筆記】Linux I2C-Tools 使用踩坑筆記

    【分析筆記】Linux I2C-Tools 使用踩坑筆記

    在調試 I2C 器件時,我一般習慣于使用 i2cdetect 工具來確認芯片是否有應答,通常有應答之后,就會開始著手移植或者編寫對應的驅動程序,但是在調試 sgp41 傳感器時卻不靈了。 在連續(xù)完成多個 I2C 器件的調試和驅動開發(fā)之后,最后一個 sgp41 傳感器卻一直無法被檢測到。在使

    2024年02月06日
    瀏覽(26)
  • Linux I2C 驅動實驗

    Linux I2C 驅動實驗

    目錄 一、Linux I2C 驅動簡介 1、I2C 總線驅動 2、I2C 設備驅動 1、 i2c_client 結構體 2、 i2c_driver 結構體 二、硬件分析 三、設備樹編寫 1、pinctrl_i2c1 2、在 i2c1 節(jié)點追加 ap3216c 子節(jié)點 3、驗證 四、?代碼編寫 1、makefile 2、ap3216c.h ?3、ap3216c.c ①、頭文件 ②、驅動出入口? ③、 i2c驅動

    2024年02月08日
    瀏覽(25)
  • 【IMX6ULL驅動開發(fā)學習】10.Linux I2C驅動實戰(zhàn):AT24C02驅動設計流程

    【IMX6ULL驅動開發(fā)學習】10.Linux I2C驅動實戰(zhàn):AT24C02驅動設計流程

    前情回顧:【IMX6ULL驅動開發(fā)學習】09.Linux之I2C框架簡介和驅動程序模板_阿龍還在寫代碼的博客-CSDN博客 目錄 一、修改設備樹(設備樹用來指定引腳資源) 二、編寫驅動 2.1?i2c_drv_read 2.2?i2c_drv_write 2.3 完整驅動程序 三、上機測試 放在哪個I2C控制器下面 AT24C02的I2C設備地址(查

    2024年02月11日
    瀏覽(85)
  • Linux I2C驅動分析2 - 通過設備樹添加設備

    Linux I2C驅動分析2 - 通過設備樹添加設備

    一. I2C通過設備樹添加設備 ? ? ? ? 通過設備可以向I2C總線添加I2C設備,設備樹舉例如下: ? ? ? ? 設備樹中在I2C總線下添加了一個oled0.98設備,oled在I2C總線中的地址為0x3c??梢栽?sys/bus/platform下看到這個設備。 二. I2C驅動代碼 三. I2C應用代碼 ? ? ? ? 以上的代碼功能是首

    2024年02月14日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包