ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

展讯平台GPIO调试方法

2020-12-04 11:57:46  阅读:510  来源: 互联网

标签:lo xxx sys 展讯 0x4028 gpio GPIO 调试


GPIO操作的2种方法,1种查看状态的方法
关于GPIO寄存器的描述可以到展讯官网上下载GPIO寄存器的文档,由于网络差,当前登陆不进
1.GPIO被分为8组,每组GPIO对应的操作寄存器地址为 第一个地址即(0x40280000;0x40280080;0x40280100等等)
    Gpio0 0x4028_0000 ~0x4028_007F
    Gpio1 0x4028_0080 ~0x4028_00FF
    Gpio2 0x4028_0100 ~0x4028_017F
    Gpio3 0x4028_0180 ~0x4028_01FF
    Gpio4 0x4028_0200 ~0x4028_027F
    Gpio5 0x4028_0280 ~0x4028_02FF
    Gpio6 0x4028_0300 ~0x4028_037F
    Gpio7 0x4028_0380 ~0x4028_03FF

    操作方法1 :
        adb root
        adb remount
        adb shell
        lookat -l 8 0x40280080  //打印以 0x40280080 为起始地址的 5个连续的寄存器
        lookat -s 0x00004000  0x40280080  //把0x00004000 写入 0x40280080寄存器中

    实际操作结果:
    xxx-xxx:/ #  lookat -l 5 0x40280080
    [I] nword = 0x8
      ADDRESS  |   VALUE
    -----------+-----------
    0x40280080 | 0x00000000
    0x40280084 | 0x00004000
    0x40280088 | 0x00004000
    0x4028008c | 0x0000ffff
    0x40280090 | 0x00000000
    xxx-xxx:/ #
    xxx-xxx:/ # lookat -s 0x00004000 0x40280080
    [I] value = 0x4000
    xxx-xxx:/ #

2.在linux文件系统中操作gpio设备节点
注意:当前操作方法实际操作时发现基地址为160,但是添加观察的GPIO只能按照144为基地址添加,结合第三点查看gpio状态中的结果可以大致推断,此部分基地址应该存在BUG。
export只能按找 144为基地址加GPIO文件,但是实际GPIO对应的是 160的基地址

/sys/class/gpio
cat gpiochip*/base   //查看偏移地址
cat gpiochip*/label   // ?

echo 246 >export    //添加要看的GPIO编号
cat value           //查看GPIO高低电平
cat direction       //查看GPIO输入输出状态

实际操作结果:
xxx-xxx:/sys/class/gpio # cat gpiochip*/base   //查看偏移地址(基地址是其中之一)
144
160
416
440
464
488
xxx-xxx:/sys/class/gpio # cat gpiochip*/label
sc27xx-eic
40280000.gpio
eic-sync
eic-async
eic-latch
eic-debounce
xxx-xxx:/sys/class/gpio #
xxx-xxx:/sys/class/gpio # echo 184>export   //添加要看的GPIO编号(184 为基地址+GPIO编号,如果这里基地址为144,则对应GPIO40)
export          gpio281/        gpiochip160/    gpiochip464/
gpio174/        gpio305/        gpiochip416/    gpiochip488/
gpio184/        gpiochip144/    gpiochip440/    unexport
xxx-xxx:/sys/class/gpio #
xxx-xxx:/sys/class/gpio # ls
export  gpio184 gpio305     gpiochip160 gpiochip440 gpiochip488
gpio174 gpio281 gpiochip144 gpiochip416 gpiochip464 unexport
xxx-xxx:/sys/class/gpio # cd gpio305/
xxx-xxx:/sys/class/gpio/gpio305 #
xxx-xxx:/sys/class/gpio/gpio305 #
xxx-xxx:/sys/class/gpio/gpio305 #
xxx-xxx:/sys/class/gpio/gpio305 # cat value
0
xxx-xxx:/sys/class/gpio/gpio305 # cat direction
in
xxx-xxx:/sys/class/gpio/gpio305 #


3. 一种查看所有GPIO状态的方法
    cat sys/kernel/debug/gpio

实际操作结果:
xxx-xxx:/ # cat /sys/kernel/debug/gpio
gpiochip5: GPIOs 144-159, parent: platform/sc27xx-eic, sc27xx-eic:
 gpio-144 (                    |vbus                ) in  hi IRQ
 gpio-145 (                    |Power Key           ) in  hi IRQ
 gpio-147 (                    |button              ) in  lo IRQ
 gpio-149 (                    |detect_mic          ) in  lo
 gpio-152 (                    |detect_l            ) in  lo
 gpio-153 (                    |bat-detect          ) in  hi IRQ
 gpio-154 (                    |Volume Up Key       ) in  lo IRQ
 gpio-156 (                    |detect_h            ) in  lo
 gpio-157 (                    |detect_all          ) in  lo IRQ

gpiochip4: GPIOs 160-415, parent: platform/40280000.gpio, 40280000.gpio:
 gpio-164 (                    |bias_avdd_gpio      ) out hi
 gpio-165 (                    |bias_avee_gpio      ) out hi
 gpio-168 (                    |flash-torch-en-gpios) out lo
 gpio-190 (                    |power-down-gpios    ) out lo
 gpio-200 (                    |power-down-gpios    ) out lo
 gpio-201 (                    |reset-gpios         ) out lo
 gpio-204 (                    |reset-gpios         ) out lo
 gpio-206 (                    |power-down-gpios    ) out lo
 gpio-210 (                    |reset               ) out hi
 gpio-213 (                    |flash-en-gpios      ) out lo
 gpio-222 (                    |ext_spk_r           ) out lo
 gpio-238 (                    |cd                  ) in  hi IRQ
 gpio-249 (                    |?                   ) out lo
 gpio-281 (                    |adaptive_ts_int     ) in  hi IRQ
 gpio-292 (                    |power-down-gpios    ) out lo
 gpio-304 (                    |flash-en-gpios      ) out lo
 gpio-305 (                    |adaptive_ts_rst     ) in  lo

gpiochip3: GPIOs 416-439, parent: platform/402100c0.gpio, eic-sync:

gpiochip2: GPIOs 440-463, parent: platform/402100a0.gpio, eic-async:

gpiochip1: GPIOs 464-487, parent: platform/40210080.gpio, eic-latch:

gpiochip0: GPIOs 488-511, parent: platform/40210000.gpio, eic-debounce:
 gpio-490 (                    |Volume Down Key     ) in  hi IRQ
 gpio-492 (                    |id                  ) in  lo IRQ
xxx-xxx:/ #

标签:lo,xxx,sys,展讯,0x4028,gpio,GPIO,调试
来源: https://blog.csdn.net/u011624475/article/details/110632381

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有