<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      uboot 2020版本下gpio命令的使用 + linux下的libgpiod lib庫的移植使用

      第一大部分 uboot下的gpio

      1.在uboot命令行中想要支持gpio的命令,需要打開如下宏

      CONFIG_CMD_GPIO=y

      2.選用gpio引腳,作為測試引腳

      2.1 查看電路原理圖,選用那種soc不和mcu連接的pin,這樣可以避免mcu的干擾。

      2.2 查看pinmux的配置文件pinmux.h,選用目前已經(jīng)被復(fù)用為gpio的pin管腳。

      0x049BC418, 0x00060094,  /* PadName = I2C9_SDA             Fuction = GPIO0_A29 */
      0x049BC80C, 0x00060094,  /* PadName = SDIO_DAT3            Fuction = GPIO0_A14 */
      0x049BC818, 0x00060094,  /* PadName = SDIO_DAT2            Fuction = GPIO0_A13 */

      目前ball name SDIO_DAT2,SDIO_DAT3,I2C9_SDA已經(jīng)被pinmux成gpio管腳,也就是說 這幾個ball管腳已經(jīng)被內(nèi)部連接到gpio controller模塊。

      我們就以這三個管腳為例,進行實驗。

      3.在uboot command中設(shè)置管腳輸出高/低,并用邏輯分析儀進行查看

      在本soc中g(shù)pio分為0、1、2三組,每組有32個gpio,做如下約定N為gpio的編號,p為組號取值范圍為0、1、2,可以得到 N=p*32+offset。以GPIO0_29為例計算gpio的編號,可以知道

      p=0, offset為29,N=0*32+29=29.

      image

      image

      4.根據(jù)uboot command gpio命令,我們可以追蹤到源碼,發(fā)現(xiàn)其核心的實現(xiàn)是基于如下幾個函數(shù)

      gpio_request

      gpio_direction_output

      gpio_get_value

      附錄1:即使是配置成輸出模式,也是可以通過gpio_get_value獲取現(xiàn)在的值是多少。

      我曾經(jīng)做過如下實驗,

      將某個gpio設(shè)置成輸出,并設(shè)置成輸出邏輯1,由于我在外圍電路上強制將其硬線連接到GND地,所以uboot gpio command會告訴我設(shè)置失敗。

      設(shè)置輸出為0或者1的邏輯是 先設(shè)置并獲取其值,如果不一致,就通過打印 報 錯誤信息。

      附錄2:通過研究步驟4中函數(shù)的代碼實現(xiàn),最終就是 設(shè)置gpio controller對應(yīng)的寄存器。

      所以  我們應(yīng)該是也可以通過uboot中md和mw命令來讀寫寄存器直接進行設(shè)定。由于時間關(guān)系,目前尚未驗證。

       第二大部分 linux下的libgpiod

      1.移植的版本

      https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-v1.6.x.tar.gz

      2.編譯方法

      ./autogen.sh --enable-tools=yes --host=arm-linux-gnueabihf --prefix=/home/zhongshan/zhongshan_test/libgpiod_install_path

      3.查看編譯出來的工具集合gpiodetect依賴的庫,以及庫本身所依賴的庫。確認板子上目前是否有這些被依賴的庫。

      image

       4.執(zhí)行如下命令,并通過mcu輸出方波到soc的GPIO2_A8,觀察如下打印

      gpiomon --num-events=3 --rising-edge gpiochip2 8
      event:  RISING EDGE offset: 8 timestamp: [949336016.966726520]
      event:  RISING EDGE offset: 8 timestamp: [949336018.966762854]
      event:  RISING EDGE offset: 8 timestamp: [949336020.966797355]

       

      總結(jié):在uboot下是用一個總的N, number號來指明是哪個gpio管腳,需要轉(zhuǎn)換

                 而下linux下是用 哪個group 哪個腳,不需要進行轉(zhuǎn)換。

      posted @ 2025-10-05 21:42  midhillzhou  閱讀(31)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产不卡的一区二区三区| 亚洲精品综合久久国产二区| 51妺嘿嘿午夜福利| 午夜DY888国产精品影院| 国产精品香港三级国产av| 亚洲全网成人资源在线观看| 国产一国产看免费高清片| 国产成人无码午夜视频在线播放| 日韩激情一区二区三区| 国产成人无码AV片在线观看不卡| 人妻少妇无码精品专区| 日韩中文字幕国产精品| 女性高爱潮视频| 1区2区3区高清视频| 亚洲精品成人综合色在线| 暖暖 在线 日本 免费 中文| 99久久国产一区二区三区| 国产精品久久久久9999| 4hu44四虎www在线影院麻豆| 亚洲av日韩av永久无码电影| 狠狠躁夜夜躁人人爽天天古典| 亚洲日韩AV秘 无码一区二区| 综合区一区二区三区狠狠| 国产午夜亚洲精品国产成人| 日韩中文字幕高清有码| 正在播放肥臀熟妇在线视频| 超碰自拍成人在线观看| 久艹视频免费看| 日韩熟妇| 国产精品第一页中文字幕| 国产成人精品一区二区三| 精品无码专区久久久水蜜桃| 国产精品99区一区二区三| 极品尤物被啪到呻吟喷水| 午夜福利看片在线观看| 亚洲精品国产精品国在线| 成人午夜免费无码视频在线观看| 视频一区视频二区在线视频| 无码高潮爽到爆的喷水视频app| 国产情侣草莓视频在线| 在线无码午夜福利高潮视频|