国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RK356X Android 使用 libgpiod 測(cè)試gpio

觸覺智能 ? 2023-11-04 08:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

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

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

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

產(chǎn)品規(guī)格書:Purple Pi OH 產(chǎn)品手冊(cè)

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

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

Android 移植 libgpiod 庫和測(cè)試工具

下載源碼到 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

命令行工具使用測(cè)試

使用gpioget 獲取 GPIO0_A6 的電平狀態(tài)

#gpioget gpiochip0 6
1

程序中調(diào)用庫的接口使用測(cè)試

編寫gpiotest.c 實(shí)現(xiàn)多組GPIO之間的輸入輸出對(duì)測(cè)功能

src/tools/gpiotest.h

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

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

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

#defineLEN 45 // GPIO 數(shù)組總數(shù),可以用sizeof獲取數(shù)組大小
#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;

// 反轉(zhuǎn)測(cè)試,將原來輸出改為輸入
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);

//測(cè)試?yán)摺⒗?/i>
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 驗(yàn)證拉高、拉低
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/

編譯完成后,可執(zhí)行文件產(chǎn)生的路徑為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

數(shù)組第十項(xiàng)測(cè)試失敗,其余通過,通過gpiotest.h可以找到對(duì)應(yīng)的 GPIO

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 主板
    +關(guān)注

    關(guān)注

    54

    文章

    2361

    瀏覽量

    76854
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    4207

    瀏覽量

    46143
  • RK3566
    +關(guān)注

    關(guān)注

    0

    文章

    159

    瀏覽量

    6647
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RK356x CPU高溫配置補(bǔ)丁解析:補(bǔ)全高溫電壓管控,筑牢運(yùn)行穩(wěn)定性(官方補(bǔ)丁)

    往期有rk3588平臺(tái)溫控策略具體實(shí)操,可以參考 RK3588 平臺(tái)溫控策略調(diào)整(75-85-95→90-100-110) 存在的核心問題 RK356x系列CPU的原有設(shè)備樹配置中,僅完成了常規(guī)頻率
    的頭像 發(fā)表于 02-24 16:46 ?1238次閱讀
    <b class='flag-5'>RK356x</b> CPU高溫配置補(bǔ)丁解析:補(bǔ)全高溫電壓管控,筑牢運(yùn)行穩(wěn)定性(官方補(bǔ)丁)

    一文搞定RK平臺(tái)Wi-Fi/BT調(diào)試!從配置到問題解決全攻略

    在嵌入式 Linux 開發(fā)中,瑞芯微(Rockchip)平臺(tái)的 Wi-Fi 與藍(lán)牙調(diào)試是許多工程師的核心需求。無論是 RK3588、RK356X 等主流芯片,還是 RV1106/1103 等 IPC
    的頭像 發(fā)表于 02-09 16:57 ?1320次閱讀
    一文搞定<b class='flag-5'>RK</b>平臺(tái)Wi-Fi/BT調(diào)試!從配置到問題解決全攻略

    RK平臺(tái)ROS2適配全指南:從編譯到運(yùn)行,手把手搞定嵌入式機(jī)器人開發(fā)

    在嵌入式機(jī)器人與智能硬件領(lǐng)域,瑞芯微(Rockchip)的 RK356xRK3588 等 arm64 芯片憑借高性能、低功耗的優(yōu)勢(shì),成為眾多開發(fā)者的首選硬件平臺(tái);而 ROS2(Robot
    的頭像 發(fā)表于 02-06 16:42 ?3454次閱讀
    <b class='flag-5'>RK</b>平臺(tái)ROS2適配全指南:從編譯到運(yùn)行,手把手搞定嵌入式機(jī)器人開發(fā)

    技術(shù)分享 | RK3568 Android11 如何實(shí)現(xiàn)自啟動(dòng)應(yīng)用

    隨著Android版本的不斷升級(jí),對(duì)于應(yīng)用權(quán)限的管理會(huì)更加苛刻。我司IAC-RK3568-Kit開發(fā)板默認(rèn)搭載Android11,相比較之前RK3288的產(chǎn)品安卓版本變更較大,有些客戶
    的頭像 發(fā)表于 02-05 17:26 ?410次閱讀
    技術(shù)分享 | <b class='flag-5'>RK</b>3568 <b class='flag-5'>Android</b>11 如何實(shí)現(xiàn)自啟動(dòng)應(yīng)用

    RK3568 Android11編譯環(huán)境搭建及報(bào)錯(cuò)解決指南

    在嵌入式開發(fā)領(lǐng)域,RK3568 芯片憑借其出色的性能被廣泛應(yīng)用。基于 RK3568 進(jìn)行 Android11 系統(tǒng)的開發(fā),首先要搭建好編譯環(huán)境。本文將詳細(xì)介紹在 Ubuntu20.04 系統(tǒng)上搭建
    的頭像 發(fā)表于 02-04 17:37 ?1707次閱讀
    <b class='flag-5'>RK</b>3568 <b class='flag-5'>Android</b>11編譯環(huán)境搭建及報(bào)錯(cuò)解決指南

    深入解析RK平臺(tái)GPIO驅(qū)動(dòng):從原理到調(diào)試,開發(fā)者必看指南

    GPIO(通用輸入輸出)作為嵌入式系統(tǒng)中最基礎(chǔ)也最常用的硬件接口,是連接芯片與外部設(shè)備的 “橋梁”。從簡單的 LED 控制、按鍵檢測(cè),到復(fù)雜的傳感器通信,都離不開 GPIO 的支持。在瑞芯微(RK
    的頭像 發(fā)表于 02-03 15:53 ?1030次閱讀
    深入解析<b class='flag-5'>RK</b>平臺(tái)<b class='flag-5'>GPIO</b>驅(qū)動(dòng):從原理到調(diào)試,開發(fā)者必看指南

    【VisionFive 2單板計(jì)算機(jī)試用體驗(yàn)】移植libgpiod

    官方有VisionFive.gpio,嘗試下移植libgpiod到開發(fā)板。 一、安裝GPIO庫 1.1、下載源碼 執(zhí)行命令: root@starfive:~# wget https
    發(fā)表于 07-02 07:16

    RK3568驅(qū)動(dòng)指南|第十二篇 GPIO子系統(tǒng)-第130章 GPIO的調(diào)試方法

    RK3568驅(qū)動(dòng)指南|第十二篇 GPIO子系統(tǒng)-第130章 GPIO的調(diào)試方法
    的頭像 發(fā)表于 06-03 11:32 ?1295次閱讀
    <b class='flag-5'>RK</b>3568驅(qū)動(dòng)指南|第十二篇 <b class='flag-5'>GPIO</b>子系統(tǒng)-第130章 <b class='flag-5'>GPIO</b>的調(diào)試方法

    迅為RK3568開發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

    迅為RK3568開發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入
    的頭像 發(fā)表于 05-29 14:05 ?1026次閱讀
    迅為<b class='flag-5'>RK</b>3568開發(fā)板驅(qū)動(dòng)指南<b class='flag-5'>GPIO</b>子系統(tǒng)<b class='flag-5'>GPIO</b>子系統(tǒng)API函數(shù)的引入

    迅為RK3568驅(qū)動(dòng)指南GPIO子系統(tǒng) GPIO操作函數(shù)實(shí)驗(yàn)

    迅為電子RK3568開發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng) GPIO操作函數(shù)實(shí)驗(yàn)
    的頭像 發(fā)表于 05-28 15:24 ?1337次閱讀
    迅為<b class='flag-5'>RK</b>3568驅(qū)動(dòng)指南<b class='flag-5'>GPIO</b>子系統(tǒng) <b class='flag-5'>GPIO</b>操作函數(shù)實(shí)驗(yàn)

    RK3568驅(qū)動(dòng)指南|第十二篇 GPIO子系統(tǒng)-第135章 GPIO子系統(tǒng)與pinctrl子系統(tǒng)相結(jié)合實(shí)驗(yàn)

    RK3568驅(qū)動(dòng)指南|第十二篇 GPIO子系統(tǒng)-第135章 GPIO子系統(tǒng)與pinctrl子系統(tǒng)相結(jié)合實(shí)驗(yàn)
    的頭像 發(fā)表于 05-23 13:47 ?1020次閱讀
    <b class='flag-5'>RK</b>3568驅(qū)動(dòng)指南|第十二篇 <b class='flag-5'>GPIO</b>子系統(tǒng)-第135章 <b class='flag-5'>GPIO</b>子系統(tǒng)與pinctrl子系統(tǒng)相結(jié)合實(shí)驗(yàn)

    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制GPIO中斷

    1、實(shí)驗(yàn)簡介本實(shí)驗(yàn)將演示如何在小凌派-RK2206開發(fā)板上使用IOT庫的GPIO中斷模式,進(jìn)行GPIO編程開發(fā)。例程將創(chuàng)建一個(gè)任務(wù),通過配置GPIO引腳為中斷模式,實(shí)現(xiàn)
    的頭像 發(fā)表于 04-21 10:39 ?1107次閱讀
    基于小凌派<b class='flag-5'>RK</b>2206開發(fā)板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>GPIO</b>中斷

    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制GPIO外設(shè)

    1、案例簡介本案例主要是如何在小凌派-RK2206開發(fā)板上使用IOT庫的GPIO接口,進(jìn)行GPIO編程開發(fā)。例程將創(chuàng)建一個(gè)任務(wù),通過配置GPIO引腳,實(shí)現(xiàn)
    的頭像 發(fā)表于 04-11 15:36 ?2050次閱讀
    基于小凌派<b class='flag-5'>RK</b>2206開發(fā)板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>GPIO</b>外設(shè)

    瑞芯微RK356X主板復(fù)用接口配置方法,觸覺智能嵌入式方案商

    本文介紹瑞芯微RK356X系列復(fù)用接口配置的方法,基于觸覺智能RK3562開發(fā)板演示,搭載4核A53處理器,主頻高達(dá)2.0GHz;內(nèi)置獨(dú)立1Tops算力NPU,可應(yīng)用于物聯(lián)網(wǎng)網(wǎng)關(guān)、平板電腦、智能家居
    的頭像 發(fā)表于 03-28 18:04 ?1099次閱讀
    瑞芯微<b class='flag-5'>RK356X</b>主板復(fù)用接口配置方法,觸覺智能嵌入式方案商

    迅為iTOP-RK3576人工智能開發(fā)板Android?系統(tǒng)接口功能測(cè)試

    迅為iTOP-RK3576人工智能開發(fā)板Android?系統(tǒng)接口功能測(cè)試
    的頭像 發(fā)表于 03-28 14:45 ?3804次閱讀
    迅為iTOP-<b class='flag-5'>RK</b>3576人工智能開發(fā)板<b class='flag-5'>Android</b>?系統(tǒng)接口功能<b class='flag-5'>測(cè)試</b>