/sys/ kernel/debug/tracing/current_tracer //清空以前的跟蹤信息 echo 1 > /sys/ kernel/debug/tracing/events/i2c/enableecho 1 > /sys/ kernel/debug/tracing/trasing_on //打開跟蹤器 操作設備,復現問題。echo 0 > /sys/ kernel/debug/tracing/tracing_on //關閉跟蹤器 adb pull /sys/kernel/debug/tracing/trace 如下目錄也可以操作: /sys/ kernel /tracing/ adb pull 出來的 trace 文件如下: # tracer: nop # # entries-in-buffer/entries-written: 1203/1087390 #P:6 # # _-----= > irqs-off # / _----= > need-resched # | / _---= > hardirq/soft" />

色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

Linux ftrace工具抓 i2c trace

麥辣雞腿堡 ? 來源:嵌入式Linux系統開發 ? 作者:嵌入式Linux系統開 ? 2023-07-20 11:23 ? 次閱讀

i2c trace

adb root

echo nop > /sys/kernel/debug/tracing/current_tracer  //清空以前的跟蹤信息
echo 1 > /sys/kernel/debug/tracing/events/i2c/enable
echo 1 > /sys/kernel/debug/tracing/trasing_on  //打開跟蹤器

操作設備,復現問題。

echo 0 > /sys/kernel/debug/tracing/tracing_on//關閉跟蹤器

adb pull /sys/kernel/debug/tracing/trace

如下目錄也可以操作:

/sys/kernel/tracing/

adb pull 出來的 trace 文件如下:

# tracer: nop
#
# entries-in-buffer/entries-written: 1203/1087390   #P:6
#
#                              _-----= > irqs-off
#                             / _----= > need-resched
#                            | / _---= > hardirq/softirq
#                            || / _--= > preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
   kworker/u12:0-6     [003] ...1   253.195437: i2c_reply: i2c-1 #1 a=038 f=0001 l=63 [00-00-01-81-68-03-72-00-00-ff-ff-ff-ff-00-00-ff-ff-ff-ff-00-00-ff-ff-ff-ff-00-00-ff-ff-ff-ff-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00]
   kworker/u12:0-6     [003] ...1   253.195440: i2c_result: i2c-1 n=2 ret=2
   kworker/u12:0-6     [003] ...1   253.257546: i2c_write: i2c-1 #0 a=038 f=0000 l=1 [00]
   kworker/u12:0-6     [003] ...1   253.257550: i2c_read: i2c-1 #1 a=038 f=0001 l=63
   kworker/u12:0-6     [003] ...1   253.263708: i2c_reply: i2c-1 #1 a=038 f=0001 l=63 [00-00-01-81-68-02-d0-00-00-ff-ff-ff-ff-00-00-ff-ff-ff-ff-00-00-ff-ff-ff-ff-00-00-ff-ff-ff-ff-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00]
   kworker/u12:0-6     [003] ...1   253.263711: i2c_result: i2c-1 n=2 ret=2
   kworker/u12:5-223   [003] ...1   254.632061: i2c_write: i2c-1 #0 a=038 f=0000 l=1 [00]
   kworker/u12:5-223   [003] ...1   254.632064: i2c_read: i2c-1 #1 a=038 f=0001 l=63
   kworker/u12:5-223   [003] ...1   255.728473: i2c_result: i2c-1 n=1 ret=1
   kworker/u12:5-223   [003] ...1   255.728499: i2c_write: i2c-1 #0 a=01a f=0000 l=3 [63-a8-10]
   kworker/u12:4-222   [003] ...1   266.944488: i2c_write: i2c-1 #0 a=038 f=0000 l=1 [00]
   kworker/u12:4-222   [003] .n.1   266.944492: i2c_read: i2c-1 #1 a=038 f=0001 l=63
   kworker/u12:1-53    [003] ...1   268.822588: i2c_reply: i2c-1 #1 a=038 f=0001 l=63 [00-00-00-40-00-01-c4-00-00-ff-ff-ff-ff-00-00-ff-ff-ff-ff-00-00-ff-ff-ff-ff-00-00-ff-ff-ff-ff-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00]
   kworker/u12:1-53    [003] ...1   268.822591: i2c_result: i2c-1 n=2 ret=2
   kworker/u12:1-53    [003] ...1   268.822650: i2c_write: i2c-1 #0 a=038 f=0000 l=1 [00]
   kworker/u12:1-53    [003] ...1   268.822651: i2c_read: i2c-1 #1 a=038 f=0001 l=63
   kworker/u12:0-6     [003] ...1   271.457514: i2c_write: i2c-1 #0 a=038 f=0000 l=1 [00]
   kworker/u12:0-6     [003] ...1   271.457518: i2c_read: i2c-1 #1 a=038 f=0001 l=63

這里看出,是哪個 task,PID 是多少,用的 I2C-1 進行通信,傳輸過程是跑在 CPU3 上面,并且有 kernel 時間戳。

i2c_write、i2c_read、i2c_reply、i2c_result 是一個循環,i2c_reply 是 i2c 傳輸完成,并且重新被 CPU 調度,返回到調用線程的時間點,i2c_result 則是兩次 i2c 傳輸的時間間隔。

每一筆 i2c 傳輸的長度,內容,也都會打印出來。

因為博主一開始只在 events 里面 enable 了 i2c,因此只抓除了 i2c 部分,我們可以同時 enable 其他事件:

圖片

如果我們同時 enable i2c 和 irq ,我們將在 trace 中看到更詳細的內容,足夠分析 i2c 傳輸慢的問題。

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

    關注

    87

    文章

    11322

    瀏覽量

    209865
  • I2C
    I2C
    +關注

    關注

    28

    文章

    1490

    瀏覽量

    124032
收藏 人收藏

    評論

    相關推薦

    I2C Guid I2C指南

    I2C Guid  I2C指南 The I2C bus is used in a wide rangeof applications because it is simpleand
    發表于 04-23 13:55 ?36次下載

    I2C總線在Linux系統中的驅動設計

    介紹I2C總線的基本概念和工作原理,敘述I2C總線擴展器件ZLG7290的功能特點。在以S3C2410為微控制器,ZLG7290為I2C總線擴展器件的基礎上,介紹通過
    發表于 12-29 16:52 ?40次下載

    i2c

    單片機i2c總線操作;單片機i2c總線操作;單片機i2c總線操作;
    發表于 05-17 11:09 ?35次下載

    linux自帶i2c工具使用

    平臺管理總線),DDC(顯示數據通道)以及ATCA(高級電信架構).如果沒記錯的話,linux中的I2C框架是完全支持SMBus的.
    發表于 05-13 09:23 ?3994次閱讀

    LinuxI2C驅動架構

    1.???? LinuxI2C驅動架構LinuxI2C總線的驅動分為兩個部分,總線驅動(BUS)和設備驅動(DEVICE)。其中總線驅動的職責,是為系統中每個
    發表于 04-02 14:38 ?686次閱讀

    Linux驅動中的I2C驅動架構詳細分析

    其實I2C接口非常的簡單,即使用51單片機的gpio來模擬I2C,編寫一個e2prom或者其他I2C接口的驅動程序,也不是什么難事,幾百行代碼就能搞定。但是
    發表于 08-01 17:35 ?3次下載
    <b class='flag-5'>Linux</b>驅動中的<b class='flag-5'>I2C</b>驅動架構詳細分析

    嵌入式linux應用讀寫i2c示例

    這里分享一個嵌入式linux讀寫24c02的i2c程序ioctl函數的使用:原型:struct ioctl(struct file *file,unsigned int cmd,unsigned
    發表于 11-01 16:57 ?12次下載
    嵌入式<b class='flag-5'>linux</b>應用讀寫<b class='flag-5'>i2c</b>示例

    linux I2C子系統(及相關程序設計MPU6050)

    文章目錄linux I2C子系統框架在設備樹中添加從設備信息,mpu5060I2C driver 程序的編寫mpu6050 I2C程序具體實現lin
    發表于 12-06 13:36 ?9次下載
    <b class='flag-5'>linux</b> <b class='flag-5'>I2C</b>子系統(及相關程序設計MPU6050)

    linux移植MPU6050的I2C驅動

    上次移植了0.96寸的oled到linux上,用到的是SPI協議,這次買了一個I2C協議的模塊,MPU-6050。到手焊好,先在我先前買的pico上面測試了一下,因為pico的I2C例子里面剛好
    發表于 12-06 14:21 ?10次下載
    <b class='flag-5'>linux</b>移植MPU6050的<b class='flag-5'>I2C</b>驅動

    Linux應用開發【第十二章】I2C編程應用開發

    4:傳輸速率 5) 特性5:負載和距離 12.2.3 協議層 1) 數據有效性 2) 起始和結束條件 3) 應答 4) 數據幀格式 12.2 在linux系統下操作I2C總線的外設 12.2.1 概述
    的頭像 發表于 12-10 19:28 ?933次閱讀
    <b class='flag-5'>Linux</b>應用開發【第十二章】<b class='flag-5'>I2C</b>編程應用開發

    硬件I2C與模擬I2C

    硬件I2C對應芯片上的I2C外設,有相應I2C驅動電路,其所使用的I2C管腳也是專用的,因而效率要遠高于軟件模擬的I2C;一般也較為穩定,但
    發表于 12-28 19:14 ?81次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    Linux I2C驅動入門知識科普

    I2C 總線驅動, I2C總線驅動就是SOC的 I2C控制器驅動,也叫做 I2C適配器驅動。
    的頭像 發表于 12-29 13:59 ?1716次閱讀

    Linux ftrace簡介與分析

    最近遇到 i2c 傳輸慢的問題,正常一筆 i2c 傳輸 52 bytes 應該在 1ms 內返回,但是偶爾出現 6 ~ 7ms 才返回,不滿足要求,因此研究一下 ftrace 工具,分
    的頭像 發表于 07-20 11:17 ?854次閱讀

    Linux ftrace工具宏定義

    宏定義 在使用 ftrace 之前,需要確保內核配置編譯了其配置選項。 CONFIG_FTRACE=y CONFIG_HAVE_FUNCTION_TRACER=y
    的頭像 發表于 07-20 11:18 ?649次閱讀

    I2C子系統SW Architecture

    I2C SW Architecture 【driver 驅動層】由普通驅動工程師負責,【i2c 核心層】由 Linux 提供,【i2c 核心層】以下由芯片原廠負責。
    的頭像 發表于 07-22 16:01 ?969次閱讀
    <b class='flag-5'>I2C</b>子系統SW Architecture
    主站蜘蛛池模板: 色欲国产麻豆一精品一AV一免费| 4k岛国精品午夜高清在线观看| 在线观看国产日韩| 久久成人无码国产免费播放| 夜色福利院在线观看免费| 蜜桃臀无码内射一区二区三区| 99国产精品免费视频| 日日噜噜噜噜夜夜爽亚洲精品| 国产午夜精品不卡观看| 又长又大又粗又硬3p免费视频 | 91看片淫黄大片.在线天堂| 年轻老师毛茸茸自由性| 岛国精品在线观看| 亚洲精品久久久久久偷窥| 欧美亚洲国产免费高清视频| 久久精品国产视频澳门| 999精品在线| 在线视频免费国产成人| 人人射人人插| 6 10young俄罗斯| 色影音先锋av资源网| 亚洲精品资源网在线观看| 亚洲免费综合色视频| 超碰在线 视频| 欧美一第一页草草影院| 国产人妻精品久久久久久很牛| 超碰97av 在线人人操| 99re久久热最新地址一| 中文字幕1| 在线精品视频成人网| 亚洲区欧美日韩综合| 亚洲国产中文字幕在线视频综合 | 亚洲精品中文字幕制| 日本大尺码喷液过程视频| 两性色午夜视频免费国产| 花蝴蝶免费观看影视| 国产a级黄色毛片| 处破女免费播放| av在线观看地址| 自拍视频亚洲综合在线精品| 亚洲精品久久区二区三区蜜桃臀|