在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

RK356X Android 使用 libgpiod 測試gpio

觸覺智能 ? 2023-11-04 08:33 ? 次閱讀

前言

libgpiod 是用于與 Linux GPIO 字符設備交互的 C 庫和工具庫;此項目包含六種命令行工具(gpiodetect、gpioinfo、gpioset、gpioget、gpiomon),使用這些工具可以在命令行設置和獲取GPIO的狀態信息;在程序開發中也可以調用庫提供的API接口來控制GPIO。本文內容可適用于RK3566系列開發板 Android11 系統上添加libgpiod庫和使用API來測試GPIO。

Purple Pi OH作為一款兼容樹莓派的開源主板,采用瑞芯微RK3566 (Cortex-A55) 四核64位超強CPU,主頻最高達1.8 GHz,算力高達1Tops,支持INT8/INT16,支持TensorFlow/MXNet/PyTorch/Caffe框架,多路視頻輸出和輸入,支持4K、H.265/H.264視頻解碼,接口豐富。

玩法豐富,支持Android 11、Debian 10、OpenHarmony3.2、Ubuntu、麒麟OS等多種系統,提供豐富開源資料

產品規格書:Purple Pi OH 產品手冊

cf0cfb00-7aa9-11ee-9788-92fbcf53809c.jpg

cf23856e-7aa9-11ee-9788-92fbcf53809c.jpg

Android 移植 libgpiod 庫和測試工具

下載源碼到 external目錄下:

cdexternal
git clone https://github.com/technexion-android/platform_external_libgpiod.git
#git clone https://kernel.googlesource.com/pub/scm/libs/libgpiod/libgpiod

倉庫鏈接:platform_external_libgpiod

添加到 PRODUCT_PACKAGES

在mk文件中添加編譯 libgpiod及工具

PRODUCT_PACKAGES+= \
RockchipPinnerService \
gpioset \
gpiomon \
gpioinfo \
gpioget \
gpiofind \
gpiodetect \
libgpiod

源碼

libgpiod-git.7z

命令行工具使用測試

使用gpioget 獲取 GPIO0_A6 的電平狀態

#gpioget gpiochip0 6
1

程序中調用庫的接口使用測試

編寫gpiotest.c 實現多組GPIO之間的輸入輸出對測功能

src/tools/gpiotest.h

cf2cdd12-7aa9-11ee-9788-92fbcf53809c.png

src/tools/gpiotest.c 函數簡單說明,#define LEN 45需要修改

#include
#include
#include
#include"gpiotest.h"

#defineLEN 45 // GPIO 數組總數,可以用sizeof獲取數組大小
#defineHIGH 1

intmain()
{

structgpiod_chip*input_chip, *output_chip;
structgpiod_line*input_line, *output_line;

booloutput_value, input_value;
intret,test_res = 0, total = 0;

for(intnum = 0; num < 2; num++ ){
intin_chip = 0;
intin_line = 1;
intout_chip = 2;
intout_line = 3;

// 反轉測試,將原來輸出改為輸入
if( 1== num ){
in_chip = 2;
in_line = 3;
out_chip = 0;
out_line = 1;
}

for(inti = 0; i < LEN; i++){
// 將 GPIO 配置為 輸入
input_chip = gpiod_chip_open_by_number(test_gpio[i][in_chip]);
if(!input_chip)
return-1;

input_line = gpiod_chip_get_line(input_chip,test_gpio[i][in_line]);
if(!input_line){
gpiod_chip_close(input_chip);
return-1;
}

ret = gpiod_line_request_input(input_line,"input");
if(ret){
gpiod_chip_close(input_chip);
return-1;
}

// 將 GPIO 配置為 輸出
output_chip = gpiod_chip_open_by_number(test_gpio[i][out_chip]);
if(!output_chip)
return-1;

output_line = gpiod_chip_get_line(output_chip,test_gpio[i][out_line]);
if(!output_line){
gpiod_chip_close(output_chip);
return-1;
}

ret = gpiod_line_request_output(output_line,"output",HIGH);
if(ret){
gpiod_chip_close(output_chip);
return-1;
}

test_res = 1;
for(intj = 0;j < 2; j++){
output_value = gpiod_line_get_value(output_line);

//測試拉高、拉低
gpiod_line_set_value(output_line, !output_value);
//printf("output gpio[%d]: %d\t",i, !output_value);
sleep(1);

input_value = gpiod_line_get_value(input_line);
//printf("input gpio[%d]: %d\n",i, input_value);

//用輸入 GPIO 驗證拉高、拉低
if( output_value != !input_value){
printf("test fail array [%d]\n",i);
test_res = -1;
break;
}
}

if( 1== test_res ){
printf("PASS gpio array %d\n",i);
total += 1;
}

// release gpio
gpiod_chip_close(input_chip);
gpiod_chip_close(output_chip);
}
}

printf("total pass gpio number %d\n",total);
return0;
}

程序編譯

使用mmm 命令指定目錄編譯

$mmm external/libgpiod/

編譯完成后,可執行文件產生的路徑為out/target/product/rk3566_r/system/bin/gpiotest

將程序push到主板中使用

adb root
adb remount
adb push out/target/product/rk3566_r/system/bin/gpiotest /system/bin
adb shellchmod +x/system/bin/gpiotest

gpiotest 使用

cf37fbd4-7aa9-11ee-9788-92fbcf53809c.png

數組第十項測試失敗,其余通過,通過gpiotest.h可以找到對應的 GPIO

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

    關注

    53

    文章

    1908

    瀏覽量

    71089
  • 開源
    +關注

    關注

    3

    文章

    3379

    瀏覽量

    42600
  • RK3566
    +關注

    關注

    0

    文章

    147

    瀏覽量

    4918
收藏 人收藏

    評論

    相關推薦

    迅為RK3588開發板Android 系統修改屏幕分辨率和 density

    數值),如下圖所示: wm density xxx wm density 方法二: 修改 Android 源碼目錄 device/rockchip/rk3588/topeet_rk3588/目錄
    發表于 12-27 11:07

    快速上手RK3588常用接口測試

    以及GPIO測試。EVM-RK3588評估板外觀(正面)一、USB2.0接口測試眺望電子EVM-RK3588底板支持一個USB2.0接口,用
    的頭像 發表于 12-26 08:33 ?711次閱讀
    快速上手<b class='flag-5'>RK</b>3588常用接口<b class='flag-5'>測試</b>

    瑞芯微平臺Android系統串口測試方法,觸覺智能RK3562開發板演示

    瑞芯微方案主板Android系統串口測試方法,通用RK3568、RK3566、RK3588、RK
    的頭像 發表于 12-24 11:51 ?305次閱讀
    瑞芯微平臺<b class='flag-5'>Android</b>系統串口<b class='flag-5'>測試</b>方法,觸覺智能<b class='flag-5'>RK</b>3562開發板演示

    [迅為RK3568開發板]非科班也能玩轉Android應用,體驗QT跨平臺能力

    [迅為RK3568開發板]非科班也能玩轉Android應用,體驗QT跨平臺能力
    的頭像 發表于 12-18 16:41 ?383次閱讀
    [迅為<b class='flag-5'>RK</b>3568開發板]非科班也能玩轉<b class='flag-5'>Android</b>應用,體驗QT跨平臺能力

    RK3568的顯示問題及其解決方法

    /rockchip/rk356x/overlay/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png 對于屏幕寬度至少為600dp
    發表于 12-16 09:14

    迅為RK3588開發板Android12動態替換開機logo

    迅為RK3588開發板Android12動態替換開機logo
    的頭像 發表于 11-15 15:04 ?541次閱讀
    迅為<b class='flag-5'>RK</b>3588開發板<b class='flag-5'>Android</b>12動態替換開機logo

    SOC GPIO操作

    GPIO_INTERRUPT_RISE_ENABLE 0x20#define GPIO_INTERRUPT_FALL_ENABLE 0x24#define
    的頭像 發表于 11-01 11:06 ?164次閱讀

    瑞芯微RK3566/RK3568 Android11下該如何默認屏蔽導航欄/狀態欄?看這篇文章就懂了

    本文介紹瑞芯微RK3566/RK3568在Android11系統默認屏蔽導航欄/狀態欄方法,觸覺智能的Purple Pi OH鴻蒙開發板演示,搭載瑞芯微RK3566芯片,已適配全新Op
    的頭像 發表于 10-30 18:26 ?515次閱讀
    瑞芯微<b class='flag-5'>RK</b>3566/<b class='flag-5'>RK</b>3568 <b class='flag-5'>Android</b>11下該如何默認屏蔽導航欄/狀態欄?看這篇文章就懂了

    TPS6598x GPIO事件

    電子發燒友網站提供《TPS6598x GPIO事件.pdf》資料免費下載
    發表于 09-30 10:32 ?0次下載
    TPS6598<b class='flag-5'>x</b> <b class='flag-5'>GPIO</b>事件

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測-迅為電子

    RK3588 技術分享 | 在Android系統中使用NPU實現Yolov5分類檢測-迅為電子
    的頭像 發表于 08-23 14:58 ?784次閱讀
    <b class='flag-5'>RK</b>3588 技術分享 | 在<b class='flag-5'>Android</b>系統中使用NPU實現Yolov5分類檢測-迅為電子

    Android-RK356x GT9XX多點觸控設置為單點觸控的方法

    本文基于RK356xAndroid11系統描述GT9XX驅動芯片由多點觸摸改為單點觸摸功能。本次介紹的是觸覺智能的PurplePiOH鴻蒙開源主板,PurplePiOH是華為Laval官方社區主薦
    的頭像 發表于 08-16 18:17 ?660次閱讀
    <b class='flag-5'>Android-RK356x</b> GT9XX多點觸控設置為單點觸控的方法

    如何在Android 10設備上通過App控制GPIO

    本文檔提供了在 Android 10 設備上通過應用程序(App)控制通用輸入輸出(GPIO)的詳細指南。這涵蓋了從創建 gpio驅動到App 配置 以及 SELinux 策略以允許特定訪問的所有必要步驟。
    的頭像 發表于 07-22 17:59 ?1281次閱讀

    Android案例分享,基于瑞芯微RK3568國產平臺!

    SDK:Rockchip_Android13_SDK_Release ? 硬件平臺介紹 創龍科技TL3568-EVM是一款基于瑞芯微RK3568J/RK3568B2處理器設計的四核ARM Cortex-A55國產工業評估板
    的頭像 發表于 06-20 10:04 ?705次閱讀
    <b class='flag-5'>Android</b>案例分享,基于瑞芯微<b class='flag-5'>RK</b>3568國產平臺!

    輕輕松松在RK356X Android11適配ML307R Cat.1模組

    本文基于IDO-SXB3568主板,介紹Android11平臺上適配中移物聯ML307RCat.14G模組的方法。該方法適用于觸覺所有RK356X的主板。IDO-SXB3568是觸覺智能推出
    的頭像 發表于 05-16 08:32 ?1213次閱讀
    輕輕松松在<b class='flag-5'>RK356X</b> <b class='flag-5'>Android</b>11適配ML307R Cat.1模組

    迅為RK3588S邊緣計算開發板Android13系統功能

    迅為RK3588S邊緣計算開發板Android13系統功能
    的頭像 發表于 04-10 15:43 ?959次閱讀
    迅為<b class='flag-5'>RK</b>3588S邊緣計算開發板<b class='flag-5'>Android</b>13系統功能
    主站蜘蛛池模板: 午夜亚洲精品| 美女黄网站人色视频免费国产| 91色爱| 成人综合色站| 日韩免费毛片全部不收费| 五月激情婷婷网| 四虎在线最新永久免费| 色偷偷伊人| 男人的天堂免费网站| 另类激情网| 变态重口极致另类在线| 激情综合五月亚洲婷婷| 精品视频一区二区三区四区五区| 狠狠色噜噜狠狠狠狠奇米777| 操你啦在线视频| 天堂在线bt| 爱综合网| 亚洲一级毛片中文字幕| 1v1高h肉爽文bl| 特黄aa级毛片免费视频播放| 乱妇伦小说| 婷婷丁香五| 九九99久久精品午夜剧场免费| bt天堂在线www最新版资源网| 黄 色 免费网 站 成 人| 菲菲国产在线观看| 国产精品美女一区二区三区| 亚洲综合黄色| 午夜影院免费观看| 免费看片免费播放| 欧美黑粗| 黄色在线网站| 在线a免费观看最新网站| 日韩高清性爽一级毛片免费| 激情五月婷婷网| 天天干天天上| 亚洲1314| 欧美黑人xxxx猛牲大交| 老熟女毛片| 人人入人人爱| 久久精品亚洲青青草原|