自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 解决RK3229 调试Aiw9761 必联M35343 wifi模块USB识别不到

原来只开启了USB2.0 EHCI,这两个模块都要开启USB3.0 XHCI何USB1.0 OHCI才能识别到。

2025-01-11 10:37:53 207

原创 rv1126 buildroot 重新编译hostapd,hostapd修改出强制40M

其实每个工具包里都有这样的几个文件,而根据我们的需要是要修改然后重新编译,安装即可。所以删除.stamp_built和.stamp_target_installed就可以啦。因为当周围环境很大干扰时,hostapd会跑到20m带宽,需要把hostapd这个判断条件为if 0。按自己的要求修改文件,然后②删除这个目录下的。此文件表示源码已经下载过,没有此文件会重新下载。此文件表示源码已经编译。除了以上两个文件,还有4个类似的,这六个分别为。此文件表示已经解压过。此文件表示软件已经安装过。

2024-12-27 09:34:56 285

原创 rk3588_android 把apk做成系统应用

在目录rk3588_android\device\rockchip\common\security下,使用platform.pk8和platform.x509.pem对apk进行签名,即可做成系统应用。

2024-12-12 09:44:22 205

原创 QT5 Creator (Mingw编译器) 调用VS2019 (阿里云 oss C++库) 报错的解决方法

方法就是不要用VS2019编译,要用MINgw32编译。

2024-12-02 00:11:41 452

原创 RK3229 Android9自定义一个按键实现长按短按

【代码】RK3229 Android9自定义一个按键实现长按短按。

2024-11-04 17:15:08 400

原创 RK3229 MS8416 MS8406调试

由于音频芯片做从模式声音可能会失真,所以必须使得I2S1做从模式,音频芯片做主模式注意ms8416需要获取采样率时其25脚必须提供外部时钟,这个时钟用的是I2S的MCLK 12.28M;所以上面也修改了输出时钟是12.28M;

2024-09-24 17:54:00 510

原创 RK3229 ADNROID9 hdmi与耳机口同出声音

声卡0的连接是芯片的ADC音频输出脚直接接到DA芯片输出。

2024-09-13 17:47:23 310

原创 RK3229_Android9.0_Box 4G模块EC200A调试

"mobile,0,0,0,-1,true"

2024-09-11 21:42:50 1131

原创 RK3588 EC200A-CN【4G模块】调试

EC200A只有这两种拨号方式,LINUX系统自带都支持。最后可以ping'百度成功,就代表拨号成功。1、修改kernel。

2024-08-21 18:39:04 1022

原创 RK3588 RTL8125BG调试

RTL8125B是一款PCIE转RJ45的网卡控制器芯片,在底层调试时只需配置PCIE即可。

2024-08-16 16:16:47 960

原创 openssl aes cbc256加密解密

aes_decrypt_string解密有问题,后用lk_aes_decrypt解密解决问题。

2024-08-14 10:45:36 465

原创 rk3588 I2S调试

audio in和 audio out的i2s都是直连的,所以本质上配置i2s并无区别,使用的是模拟的iic,es7243初始化一次之后就不用了。

2024-08-09 16:45:49 881

原创 rk3588 low_delay_net_display注意事项

【代码】rk3588 low_delay_net_display注意事项。

2024-08-08 10:31:22 335

原创 rk3588强制修改分辨率4k@60fps

/这里edid改为赋值空,让它走else流程,else流程里的dw_hdmi_default_modes 中,只留下你需要的分辨率时序即可,其它屏蔽可达到强制目的。特殊分辨率的话按着添加最后然后把对应号码填下即可。里边让开头的edid_status 进入 < 0条件即可,走不识别edid流程。

2024-06-24 14:33:22 1491

原创 RK3588 开启HDCP

解决方法:手动敲modetest -w 432:"Content Protection":1,可以检测到hdcp2.2了。

2024-06-21 14:57:25 833

原创 RK3588 Android13配置耳机和hdmi同时出声音

1、关掉BOARD_SUPPORT_MULTIAUDIO宏。2、frameworks/av修改。

2024-06-17 19:44:10 1132 1

原创 RK3588 Android13去掉底部导航栏和修改壁纸图片

【代码】RK3588 Android13去掉底部导航栏和修改壁纸图片。

2024-06-17 12:51:29 598

原创 Ubuntu挂载一个新的硬盘

主机有两个盘,一个用来安装Ubuntu,一个盘用来存放代码。sudo blkid命令查看所有的存储介质的UUID。

2024-06-17 12:37:38 170

原创 RK3588 Android13添加开机logo或开机动画

【代码】RK3588 Android13添加开机logo或开机动画。

2024-06-04 10:02:30 461

原创 RK3588 Android13自定义一个按键实现长按短按

【代码】RK3588 Android13自定义一个按键实现长按短按。

2024-06-04 09:29:35 653

原创 RK3588使能UART串口设备,并生成/dev/ttySx设备节点,GPIO控制

1.1.2 在Y:\rk3588_android\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588s-pinctrl.dtsi查找RK_PA6、RK_PA5对应哪个节点,可知对应uart3m2_xfer,所以下面pinctrl的节点应该写uart3m2_xfer。1.1.1 在Y:\rk3588_android\kernel-5.10\arch\arm64\boot\dts\rockchip\rk3588s.dtsi找到串口3肯串口9的名称。

2024-04-28 18:23:06 2711 1

原创 文件IO的方式读取jpeg图片的分辨率

可以使用libjpeg库读取JPEG图像文件,并获取图像的分辨率(宽度和高度),简单demo示例如下:1.2 使用文件IO的方式1.2.1 JPEG文件格式JPEG图片格式组成部分:SOI(文件头)+APP0(图像识别信息)+[APPn(0xFFEn)]可选+ DQT(定义量化表)+SOF0(图像基本信息)+ DHT(定义Huffman表) + DRI(定义重新开始间隔)+ SOS(扫描行开始)+ EOI(文件尾)其中粗体部分是必须的,下面我就来解释一下这些信息吧。JPEG的文件分为若干个块

2024-03-27 10:03:59 717 1

原创 Linux驱动学习—IIC总线之FT5X06触摸驱动实验

流程图:设备树如下:触摸设备对应的设备树节点是:读取坐标的寄存器:#include <linux/init.h>#include <linux/module.h>#include <linux/i2c.h>#include <linux/gpio.h>#include <linux/of_gpio.h>#include <linux/interrupt.h>#include <linux/of_irq.h>#

2024-01-14 14:29:35 1529

原创 Linux驱动学习—I2C总线

I2C是很常见的一种总线协议,I2C是NXP公司设计的,I2C使用两条线在主控制器和从机之间进行数据通信。一条是SCL(串行时钟线),另外一条是SDA(串行数据线),因为I2C这两条数据线是开漏输出的,所以需要接上拉电阻,总线空闲的时候SCL和SDA处于高电平。I2C总线标准模式下速度可以达到100Kb/s,快速模式下可以达到400kb/s。

2024-01-14 00:27:04 2650

原创 Linux驱动学习—输入子系统

输入子系统是Linux专门做的一套框架来处理输入事件的,像鼠标,键盘,触摸屏这些都是输入设备,但是这邪恶输入设备的类型又都不是一样的,所以为了统一这些输入设备驱动标准应运而生的。统一了以后,在节点/dev/input下面则是我们输入设备的节点,如下图所示:这些节点对应的则是我们当前系统的输入设备,我们要怎么查看当前系统都有哪些输入设备呢?

2024-01-10 23:00:34 1402

原创 Linux驱动学习—内核定时器

比如,现在是10点5分,我要定时5分钟,那么定时就是10点5分+5分钟=10点10分。HZ的值我们是可以设置的,也就是一秒对应的时钟拍数我们是可以设置的,Linux内核会使用CONFIG_HZ来设置自己的系统时钟。宏HZ就是CONFIG_HZ,因此HZ=100,表示一秒的节拍数是100,在编译Linux内核的时候可以通过图形化界面设置系统节拍率,按照如下路径打开配置界面。通过上图我们可以发现可选的系统节拍率为100HZ,200HZ,250HZ,300HZ、500HZ和1000HZ.默认是100HZ。

2024-01-07 18:59:04 2056 1

原创 Linux驱动学习—中断

CPU在正常运行期间,由外部或者内部引起的时间,让CPU停下当前正在运行的程序,转而去执行触发他的中断所对应的程序,这就是中断。响应中断的过程:<1>中断请求<2>中断响应<3>保护现场<4>中断处理<5>恢复现场<6>中断返回如果不响应中断,就是中断屏蔽。

2024-01-07 00:04:40 1483 1

原创 Linux驱动学习—ioctl接口

unlocked_ioctl 实际上取代了用了很久的ioctl,主要的改进就是不再需要上大内核锁(BKL) (调用之前不再先调用lock_kernel()然后再unlock_kernel())。值得注意的是,内核中使用的合成宏和分解宏与应用层使用的是一样的。其实可以用户和内核空间共用的头文件,里面是ioctl命令的构成和头文件。和open read write函数同理,当在应用层代码中调用ioctl接口的时候,其实调用的内核file_operations的unlocked_ioctl结构体成员。

2024-01-01 16:24:31 1365 1

原创 Linux驱动学习—pinctl和gpio子系统

/设备的状态,可以有多种状态,default为状态0/*第0个状态所对应的引脚配置,也就是default状态对应的引脚在pin controller里面定义好的节点pinctrl_hog_1里面的管脚配置。*///设备的状态,可以有多种状态,default为状态0,wake up为状态1,/*第0个状态所对应的引脚配置,也就是default状态对应的引脚在pin controller里面定义好的节点pinctrl_hog_1里面的管脚配置。*/

2023-12-31 22:46:29 1738

原创 Linux驱动学习—设备树及设备树下的platform总线

设备树是一种描述硬件资源的数据结构。他通过bootloader将硬件资源传给内核,使得内核和硬件资源 描述相对独立。 cd /proc/device-tree/下就可看到 cd /sys/firmware/devicetree/base/下就可看到。

2023-12-30 15:40:30 2421 1

原创 Linux驱动学习—平台总线模型

平台总线模型也叫platform总线模型。是Linux内核虚拟出来的一条总线,不是真实的导线。平台总线模型就是把原来的驱动C文件给分成两个C文件,一个是device.c,一个是driver.c把稳定不变的放在driver.c里面,需要变得放在devic.c里面。可以发现设备名称name要一样才能进入probe函数,id_table没有初始化值的时候,device name才会与结构体driver成员name匹配。否则会优先与id_table成员name进行匹配,匹配成功才会加载probe函数。

2023-12-27 22:20:52 1345 1

原创 Linux驱动学习—杂项设备驱动注册

②杂项设备出来比字符设备代码简单。其他区别是杂项设备的主设备号是相同的,均为是10,次设备号是不同的。主设备号相同就可以节省内核的资源。①杂项设备驱动是属于字符设备的一种。设备号包含主设备号和次设备号,主设备号在Linux系统里面 是唯一的,次设备号不一定唯一。字符设备:IO的传输过程是以字符为单位的,没有缓冲。比如I2C,SPI都是字符设备。块设备:IO传输过程是以块为单位的。设备号是计算机识别设备的一种方式,主设备号相同的被视为同一类设备。主设备号比做成电话号码的区号。③主设备号和次设备号是什么?

2023-12-25 20:58:13 989 1

原创 Linux驱动学习—驱动模块传参数

驱动传参就是传参数给我们的驱动。

2023-12-25 20:45:32 503 1

原创 Linux驱动学习—字符设备驱动注册详解

参数一:要初始化的cdev参数二:文件操作集//实际就是把文件操作集写给opsmdev是udev的简化版本,是busybox中所带的程序,最适合用在嵌入式系统。udev是一种工具,它能够根据系统中的硬件设备的状态动态更新设备文件,包括设备文件的创建,删除等。设备文件通常放在/dev目录下。使用udev后,在/dev目录下就只包含系统中真正存在的设备。udev一般用在PC上的linux中,相对mdev来说要复杂些。

2023-12-25 20:39:07 1875 1

原创 uboot升级流程详解

因为OTA升级的时候要保存用户操作的设置项,当然这样操作的缺陷就是当我们的默认设置项增加几项设置项或者删除几项设置项的时候,只有当用户恢复出厂设置的时候才能加载进config分区,所以后期完善应该对config分区的数据与现在存在的数据进行校验。Linux进程间通信-杂项设备驱动buf共享的方式-优快云博客。

2023-12-18 21:10:13 1747 1

原创 Linux进程间通信-消息队列实例(解决mstar平台连续发管道消息数据会丢失的问题)

消息队列与命名管道类似,但少了打开和关闭管道方面的复杂性。使用消息队列并未解决我们在使用命名管道时遇到的一些问题,如管道满时的阻塞问题。消息队列提供了一种在两个不相关进程间传递数据的简单有效的方法。与命名管道相比:消息队列的优势在于,它独立于发送和接收进程而存在,这消除了在同步命名管道的打开和关闭时可能产生的一些困难。消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。而且,每个数据块被认为含有一个类型,接收进程可以独立地接收含有不同类型值的数据块。

2023-11-27 19:42:33 954

原创 Linux进程间通信-杂项设备驱动buf共享的方式

本文中的实例是将设置项写入驱动中,支持多个进程共享。在开机初始化进入应用层=的时候需要把保存在/config/settings.txt文件中的设置项全部读出来,然后在写入到杂项设备驱动中,杂项设备中有一个全局数据buf用来保存这些设置项,这是初始化必须要做的。除此之外,当是首次使用的时候config/settings.txt文件是没有数据的,要先把应用层保存的设置项数组数据写入到文件中,才可以使用。

2023-11-26 18:27:57 7356 1

原创 Linux进程间通信实例:文件共享的方式

Linux进程间通信代码实例:共享内存

2023-11-26 11:35:27 874 1

原创 通过文件IO的方式获取视频时长

注意:不同的平台需要修改MY_MVHD结构。

2023-07-10 21:22:54 206 1

原创 hostapd-2.7编译、libnl-3.2.25编译及openssl编译注意事项

hostapd的功能就是作为AP的认证服务器,其将无线网卡切换为master模式,模拟AP的功能,负责控制管理stations的接入和认证;通过Hostapd可以将无线网卡切换为AP/Master模式,通过修改配置文件,可以建立一个不加密的WEP,WPA或WPA2的无线网络。并且通过修改配置文件可以设置无线网卡的各种参数,包括频率,信号,beacon包时间间隔,是否发送beacon包,如果响应探针请求等等。

2023-07-05 21:32:00 897

空空如也

空空如也

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

TA关注的人

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