国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【技術(shù)分享】RK356X Android 使用 libgpiod 測(cè)試gpio

這篇具有很好參考價(jià)值的文章主要介紹了【技術(shù)分享】RK356X Android 使用 libgpiod 測(cè)試gpio。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言

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

Purple Pi OH作為一款兼容樹(shù)莓派的開(kāi)源主板,采用瑞芯微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),提供豐富開(kāi)源資料。

產(chǎn)品規(guī)格書(shū)查看深圳觸覺(jué)智能官網(wǎng)-產(chǎn)品中心

【技術(shù)分享】RK356X Android 使用 libgpiod 測(cè)試gpio,android,嵌入式硬件

【技術(shù)分享】RK356X Android 使用 libgpiod 測(cè)試gpio,android,嵌入式硬件

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

  1. 下載源碼到?external目錄下:

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

倉(cāng)庫(kù)鏈接:platform_external_libgpiod

  1. 添加到?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)用庫(kù)的接口使用測(cè)試

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

  • src/tools/gpiotest.h

【技術(shù)分享】RK356X Android 使用 libgpiod 測(cè)試gpio,android,嵌入式硬件

  • src/tools/gpiotest.c?函數(shù)簡(jiǎn)單說(shuō)明,#define LEN 45需要修改

#include?<stdio.h>
#include?<unistd.h>
#include?<gpiod.h>
#include?"gpiotest.h"

#define?LEN 45?// GPIO 數(shù)組總數(shù),可以用sizeof獲取數(shù)組大小
#define?HIGH 1

int?main()
{

??struct?gpiod_chip?*input_chip, *output_chip;
??struct?gpiod_line?*input_line, *output_line;

??bool?output_value, input_value;
????int?ret,test_res =?0, total =?0;

????for?(int?num =?0; num <?2; num++ ){
????????int?in_chip =?0;
????????int?in_line =?1;
????????int?out_chip =?2;
????????int?out_line =?3;

??????// 反轉(zhuǎn)測(cè)試,將原來(lái)輸出改為輸入
????????if?(?1?== num ){
??????????in_chip =?2;
??????????in_line =?3;
??????????out_chip =?0;
??????????out_line =?1;
????????}

????????for?(int?i =?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(int?j =?0;j <?2; j++){
??????????????output_value = gpiod_line_get_value(output_line);
??????????????
??????????????//測(cè)試?yán)?、拉???????????????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);
??return?0;
}

程序編譯

使用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?shell?chmod +x?/system/bin/gpiotest

gpiotest 使用

【技術(shù)分享】RK356X Android 使用 libgpiod 測(cè)試gpio,android,嵌入式硬件

  • 數(shù)組第十項(xiàng)測(cè)試失敗,其余通過(guò),通過(guò)gpiotest.h可以找到對(duì)應(yīng)的 GPIO文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-742679.html

到了這里,關(guān)于【技術(shù)分享】RK356X Android 使用 libgpiod 測(cè)試gpio的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • RK356x基于Ubuntu20.04搭建ROS開(kāi)發(fā)環(huán)境

    CPU:RK356x 操作系統(tǒng):arm64 Ubuntu20.04 1、首先確保開(kāi)發(fā)板是可以聯(lián)網(wǎng)的。

    2024年01月20日
    瀏覽(35)
  • RK356X 解除UVC攝像頭預(yù)覽分辨率1080P限制

    RK356X 解除UVC攝像頭預(yù)覽分辨率1080P限制

    ? RK3566 + Android 11 ? ? UVC: USB video class(又稱為USB video device class or UVC)就是USB device class視頻產(chǎn)品在不需要安裝任何的驅(qū)動(dòng)程序下即插即用,包括攝像頭、數(shù)字?jǐn)z影機(jī)、模擬視頻轉(zhuǎn)換器、電視卡及靜態(tài)視頻相機(jī)。 測(cè)試代碼: 打印出來(lái)后顯示支持的預(yù)覽分辨率如下: 然而,把

    2023年04月22日
    瀏覽(20)
  • RK356x之HDMI顯示出現(xiàn)輸出信號(hào)不穩(wěn)定、花屏、出現(xiàn)紅條紋現(xiàn)象

    芯片:rk356x系列 顯示器: HDMI接口顯示器 HDMI顯示器接到控制板上可以顯示,但是會(huì)出現(xiàn)時(shí)不時(shí)出現(xiàn)閃爍,紅條紋(就好像之前我們家里大塊電視上的條紋)。 猜想1:HDMI顯示器可能壞了 猜想2: 電路板上的某些器件影響了HDMI輸出信號(hào) 猜想3:HDMI線的長(zhǎng)度也有可能導(dǎo)致信號(hào)輸出不

    2024年02月12日
    瀏覽(39)
  • rk3588/rk356x/rv1109/rv1126 live555移植+mpp編譯 rtsp拉流

    rk3588/rk356x/rv1109/rv1126 live555移植+mpp編譯 rtsp拉流

    本文主要是為了記錄一下rk板子的踩坑日記。 項(xiàng)目主要是rk3588 rtsp拉流。 1.下載MPP源碼:https://github.com/rockchip-linux/mpp 2.rk3588/rk356x的板子進(jìn)入Mpp源碼目錄 mpp/build/linux/aarch64 (rk3588/rk356x是64位板子)中,修改 arm.linux.cross.cmake 文件中的配置 修改 make-Makefiles.bash 的配置,主要改

    2023年04月19日
    瀏覽(41)
  • 軟件測(cè)試技術(shù)分享丨使用Postman搞定各種接口token實(shí)戰(zhàn)

    軟件測(cè)試技術(shù)分享丨使用Postman搞定各種接口token實(shí)戰(zhàn)

    現(xiàn)在許多項(xiàng)目都 使用jwt來(lái)實(shí)現(xiàn)用戶登錄和數(shù)據(jù)權(quán)限 ,校驗(yàn)過(guò)用戶的用戶名和密碼后,會(huì)向用戶響應(yīng)一段經(jīng)過(guò)加密的token,在這段token中可能儲(chǔ)存了數(shù)據(jù)權(quán)限等,在后期的訪問(wèn)中,需要攜帶這段token,后臺(tái)解析這段token才允許用戶訪問(wèn)接口。 01、設(shè)置Bearer Token 如果后端項(xiàng)目使用

    2024年02月10日
    瀏覽(19)
  • 使用Android Studio 利用極光推送SDK 制作手機(jī) APP 實(shí)現(xiàn)遠(yuǎn)程測(cè)試技術(shù) (第一部)

    總參考文章:https://blog.csdn.net/qq_38436214/article/details/105073213 Android Studio 安裝配置教程 - Windows(詳細(xì)版) 1.JDK 安裝與環(huán)境變量配置(Win10詳細(xì)版) 《jdk-8u371-windows-i586.exe》 https://blog.csdn.net/qq_38436214/article/details/105071088 此時(shí)會(huì)讓登錄賬號(hào)密碼: https://login.oracle.com/mysso/signon.jsp 賬號(hào):

    2024年02月03日
    瀏覽(25)
  • 技術(shù)分享 | 接口測(cè)試請(qǐng)求超時(shí)怎么辦?

    技術(shù)分享 | 接口測(cè)試請(qǐng)求超時(shí)怎么辦?

    作為一名軟件測(cè)試技術(shù)面試官,經(jīng)常會(huì)通過(guò)提問(wèn)一些基礎(chǔ)性的實(shí)踐來(lái)考查候選人是否真正擁有相關(guān)的技術(shù)經(jīng)驗(yàn),在接口測(cè)試中我們經(jīng)常會(huì)遇到請(qǐng)求超時(shí)的情況。這是一個(gè)非常普遍的問(wèn)題,這就需要在平時(shí)的錯(cuò)誤中來(lái)總結(jié)經(jīng)驗(yàn)了以便在面試時(shí)可以舉例說(shuō)明報(bào)錯(cuò)及自己的排查過(guò)程

    2024年02月09日
    瀏覽(30)
  • Android技術(shù)分享| Bugly 應(yīng)用升級(jí)自定義UI

    Android技術(shù)分享| Bugly 應(yīng)用升級(jí)自定義UI

    最近項(xiàng)目里的采用免費(fèi)的Bugly應(yīng)用升級(jí)功能,由于默認(rèn)的 UI 非常的簡(jiǎn)陋且與項(xiàng)目整體風(fēng)格不搭,所以需要自定義UI,本篇文章記錄在實(shí)現(xiàn)過(guò)程中的一些注意事項(xiàng)。根據(jù)官方文檔可知,自定義升級(jí)界面有以下兩種方式。 一、固定控件ID 這種方式比較簡(jiǎn)單,只需要自己編寫(xiě)布局,

    2024年02月02日
    瀏覽(18)
  • 軟件測(cè)試技術(shù)分享丨遇到bug怎么分析?

    軟件測(cè)試技術(shù)分享丨遇到bug怎么分析?

    為什么定位問(wèn)題如此重要? 可以明確一個(gè)問(wèn)題是不是真的“bug” 很多時(shí)候,我們找到了問(wèn)題的原因,結(jié)果發(fā)現(xiàn)這根本不是bug。原因明確,誤報(bào)就會(huì)降低 多個(gè)系統(tǒng)交互,可以明確指出是哪個(gè)系統(tǒng)的缺陷,防止“踢皮球”,提高問(wèn)題解決的效率 增強(qiáng)開(kāi)發(fā)對(duì)測(cè)試的信任度,溝通更

    2024年02月10日
    瀏覽(23)
  • Android端自動(dòng)化測(cè)試工具源碼分享

    Android端自動(dòng)化測(cè)試工具源碼分享

    Hello啊各位老鐵,許久不見(jiàn),也忘了更新了,在上一篇的文章中,針對(duì)Android端的自動(dòng)化測(cè)試框架做了一個(gè)簡(jiǎn)單的了解與使用,今天這篇文章呢,咱們就談一談具體的實(shí)現(xiàn)思路。 實(shí)話實(shí)說(shuō),針對(duì)這個(gè)1.0.0的版本,還是有著很多的瑕疵之處,奈何自己時(shí)間跟不上繼續(xù)開(kāi)發(fā)的步伐,

    2024年02月05日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包