RK3399
文章平均质量分 67
嵌入式知识大讲堂
这个作者很懒,什么都没留下…
展开
-
使用gpio_direction_output()无法设置GPIO原因分析
3、通过逻辑分析仪抓到的波形分析可以看到,我们的driver是有一段时间把这个GPIO拉高的动作的,但是不久之后这个IO后就有一段很长的拉低拉高的波形,这个波形很像数据传输的波形,最后IO口被拉低,然后我们有理由怀疑这个IO口是和控制器冲突了,通过查看这个IO口可以知道GPIO3_D7在RK3399芯片中是I2S0控制器DATA0输出引脚。echo 1 > /sys/class/gpio/gpio127/value #设置GPIO3_D7输出高电平。linux 应用层操作GPIO。...原创 2022-08-17 17:41:30 · 4900 阅读 · 1 评论 -
repo仓库使用
使用 Repo 需遵循的格式如下:repo 可选元素显示在方括号 [ ] 中。例如,许多命令会将项目列表用作参数。您可以为项目指定项目列表,作为名称列表或本地源代码目录的路径列表:repo sync [ ]repo sync [</PATH/TO/PROJECT0> … </PATH/TO/PROJECTN>]help安装 Repo 后,您可以通过运行以下命令找到最新文档(开头是包含所有命令的摘要):repo help您可以通过在 Repo 树中运行以下命令来获取原创 2021-11-19 09:26:08 · 1607 阅读 · 0 评论 -
linux SPI PGA2311 Driver
#include <linux/init.h> #include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/slab.h>#include <linux/delay.h>#include <linux/err.h>#include <lin原创 2021-11-05 15:47:11 · 278 阅读 · 0 评论 -
linux:/sys/xxx 读写节点使用方法
/sys/xxx读写节点在 /sys 中生成节点,用于应用层从驱动中获取数据,或者将数据写到驱动层中,比如点亮LED灯或者获取GPIO的值的高低电平。#include <linux/init.h> #include <linux/module.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/slab.h>原创 2021-11-03 11:45:50 · 2212 阅读 · 0 评论 -
RK3399 GMAC驱动失败,打印如下log,DMA engine initialization failed 原因
RK3399 GMAC驱动失败,打印如下log,DMA engine initialization failed原因这种情况只有在“clock_in_out = “input”;”情况下才出现。(1) 需要确认 GMAC 工作主时钟 MAC1_CLK 是否有从 PHY 供给主控:使用 100M PHY 时,其频率是 50M。使用 100M PHY 时,其频率是 125MRockchip 以太网 开发指南 4 以太网常见问题排查。(2) 如果有 clock,需要确认 clock 的幅度是否达标,一原创 2021-10-28 15:39:55 · 2944 阅读 · 0 评论 -
RK3308怎么设置软件音量,重启后软件音量有效?
问题描述开发音量功能的时候,遇到了一个难题,通过音量 设置 :79 INT 2 Master Playback Volume 99, 99 (range 0->99)为某一个值。有如下两个问题:1,重启的时候,进入文件系统, Master Playback Volume这个节点不会出现,要播放歌曲, Master Playback Volume这个节点才出现?2,用户通过音量设置Master Playback Volume为某一个值,但是重启的时候,软件音量默认不是这个值,请问怎么解决这个问题?原创 2021-10-18 09:56:34 · 738 阅读 · 0 评论 -
RK3399教程:wifi驱动调试技巧
疑问点?Android hal层需要配置那些东西?rk3399的wifi模组自适应支持多款wifi是什么技术原理?wpa_supplicant需要配置那些东西?回答上面的问题我们需要一步一步往下看。什么是VID和PID?答:VID为厂商,PID为产品ID。硬件接口单wifi硬件接口在嵌入式中wifi功能在SOC中有两种方式,一种是集成在SOC当中,芯片代表有MTK和高通的芯片,因为这两家芯片厂商的通讯技术都比较厉害所以一般都会在他们自己的SOC中添加WIFI的模块,从而降低成本和降低板子的原创 2021-09-14 10:08:18 · 13114 阅读 · 2 评论 -
RK3399教程:android hal 加载wifi
android hal 加载wifi ko模块流程Android启动的时候会去加载wifi模块,这时候这部分代码在frameworks\opt\net\wifi\libwifi_hal\,这部分的代码主要的功能为,大概内容为通过读取uevnt的获取到系统下的wifi模块的vip和pid,从而从代码的列表中查找到是那个一个wifi模块,然后又从列表中获取wifi模块的驱动代码在那里,从而调用insmod xxxx.ko加载wifi模块。frameworks\opt\net\wifi\libwifi_hal原创 2021-09-14 10:01:03 · 2217 阅读 · 0 评论 -
RK3399教程:linux clk使用
linux clk使用在linux的clk的设备模型中,clk分为生产者和消费者,生产者是soc的厂商编写的clk驱动,注册到clk管理框架中。消费者就是具体的设备驱动,设备驱动根据标准的函数获取到clk的句柄,然后设置和配置产生clk。为何这么设计?其实也很简单,芯片产商最清楚clk的锁相环怎么设置,所以这部分驱动由芯片产商去编写,我们设备驱动只要使用标准的api就可以使用时钟了,所以这个框架将很底层的芯片clk的管理抽象出来做了一套通用的架构,好处就是将耦合性降到最低比如芯片厂商有MTK,ROCKCH原创 2021-07-07 14:27:57 · 1302 阅读 · 1 评论 -
在RK3399项目中编译i2c-tools
项目场景:在RK3399项目中编译i2c-tools首先先下载代码:git clone git://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git修改makefile:添加自己的交叉编译工具链路径,比如我们是COMPILE_PREFIX = /rk3399_git/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aar原创 2021-04-12 14:31:05 · 694 阅读 · 0 评论 -
linux i2c总线分析使用设备树
linux i2c总线分析使用设备树i2c总线简要说明I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。分别为时钟线SCL和数据线SDA,这里不重点分析i2c的物理特性,我们主要是分析linux下的i2c的软件框架,在MCU用过i2c的读者应该知道,i2c在MCU里面属于一个外设控制器,用户设置好时钟,从机地址,和数据搬运到读写寄存器外设控制器就可以把数据在i2c总线上发送出去。linux下i2c的总线模型linux是一个支原创 2020-11-25 16:01:50 · 2155 阅读 · 4 评论 -
linux spi总线分析使用设备树
linux使用设备树的SPI总线分析linux下SPI的总线模型linux下spi总线和platform总线类似,platform分为platform device和platform driver,spi总线分为spi_device和spi_driver。在一个Soc芯片上有多个spi的控制器spi0、spi1等等,例如我们把spi0控制器称为一个spi_master,每个spi控制器下面可以挂载多个设备,比如有spi norflash device,spi lcd device等,每个设备的片选不原创 2020-11-23 20:18:24 · 3108 阅读 · 0 评论 -
android使用服务访问硬件
1、源码目录和源码功能简要说明1、首先在下面的目录下放入IIrRemoteService.aidl这个aidl接口然后编译,主要是为了生成IIrRemoteService.java接口frameworks\base\core\java\android\os\IIrRemoteService.aidl2.使用命令编译mmm frameworks/base,然后会生成IIrRemoteService.java./out/soong/.intermediates/frameworks/base/fram原创 2021-06-30 15:15:19 · 413 阅读 · 0 评论 -
rk3399开机进入loader模式
问题描述rk3399的主板烧录完软件后,重启后又进入了loader模式,查看log可以查看到如下的打印记录。[ 11.254728] init: init first stage started![ 11.260572] init: Using Android DT directory /proc/device-tree/firmware/android/[ 11.274173] init: [libfs_mgr]fs_mgr_read_fstab_default(): failed to find原创 2021-06-25 09:43:26 · 2495 阅读 · 1 评论 -
RK3399教程: camera
RK3399 camera名词解释在现代移动设备中,常用一种接口用来连接SOC和LCD和Camera,这种接口就是MIPI。其中SOC和LCD连接叫 DSI(DisplayCommandSet),SOC和Camera连接叫CSI(DisplaySerialInterface)。硬件连接一般情况下,Camera和SOC有两个接口进行连接,分为为MIPI接口和I2C接口,其中MIPI接口用来传输图像的数据,数据传输路径为从Sensor传输到SOC。另一个接口为I2C接口,主要是用来SOC对Senso原创 2021-05-27 13:48:10 · 4348 阅读 · 6 评论 -
RK3399教程:PWM之IR调试
首先先查看rockchip的IR调试文档。先去查看rockchip的调试文档,对RK的ir的先有一些初步的认识rk驱动只支持NECNEC,最基础的红外电平,逻辑1为0.56ms高电平+1.69ms的低电平。逻辑0为0.56ms高电平+0.56的低电平。因为rk的驱动只支持NEC,所以按照NEC的编码协议(如上图)可以看到,NEC的IR编码是首先是一段9ms的高电平,然后就是一段4.9ms的低电平。然后就开始发送地址(address),然后是地址(address)的反码,然后发送控制码(Comma原创 2021-05-18 11:56:03 · 3191 阅读 · 0 评论