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

【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】驅(qū)動移植

這篇具有很好參考價值的文章主要介紹了【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】驅(qū)動移植。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、環(huán)境介紹

RK3588主板搭載Android12操作系統(tǒng),內(nèi)核是Linux5.10,使用ST的六軸傳感器LSM6DSR芯片。

二、芯片介紹

LSM6DSR是一款加速度和角速度(陀螺儀)六軸傳感器,還內(nèi)置了一個溫度傳感器。該芯片可以選擇I2C,SPI通訊,還有可編程終端,可以后置攝像頭等設(shè)備,功能是很強(qiáng)大的(感興趣的可以去看數(shù)據(jù)手冊)。該芯片原廠公開了input和iio兩種驅(qū)動,我這邊選用的是iio驅(qū)動。

三、驅(qū)動移植

驅(qū)動移植的目標(biāo)是內(nèi)核,所以下面的路徑都是在kernel目錄下。

源碼鏈接:https://github.com/STMicroelectronics/STMems_Linux_IIO_drivers/tree/linux-4.19.y-gh

1,拷貝drivers/iio/imu/st_lsm6dsr文件夾到源碼內(nèi)核中相應(yīng)路徑

2,在?drivers/iio/imu/Kconfig中添加驅(qū)動支持,如果源碼中有自帶的st_lsm6dsx驅(qū)動的話,需要在對應(yīng)的代碼前加#注釋掉,以免影響移植的驅(qū)動。

source "drivers/iio/imu/st_lsm6dsr/Kconfig"

3,在drivers/iio/imu/Makefile中添加驅(qū)動編譯,如果源碼中有自帶的st_lsm6dsx驅(qū)動的話,需要在對應(yīng)的代碼前加#注釋掉,以免影響移植的驅(qū)動。

obj-y += st_lsm6dsr/

4,在?include/uapi/linux/iio/types.h種增加枚舉值(找到對應(yīng)enum,查找下下面的值是否有缺,增加缺失的即可)

     enum iio_event_type {
            IIO_EV_TYPE_THRESH_ADAPTIVE,
            IIO_EV_TYPE_MAG_ADAPTIVE,
            IIO_EV_TYPE_CHANGE,
            IIO_EV_TYPE_FIFO_FLUSH,
    };

     enum iio_event_direction {
            IIO_EV_DIR_RISING,
            IIO_EV_DIR_FALLING,
            IIO_EV_DIR_NONE,
            IIO_EV_DIR_FIFO_EMPTY,
            IIO_EV_DIR_FIFO_DATA,
    };

5,在include/uapi/linux/iio/types.h中增加枚舉值

     enum iio_chan_type {
             IIO_ELECTRICALCONDUCTIVITY,
             IIO_COUNT,
             IIO_INDEX,
             IIO_SIGN_MOTION,
             IIO_STEP_DETECTOR,
             IIO_STEP_COUNTER,
             IIO_TILT,
             IIO_TAP,
             IIO_TAP_TAP,
             IIO_WRIST_TILT_GESTURE,
             IIO_GESTURE,
             IIO_WKUP,
             IIO_FREE_FALL,
             IIO_GRAVITY,
     };

6,在arch/arm64/boot/dts/rockchip/rd-rk3588.dts中增加設(shè)備樹支持

&i2c1 {#總線名稱需根據(jù)自身情況修改

	status = "okay";

	st_lsm6dsr: lsm6dsr@6b {
		compatible = "st,lsm6dsr";
		reg = <0x6b>;
		interrupt-parent = <&gpio3>;#需根據(jù)自身情況修改
		interrupts = <RK_PC3 IRQ_TYPE_LEVEL_HIGH>;#需根據(jù)自身情況修改
	};
}

7,進(jìn)入到源碼根目錄執(zhí)行指令“./build.sh menuconfig”后配置增加芯片支持(也可以直接編譯,然后根據(jù)提示輸入Y就行)

  Device Drivers  --->
  	<M> Industrial I/O support  --->
  		Inertial measurement units  --->
  		<M>   STMicroelectronics LSM6DSM/LSM6DSL sensor  --->

8,修改取時間調(diào)用接口

【android12-linux-5.1】【ST芯片】驅(qū)動移植后編譯不通過__花花的博客-CSDN博客

9,增加iio驅(qū)動名稱定義

【android12-linux-5.1】【ST芯片】驅(qū)動移植后編譯不通過__花花的博客-CSDN博客

10,編譯燒錄后查看設(shè)備情況

1)“adb shell” 指令進(jìn)入設(shè)備

【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】驅(qū)動移植,Android,linux,android

2)“cd /sys/bus/iio/devices”指令進(jìn)入iio設(shè)備路徑并用“l(fā)s -l”指令查看設(shè)備列表

【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】驅(qū)動移植,Android,linux,android

3)“cat */name”查看設(shè)備名稱,這個驅(qū)動注冊了15個設(shè)備(iio序號不同系統(tǒng)和配置可能會有區(qū)別,請根據(jù)自己的情況分析使用)。

【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】驅(qū)動移植,Android,linux,android

設(shè)備情況列表總結(jié)如下

num device device name sensor name type 傳感器名稱 描述
1 iio:device1 lsm6dsr_gyro LSM6DSR Gyroscope Sensor SENSOR_TYPE_GYROSCOPE 角速度傳感器/陀螺儀 陀螺儀測量圍繞設(shè)備的 x、y 和 z 軸的旋轉(zhuǎn)速率(弧度/秒)
2 iio:device2 lsm6dsr_accel LSM6DSR Accelerometer Sensor SENSOR_TYPE_ACCELEROMETER 加速度傳感器 加速度傳感器測量施加到設(shè)備的加速度,包括重力
3 iio:device3 lsm6dsr_temp LSM6DSR Temperature Sensor SENSOR_TYPE_AMBIENT_TEMPERATURE 溫度傳感器 環(huán)境空氣溫度
4 iio:device4 lsm6dsr_step_c LSM6DSR Step Counter Sensor SENSOR_TYPE_STEP_COUNTER 計步器傳感器 提供自已激活傳感器后最后一次重啟以來用戶邁出的步數(shù)
5 iio:device5 lsm6dsr_step_d LSM6DSR Step Detector Sensor SENSOR_TYPE_STEP_DETECTOR 步行檢測傳感器 每次用戶邁步時,步測器傳感器都會觸發(fā)事件
6 iio:device6 lsm6dsr_sign_motion LSM6DSR Significant Motion Sensor SENSOR_TYPE_SIGNIFICANT_MOTION 特殊動作觸發(fā)傳感器 每次檢測到有效運動時,有效運動傳感器都會觸發(fā)事件,然后將其禁用
7 iio:device7 lsm6dsr_glance LSM6DSR Glance Gesture SENSOR_TYPE_GLANCE_GESTURE 掠過手勢傳感器 支持短暫打開屏幕,以便用戶根據(jù)特定動作瀏覽屏幕上的內(nèi)容
8 iio:device8 lsm6dsr_motion LSM6DSR Motion Gesture SENSOR_TYPE_MOTION_DETECT 運動檢測傳感器 如果設(shè)備處于運動狀態(tài)至少5秒,并且最大延遲為5秒,則產(chǎn)生事件
9 iio:device9 lsm6dsr_no_motion LSM6DSR No-Motion Gesture SENSOR_TYPE_STATIONARY_DETECT 靜止檢測器 如果設(shè)備靜止至少5秒,并且最大延遲時間為5秒,則產(chǎn)生事件
10 iio:device10 lsm6dsr_wk LSM6DSR WakeUp Gesture SENSOR_TYPE_WAKE_GESTURE 喚醒手勢傳感器 支持根據(jù)設(shè)備特定的動作喚醒設(shè)備
11 iio:device11 lsm6dsr_pickup LSM6DSR PickUp Gesture SENSOR_TYPE_PICK_UP_GESTURE 拾取手勢傳感器 拾起設(shè)備時觸發(fā),無論面前是什么(桌子、口袋、手提袋)
12 iio:device12 lsm6dsr_dev_orientation LSM6DSR Device Orientation Sensor SENSOR_TYPE_DEVICE_ORIENTATION 設(shè)備方向傳感器 測量設(shè)備的旋轉(zhuǎn)方向
13 iio:device13 lsm6dsr_wrist LSM6DSR Wrist Tilt Gesture SENSOR_TYPE_WRIST_TILT_GESTURE 手腕傾斜手勢傳感器 描述手腕傾斜手勢傳感器的常數(shù)
14 iio:device14 lsm6dsr_tilt LSM6DSR Tilt Sensor SENSOR_TYPE_TILT_DETECTOR 傾斜檢測傳感器 每次檢測到傾斜事件后均生成事件

4)設(shè)備數(shù)據(jù)讀取,以最簡單的溫度數(shù)據(jù)讀取為例。

1>“cd iio:device3”進(jìn)入溫度傳感器路徑,“l(fā)s”指令查看屬性文件:

【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】驅(qū)動移植,Android,linux,android

2>可以通過讀取“in_temp_raw”來查看溫度傳感器原始數(shù)據(jù),“cat in_temp_raw”指令查看溫度數(shù)據(jù):

【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】驅(qū)動移植,Android,linux,android

提示:該驅(qū)動于2022年就停止維護(hù)了,最新維護(hù)源碼路徑:https://github.com/STMicroelectronics/st-mems-android-linux-drivers-iio。開始移植的時候完全沒頭緒,只顧著檢測是否能用,沒注意維護(hù)情況問題。但是該驅(qū)動親測能用,HAL移植請看下篇。

另,源碼包上傳資源被拒,提示侵權(quán),需要的可以評論私信我獲取。

新人入行,經(jīng)驗分享,如有所誤,歡迎指出~

版權(quán)歸屬:深圳市琪智科技有限公司-花花文章來源地址http://www.zghlxwxcb.cn/news/detail-704368.html

到了這里,關(guān)于【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】驅(qū)動移植的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • RK3588 Android 12 北斗模塊調(diào)試

    北斗模塊用的MTK RS1612M3 , http://www.sragps.com/web/down.html,可以查看相關(guān)資料,用串口和系統(tǒng)通訊 Android12中主要包括串口設(shè)備樹修改,GPS2.0加載,gps.default.so編譯和上層應(yīng)用測試,以下主要記錄測試中碰到的難點 板子上用的串口8,因此打開uart8的設(shè)備樹配置 uart8 { status = “okay”;

    2024年02月15日
    瀏覽(31)
  • [RK3588 Android12]設(shè)置屏幕方向、分辨率和密度

    [RK3588 Android12]設(shè)置屏幕方向、分辨率和密度

    修改device/rockchip/common/BoardConfig.mk SF_PRIMARY_DISPLAY_ORIENTATIO參數(shù)值 在控制臺輸入 wm size 1920x1080 或 修改device/rockchip/rk3588/rk3588_s/rk3588_s.mk 增加PRODUCT_PROPERTY_OVERRIDES += ro.config.size_override參數(shù)值 在控制臺輸入 wm density 240 或 修改device/rockchip/rk3588/rk3588_s/rk3588_s.mk 修改PRODUCT_PROPERTY_OVERRI

    2024年02月15日
    瀏覽(30)
  • RK3588平臺開發(fā)系列講解(安卓篇)Android12 獲取 root 權(quán)限

    RK3588平臺開發(fā)系列講解(安卓篇)Android12 獲取 root 權(quán)限

    沉淀、分享、成長,讓自己和他人都能有所收獲!?? ??獲取 Android 設(shè)備的 root 權(quán)限是指取得超級用戶( root 用戶)的權(quán)限,使得用戶可以對系統(tǒng)進(jìn)行更廣泛的修改和操作。但需要注意,獲取 root 權(quán)限可能會導(dǎo)致安全風(fēng)險,包括系統(tǒng)不穩(wěn)定、數(shù)據(jù)丟失或設(shè)備損壞,因此應(yīng)該謹(jǐn)

    2024年02月03日
    瀏覽(209)
  • Android RK3588-12 hdmi-in Camera方式最大支持3個

    ? hdmi-in Camera最大支持3個 ? ? modified: ? hardware/interfaces/camera/device/3.4/default/ExternalCameraDevice.cpp ? ? modified: ? hardware/interfaces/camera/device/3.4/default/ExternalCameraDeviceSession.cpp ? ? modified: ? hardware/interfaces/camera/device/3.4/default/include/ext_device_v3_4_impl/ExternalCameraDeviceSession.h ? ? modified:

    2024年02月08日
    瀏覽(33)
  • RK3588平臺開發(fā)系列講解(USB篇)Linux Android USB軟件架構(gòu)

    RK3588平臺開發(fā)系列講解(USB篇)Linux Android USB軟件架構(gòu)

    平臺 內(nèi)核版本 安卓版本 RK3588 Linux 5.10 Android 12

    2024年02月09日
    瀏覽(24)
  • RK3588芯片支持8K視頻的硬編解碼

    RK3588芯片支持8K視頻的硬編解碼

    RK3588是一款采用8nm制程工藝的高端通用型SoC,CPU采用四核A76和四核A55的八核架構(gòu),GPU采用Mail G610MP4,集成6TOPS獨立NPU,支持四通道LPDDR5,有效保證了RK3588芯片的性能輸出。RK3588在視頻編解碼方面也十分突出,支持8K視頻的硬編硬解,非常適合VR(虛擬現(xiàn)實)、AR(增強(qiáng)現(xiàn)實)、

    2024年02月12日
    瀏覽(19)
  • 陀螺儀LSM6DSV16X與AI集成(5)----6D方向檢測功能

    陀螺儀LSM6DSV16X與AI集成(5)----6D方向檢測功能

    陀螺儀通常可以讀取三個方向上的旋轉(zhuǎn),即繞X軸、Y軸和Z軸的旋轉(zhuǎn)。每個方向上的旋轉(zhuǎn)包括正向旋轉(zhuǎn)和反向旋轉(zhuǎn),因此一共有六個位置。這六個位置分別是:1.X軸正向旋轉(zhuǎn)、2.X軸反向旋轉(zhuǎn)、3.Y軸正向旋轉(zhuǎn)、4.Y軸反向旋轉(zhuǎn)、5.Z軸正向旋轉(zhuǎn)、6.Z軸反向旋轉(zhuǎn) 通過檢測陀螺儀在每個方

    2024年02月22日
    瀏覽(16)
  • 【android】rk3588-android-bt

    【android】rk3588-android-bt

    參考: https://source.android.com/docs/core/connect/bluetooth?hl=zh-cn https://android.googlesource.com/platform/hardware/interfaces/+/master/bluetooth/ 藍(lán)牙整體硬件架構(gòu)上分為主機(jī)(計算機(jī)或MCU)和主機(jī)控制器(實際藍(lán)牙芯片組)兩部分;主機(jī)和控制器之間的通信遵循主機(jī)控制器接口(HCI),如下所示:

    2024年01月24日
    瀏覽(20)
  • 陀螺儀LSM6DSV16X與AI集成(3)----讀取融合算法輸出的四元數(shù)

    陀螺儀LSM6DSV16X與AI集成(3)----讀取融合算法輸出的四元數(shù)

    LSM6DSV16X 特性涉及到的是一種低功耗的傳感器融合算法(Sensor Fusion Low Power, SFLP). 低功耗傳感器融合(SFLP)算法: 該算法旨在以節(jié)能的方式結(jié)合加速度計和陀螺儀的數(shù)據(jù)。傳感器融合算法通過結(jié)合不同傳感器的優(yōu)勢,提供更準(zhǔn)確、可靠的數(shù)據(jù)。 6軸游戲旋轉(zhuǎn)向量: SFLP算法能

    2024年02月03日
    瀏覽(23)
  • arm魯班貓lubanCat rk3588 ubuntu20.04下源碼編譯安裝qt5.12.5

    arm魯班貓lubanCat rk3588 ubuntu20.04下源碼編譯安裝qt5.12.5

    ubuntu-18.04上通過源碼來編譯及安裝Qt-5.12庫 QT官方線上文檔for linux qt源碼下載地址 進(jìn)入下面目錄下載 【new_archive/qt/5.12/5.12.5/single/qt-everywhere-src-5.12.5.tar.xz】 將壓縮包放到Ubuntu某目錄,并進(jìn)入解壓: 初步解壓出:qt-everywhere-src-5.12.5.tar 最終得到:qt-everywhere-src-5.12.5 或者【右鍵】

    2024年04月11日
    瀏覽(46)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包