自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

~未来可期~

未来可期,加油~

  • 博客(131)
  • 资源 (2)
  • 收藏
  • 关注

原创 [RK3568 Android11] 教程之init.rc文件语法详解

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录一、init.rc介绍二、rc文件语法1、rc 文件主要包含2、语法3、Actions4、Commands5、Services6、Options一、init.rc介绍Android系统底层开发过程,init.rc相关文件修改是必不可少;init.rc是一个可配置的初始化文件,在讲解init.rc文件之前,我们先了解下init进程,init是android系统内核起来的用户空...

2022-05-02 14:25:37 2945 3

原创 [RK3568 Android11]开发之GPS调试(二)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、底层调试二、下载GPS驱动三、移植GPS驱动四、GPS服务五、实际效果前言前面一篇已讲了些GPS相关知识,此篇讲解在RK3568 Android11上调试GPS模块功能;一、底层调试1、DTS设备树需要打开对应串口的配置;2、配置好后,看下/dev目录下是否有生成对应的串口节点 由于此开发板引出的串口是由SPI转串口芯片生成的,GPS模块是接在/...

2022-04-04 22:05:43 4279 6

原创 [RK3568 Android11]开发之GPS调试(一)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、了解GPS1、GPS概念2、GPS定位原理二、ATGM336H 5N-31模块1、GPS硬件部分2、GPS模块通讯协议3、PPS三,GPS调试前言GPS调试是采用中科微旗下的ATMG336H模块,该模块采用TTL串口的通讯协议,所以只需要板子上有TTL串口的接口即可(但也需要注意模块供电的电压);此次使用的是ATGM336H 5N-31模块,该模块支持GPS和...

2022-04-04 17:53:01 8284

原创 [RK3568 Android11]开发之PCA9535 GPIO使用方法

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、PCA9535 GPIO驱动例子1、DTS设备树2、驱动代码二、实际效果1、查看内核GPIO情况2、示波器抓取INT中断波形前言前一篇已讲PCA9535的驱动配置,此篇讲解怎么在内核中使用PCA9535的GPIO口;通过一个GPIO输入输出的例子来讲解;一、PCA9535 GPIO驱动例子1、DTS设备树 PCA9535 GPIO使用方式与RK...

2022-03-27 17:40:26 3247

原创 [RK3568 Android11]开发之PCA9535 GPIO扩展芯片调试

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、PCA9535芯片1、芯片引脚定义2、I2C地址二、PCA9535驱动1、PCA9535驱动说明2、内核配置打开PCA9535驱动3、DTS设备树配置4、PCA9535驱动文件5、PCA9535 GPIO实际使用前言 RK3568芯片上的硬件资源是非常紧张,比如GPIO口不够使用时,这时就需要考虑使用GPIO扩展芯片来扩展GPIO口;GPIO扩展芯片有很多种,...

2022-03-27 16:42:49 8433 4

原创 [RK3568 Android11] 教程之硬件中断(实验一)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、中断实验代码1、实验说明2、dts设备树配置3、中断驱动例子二、实验效果三、中断上半部分和下半部分前言上一篇已讲了些中断的知识点,这篇主要是讲下在实际应用中是怎么使用中断的;一、中断实验代码1、实验说明此次实验主要以一个GPIO作为中断引脚,操作该GPIO引脚,可以正常进入中断处理函数和中断下半部分;2、dts设备树配置...

2022-03-20 21:30:33 4040

原创 [RK3568 Android11] 教程之硬件中断(IRQ)

一、什么是中断 所谓中断,是指CPU在执行程序的过程中,出现了某突发事件需立即处理;CPU必须暂停当前的程序,转去处理突发事件,待处理完毕后CPU又返回原程序被中断的位置继续执行。中断系统是一个处理器重要的组成部分,中断系统极大的提高了 CPU 的执行效率;二、中断有什么作用1、...

2022-03-20 15:11:59 1969

原创 [RK3568 Android11] 教程之添加JNI系统服务—APP调用led系统服务API篇(六)

前言Android SDK源码添加JNI系统服务,以供给第三方应用调用;以系统JNI调用控制一个LED灯亮灭为例子; 第三方APP调用LED API来控制LED亮灭; 整个调用路径为:APP应用-->frameworks层(JNI和SystemService)--> hardware层--> kernel层--> 硬件层; 此篇讲解的是:APP应用调用LED API系统服务接口; 前五篇已分别完成...

2022-03-18 11:53:13 2550 1

原创 [RK3568 Android11] 教程之添加JNI系统服务—Selinux权限篇(五)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、解决selinux权限问题前言Android SDK源码添加JNI系统服务,以供给第三方应用调用;以JNI调用控制一个LED灯亮灭为例子; 整个调用路径为:APP应用-->frameworks层(JNI和SystemService)--> hardware层--> kernel层--> 硬件层;此调用过程难免会遇到selinux权限问题;...

2022-03-17 22:33:23 1665

原创 [RK3568 Android11] 教程之添加JNI系统服务—SystemService篇(四)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、什么是System Service二、创建LED系统服务1、创建AIDL文件2、创建Manager接口类3、创建服务端service4、创建LED系统服务名称5、注册系统服务6、添加到系统服务中三、编译方法1、更新API2、编译Android3、系统中led服务已在列表内前言Android SDK源码添加JNI系统服务,以供给第三方应用调用;以J...

2022-03-17 21:43:10 1749 1

原创 [RK3568 Android11] 教程之添加JNI系统服务—JNI层篇(三)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、了解JNI1、JNI概念2、JNI数据类型3、方法描述符二、实现LED JNI接口1、添加LED JNI接口2、JNI方法注册3、LED JNI代码添加到编译环境中前言Android SDK源码添加JNI系统服务,以供给第三方应用调用;以JNI调用控制一个LED灯亮灭为例子;JNI层主要是调用HAL层提供的读写接口,并且向frameworks service层抛...

2022-03-17 18:32:09 1891

原创 [RK3568 Android11] 教程之添加JNI系统服务—Hardware层篇(二)

前言Android SDK源码添加JNI系统服务,以供给第三方应用调用;以JNI调用控制一个LED灯亮灭为例子;hardware层主要是调用底层接口进行读写,并且向frameworks层抛出读写操作接口; 调用路径为:APP应用-->frameworks层(JNI和service)--> hardware层--> kernel层--> 硬件层; 此篇讲解的是:hardware层-->kernel层; 上一篇...

2022-03-17 11:53:31 1744 4

原创 [RK3568 Android11] 教程之添加JNI系统服务—底层驱动篇(一)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、底层驱动代码1、LED驱动形式2、完整驱动代码3、验证字符驱动二、字符设备节点权限1、默认的权限2、修改默认权限前言 Android SDK源码添加JNI系统服务,以供给第三方应用调用;以JNI调用控制一个LED灯亮灭为例子; 调用路径为:APP应用-->frameworks层--> hardware层--> kernel层--&gt...

2022-03-16 21:03:38 2807 3

原创 [RK3568 Android11] 教程之内核处理并发和竞争机制(互斥锁实验)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、互斥锁实验代码1、DTS设备树代码2、字符驱动代码3、测试应用程序4、实验效果二、注意事项前言互斥锁实验:使用内核字符驱动和C应用程序调用来讲解;一、互斥锁实验代码1、DTS设备树代码lock_test { compatible = "lock-test"; status = "okay";};2、字符驱动代码字符驱动创建的...

2022-03-14 14:24:26 1623

原创 [RK3568 Android11] 教程之内核处理并发和竞争机制(互斥锁)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、了解互斥锁二、互斥锁API函数前言互斥锁(mutex)是内核较常使用的锁机制,主要用于实现内核中的互斥访问功能;一、了解互斥锁1、互斥锁定义 互斥锁(Mutex)是在原子操作API的基础上实现的信号量行为。互斥锁不能进行递归锁定或解锁,能用于进程上下文但是不能用于中断上下文,同一时间只能有一个任务持有互斥锁,而且只有这个任务可以对互斥锁进行解锁。当无法获取锁时,...

2022-03-14 11:44:14 1140

原创 [RK3568 Android11] 教程之内核处理并发和竞争机制(信号量实验)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、信号量实验一(互斥信号量)1、DTS设备树代码2、字符驱动代码3、测试应用程序4、实验一效果二、信号量实验二(信号量)1、DTS设备树代码2、字符驱动代码3、测试应用程序4、实验二效果三、注意事项前言信号量实验:使用内核字符驱动和C应用程序调用来讲解;一、信号量实验一(互斥信号量)1、DTS设备树代码lock_test { compa...

2022-03-13 23:56:31 1444

原创 [RK3568 Android11] 教程之内核处理并发和竞争机制(信号量)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、了解信号量二、信号量API函数前言信号量(semaphore)是用于保护临界区的一种常用方法。只有得到信号量的进程才能执行临界区代码,而没有得到信号量的进程会进入休眠等待;一、了解信号量1、信号量定义信号量又称为信号灯(semaphore),本质上是一种睡眠锁。信号量是可以指定多个进程进入临界区,但如果有一个任务试图获得一个不可用(已经被占用)的信号量时,信号...

2022-03-13 23:01:46 1210

原创 [RK3568 Android11] 开发之强制APP横屏或者竖屏显示

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、强制APP横屏显示二、强制APP竖屏显示三、通过定义一个系统属性方式来强制配置横竖四、横竖屏测试应用前言 对于Android系统定制设备来说,并不会像android手机那样功能强大,比如重力传感器、各种用户APP适配、多种使用场景和各种用户人群;在开发过程中,客户的应用可能是横屏也可能是竖屏的APP,系统默认显示的方向是可以跟随APP变化;有可能当前系统是横屏显示,但安装的应用是...

2022-03-04 23:05:14 3107 2

原创 [RK3568 Android11] 开发之可动态设置屏幕旋转(二)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、设置应用添加“屏幕旋转”选项菜单1、添加“屏幕旋转”显示标题2、添加选择菜单内容3、添加“屏幕旋转”选项到显示布局文件xml中4、编译android并烧录固件,看下实际效果二、添加“屏幕旋转”选项的功能代码1、完整功能代码2、添加到调用列表中3、应用声明重启权限4、编译android,烧录固件测试三、功能效果前言为了方便客户进行设置屏幕旋转,此篇在设...

2022-03-04 21:35:32 3378 13

原创 [RK3568 Android11] 开发之可动态设置屏幕旋转(一)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、了解vendor storage分区二、vendor storage分区驱动读写函数三、编写底层读写驱动四、开机读取旋转参数并设置系统显示方向五、RKDevInfoWriteTool工具设置屏幕旋转参数(此方式适合量产时使用)六、Android设置APP里添加屏幕旋转功能七、注意事项前言Android系统在没有重力传感器的情况下,屏幕显示方向基本上都是固定的;对于有...

2022-03-03 23:46:08 5083 33

原创 [RK3568 Android11] 开发之内置默认中文输入法(谷歌输入法)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、下载拼音输入法软件二、内置谷歌输入法APP三、默认系统输入法四、实际效果前言Android11系统默认的输入法只支持英文,不支持中文;如需中文输入法,系统需要内置个中文输入法的APP;此篇讲解的是如何内置谷歌拼音输入法,其他输入法也同理(只供个人学习使用),注意:内置输入法软件版权问题;一、下载拼音输入法软件下载拼音输入法APK:市面上有多钟输入法软件,...

2022-03-01 23:12:02 2608

原创 [RK3568 Android11] 教程之内核处理并发和竞争机制(读写自旋锁)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、读写自旋锁1、读写自旋锁定义2、读写自旋锁特点3、读写自旋锁的缺点二、读写自旋锁API1、读写自旋锁头文件2、结构体3、读写自旋锁函数定义前言读写自旋锁(通常简称读写锁)是对自旋锁的改进,区分读者和写者;一、读写自旋锁1、读写自旋锁定义 读写自旋锁(通常简称读写锁)是对自旋锁的改进,区分读者和写者;同时允许多个读线程进入临界区,线程A和...

2022-03-01 22:37:36 381

原创 [RK3568 Android11] 教程之内核处理并发和竞争机制(自旋锁实验)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、自旋锁实验一1、DTS设备树代码2、字符驱动代码3、测试应用程序4、实验效果二、自旋锁实验二1、DTS设备树代码2、字符驱动代码3、测试应用代码4、实验效果三、如需考虑中断影响前言 自旋锁实验:使用内核字符驱动和C应用调用来讲解;自旋锁的主要作用是保护临界区,避免产生并发和竞争问题;一、自旋锁实验一1、DTS设备树代码l...

2022-02-28 23:38:18 410

原创 [RK3568 Android11] 教程之内核处理并发和竞争机制(自旋锁)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、了解自旋锁1、自旋锁定义2、自旋锁特点二、内核自旋锁API前言 Linux内核锁之自旋锁;自旋锁只能被一个可执行线程持有;如果线程A已获得自旋锁,线程B试图去获得一个已经被线程A持有的自旋锁,那么线程B就会一直在原地忙等待线程A释放出自旋锁;线程A释放出自旋锁后,线程B重新获得自旋锁,以至于能继续完成后面的代码; 由于自旋锁具有忙等待的特性,使用上也有一定的限制—...

2022-02-28 23:07:57 332

原创 [RK3568 Android11] 教程之内核错误码

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、内核错误码前言错误码处理在软件开发中非常重要,而不仅仅是在内核开发中。内核提供了多种错误码,几乎涵盖了可能会遇到的所有错误,有时需要把它们打印出来帮助进行调试。一、内核错误码错误码定义文件路径:kernel/include/uapi/asm-generic/errno-base.h 相关错误码:#define EPERM 1 /* Op...

2022-02-27 22:41:08 785

原创 [RK3568 Android11] 教程之内核处理并发和竞争机制(原子操作实验)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、未加原子操作实验代码二、加原子操作实验代码前言原子操作实验:使用内核字符驱动和C应用程序来讲解;一、未加原子操作实验代码1、DTS设备树代码lock_test { compatible = "lock-test"; status = "okay";};2、字符驱动代码 字符驱动创建的读写节点为:”/dev/atomic”#include &l...

2022-02-26 23:10:07 660

原创 [RK3568 Android11] 教程之内核ramoops机制

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、pstore文件系统二、ramoops机制三、实际应用前言在设备异常重启时,往往没法抓取到重启之前的日志信息;现内核提供了pstore文件系统的机制,用于保存上一次开机的日志信息;ramoops就是其中一种,重启或者异常重启后,会把相关日志保存到内存中,这极大的方便我们去抓取异常重启的日志信息,注意ramoops机制是会把日志保存在RAM内存中,掉电后数据会丢失; 什么...

2022-02-25 22:20:41 1073

原创 [RK3568 Android11] 教程之内核处理并发和竞争机制(原子操作一)

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、什么是原子操作二、原子操作函数定义(Int类型)前言前一篇文章中我们学习了 Linux或者Android系统下的并发与竞争,这篇开始讲解内核处理并发和竞争的机制:原子操作;一、什么是原子操作原子(atom),是指化学反应中不可再分的基本微粒,原子在化学反应中是不可再分割的;1、在代码中原子操作是指不能再进一步分割的操作;换句话说就是这部分的代码CPU需要一次性完成...

2022-02-17 23:30:05 1389

原创 [RK3568 Android11] 教程之并发和竞争

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、并发与竞争二、并发产生的原因三、处理并发和竞争问题出发点四、并发和竞争的处理方法前言Linux或者Android是属于多任务操作系统,多任务(多进程和多线程)必然会带来并发和竞争的问题;一、并发与竞争1、什么是并发 并发就是多个程序同一时间访问了同一个共享资源(内存数据);2、什么是竞争多个任务(程序)同时操作同一段内存,这些任务(程序...

2022-02-16 21:13:38 1047

原创 [RK3568 Android11] 教程之vmalloc动态申请内存

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、vmalloc函数头文件二、vmalloc函数定义三、代码演示四、注意事项前言在内核代码中,如果变量参数需要使用到大量的内存空间,可以使用内存动态申请函数来获取独立的数据存储空间,例如:kmalloc()、kzalloc()和vmalloc()等;此篇讲解vmalloc函数;vmalloc() 函数则会在虚拟内存空间给出一块连续的内存区,但这片连续的虚拟内存在物理...

2022-02-15 23:03:22 754

原创 [RK3568 Android11] 教程之kzalloc动态申请内存

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、kzalloc头文件二、kzalloc函数定义三、代码演示四、注意事项前言在内核代码中,如果变量参数需要使用到大量的内存空间,可以使用内存动态申请函数来获取独立的数据存储空间,例如:kmalloc()、kzalloc()和vmalloc()等内存申请函数;此篇讲解kzalloc函数;kzalloc函数功能描述:kzalloc( )函数与kmalloc( )函数功能...

2022-02-15 22:42:26 710 2

原创 [RK3568 Android11] 教程之kmalloc动态申请内存

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、kmalloc头文件二、kmalloc函数定义三、代码演示四、注意事项前言 在内核代码中,如果变量参数需要使用到大量的内存空间,可以使用内存动态申请函数来获取独立的数据存储空间,例如:kmalloc()、kzalloc()和vmalloc()等;此篇讲解kmalloc函数;kmalloc函数功能描述:kmalloc()函数动态申请的内存位于物理内存映射区域,分配在物理...

2022-02-15 22:24:20 689

原创 [RK3568 Android11] 教程之数据段(BSS段、DATA段)、代码段(TEXT)、堆栈段(内存管理一)

前言内存作为智能设备非常重要器件,而且内存知识和运用是个非常高深而且难理解的,这里只是简单分析下内存管理一小部分知识:各内存区段的介绍,主要有:数据段(BSS段、DATA段)、代码段(TEXT,RODATA)、堆栈段;一、栈(stack)1、什么是栈引用网上的栈定义:栈又称堆栈,是用户存放程序临时创建的局部变量,也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变量)。除此以外,在函数被调用时,其参数也...

2022-02-15 21:52:48 555

原创 [RK3568 Android11] 教程之内核printk便捷调试方法

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、关于printk二、printk便捷调试方法前言开发过程中都会使用到调试串口,为了方便调试,需要添加一些调试信息;为了快速打开和屏蔽调试信息,从而不影响调试串口的正常打印,需要制定一个宏开关来控制;一、关于printk 平时开发时,都习惯使用printk函数来打印出调试信息,在调试完后还需一条条的进行屏蔽或者删除,等下次重新调试又要添加printk信息来调试,这样反复...

2022-02-13 16:34:45 646

原创 [RK3568 Android11] 教程之内核printk函数日志等级

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录一、printk日志等级说明二、修改系统默认的printk日志等级三、printk日志等级使用方法一、printk日志等级说明1、printk日志等级 驱动文件路径:kernel/include/linux/kern_levels.h 内核定义了printk打印日志一共有8个等级,0~7,优先级由高到低(递减顺序)#define KERN_EMERG KERN_SOH "0"...

2022-02-13 16:15:57 998

原创 [RK3568 Android11] 教程之内核printk函数的用法

总目录链接:[RK3568 Android11] 本专栏说明和总目录目录前言一、printk函数的用法前言 printk()是内核模块中用于记录和输出调试信息的函数,printk()是属于内核空间而不是用户空间,printk()的用法和printf()基本相似,区别在于printk()可自定义输出打印级别。 printk()函数是内核最常用的一种调试手段:用于跟踪代码、打印出变量的值、打印错误提示信息等等;一、printk函数的用法 p...

2022-02-09 23:12:20 1231

原创 [RK3568 Android11] 教程之kernel源码分析利器dump_stack

目录前言一、dump_stack使用二、dump_stack原理前言 相信从事 Linux 内核或者驱动相关开发的人员对于dump_stack()函数并不陌生,时常使用该函数来跟踪kernel源码和debug分析问题,快速的理清函数之间的调用关系;一、dump_stack使用1、当需要分析函数之间调用关系时,只需要把dump_stack()放到该函数里,当运行到该函数时,系统会在debug串口打印出函数之间的调用栈关系;2、使用方法 只需在需要...

2022-02-07 16:17:39 1423

原创 [RK3568 Android11] 教程之解决shell格式错误和^M问题

目录前言一、编辑一个测试脚本1、win系统下编辑2、ubuntu系统下编辑二、解决shell格式错误和^M问题1、方法12、方法23、方法3前言 一般编辑脚本我们都习惯在电脑Windows系统下编辑,在Windows系统下往往编辑出来的shell脚本放在linux下执行会产生错误,导致执行失败;一、编辑一个测试脚本 分别在Windows和ubuntu系统下编辑该脚本来演示:1、win系统下编辑在win系统下编...

2022-02-04 15:32:39 1349

原创 [RK3568 Android11] 教程之使用RKDevInfoWriteTool工具烧录SN和MAC地址等

目录前言一、RKDevInfoWriteTool工具二、SN序列号填写和烧录三、LAN MAC地址填写和烧录四、注意的地方前言一般机器都会有唯一的SN序列号和MAC地址,如果设备没有EEPROM的存储设备,只单纯的把SN和MAC地址保存在系统用户分区,在用户恢复出厂设置后这份数据会被格式化掉;RK提供了一种方式,使用USB OTG进行烧录SN和MAC地址等等信息,该方式在恢复出厂设置后,数据不会丢失,但如果使用升级工具擦除后再升级,这份数据也一并会被擦除掉;一...

2022-01-18 00:06:47 18678 1

原创 [RK3568 Android11] 开发之APP应用切换USB OTG模式

目录前言一、底层接口授予写权限二、demo应用实现代码三、实际效果前言对于有些客户,想在应用中直接操作切换USB OTG模式,可以按下面的APP demo例子方式实现;一、底层接口授予写权限调用接口:/sys/devices/platform/fe8a0000.usb2-phy/otg_mode 系统默认权限是0644,此时应用只有读的权限,没有写的权限,会造成设置模式失败: 需要修改为0666,修改文件:dev...

2022-01-16 23:55:25 2125

dts设备树学习文档.rar

在此手册中,你可以快速了解到设备树的语法结构,是非常好的学习设备树的手册

2021-05-19

xxx_alcohol_sensor.c rk3288 ADC酒精传感器驱动

rk3288 ADC酒精传感器驱动,编译程序快速开发,通俗易懂。

2019-09-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除