20240629在飞凌开发板OK3588-C上使用Rockchip原厂的SDK跑通I2C扩展GPIO芯片TCA6424ARGJRR

news2025/1/20 14:55:24

20240629在飞凌开发板OK3588-C上使用Rockchip原厂的SDK跑通I2C扩展GPIO芯片TCA6424ARGJRR
2024/6/29 18:02


1、替换DTS了:
Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\boot\dts\rockchip
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel/arch/arm64/boot/dts/rockchip$ ll
total 1244
drwx------  2 viewpro viewpro   4096 6月  29 18:12 ./
drwxrwxr-x 34 viewpro viewpro   4096 6月  29 17:15 ../
-rw-rw-r--  1 viewpro viewpro   3917 12月 21  2023 FET3588-C.dtsi
-rw-rw-r--  1 viewpro viewpro   7758 12月 21  2023 Makefile
-rw-rw-r--  1 viewpro viewpro  14850 12月 21  2023 OK3588-C-Camera.dtsi
-rw-rw-r--  1 viewpro viewpro  32947 12月 21  2023 OK3588-C-common.dtsi
-rw-rw-r--  1 viewpro viewpro   2363 12月 21  2023 OK3588-C-Linux.dts
-rw-rw-r--  1 viewpro viewpro 246717 5月  24 17:56 OK3588-C-Linux.dump.dts
-rw-rw-r--  1 viewpro viewpro  27858 12月 21  2023 rk3588.dtsi
-rw-rw-r--  1 viewpro viewpro 280681 6月  29 18:12 rk3588-evb7-v11-linux.dtb
-rw-rw-r--  1 viewpro viewpro   3061 6月  29 18:12 .rk3588-evb7-v11-linux.dtb.cmd
-rw-rw-r--  1 viewpro viewpro    120 6月  29 18:12 .rk3588-evb7-v11-linux.dtb.d.dtc.tmp
-rw-rw-r--  1 viewpro viewpro   1693 6月  29 18:12 .rk3588-evb7-v11-linux.dtb.d.pre.tmp
-rw-rw-r--  1 viewpro viewpro 326518 6月  29 18:12 .rk3588-evb7-v11-linux.dtb.dts.tmp
-rwx------  1 viewpro viewpro   2363 6月  21 11:40 rk3588-evb7-v11-linux.dts*
-rw-rw-r--  1 viewpro viewpro   9573 12月 21  2023 rk3588-rk806-single.dtsi
-rw-rw-r--  1 viewpro viewpro 185703 12月 21  2023 rk3588s.dtsi
-rw-rw-r--  1 viewpro viewpro  67505 12月 21  2023 rk3588s-pinctrl.dtsi
-rw-rw-r--  1 viewpro viewpro   9865 12月 21  2023 rk3588-vccio3-pinctrl.dtsi
-rw-rw-r--  1 viewpro viewpro   7448 12月 21  2023 rockchip-pinconf.dtsi

viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel/arch/arm64/boot/dts/rockchip$ 


确认驱动没有加载好:没有找到gpiochip485!
root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# 
Display all 910 possibilities? (y or n)^C
root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# cd /sys/class/gpio/
root@rk3588-buildroot:/sys/class/gpio# 
root@rk3588-buildroot:/sys/class/gpio# ls -l
total 0
--w------- 1 root root 4096 Jan  1 00:00 export
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip0 -> ../../devices/platform/pinctrl/fd8a0000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip128 -> ../../devices/platform/pinctrl/fec50000.gpio/gpio/gpiochip128
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip32 -> ../../devices/platform/pinctrl/fec20000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip509 -> ../../devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk806-pinctrl.0.auto/gpio/gpiochip509
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip64 -> ../../devices/platform/pinctrl/fec30000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip96 -> ../../devices/platform/pinctrl/fec40000.gpio/gpio/gpiochip96
--w------- 1 root root 4096 Jan  1 00:00 unexport
root@rk3588-buildroot:/sys/class/gpio# 
root@rk3588-buildroot:/sys/class/gpio# 
root@rk3588-buildroot:/sys/class/gpio# echo 508 > export 
[  297.960946] export_store: invalid GPIO 508
sh: echo: write error: Invalid argument
root@rk3588-buildroot:/sys/class/gpio# 

root@rk3588-buildroot:/sys/class/gpio# 


Z:\repo_RK3588_Buildroot20240508\kernel\include\dt-bindings\pinctrl\rockchip.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * Header providing constants for Rockchip pinctrl bindings.
 *
 * Copyright (c) 2013 MundoReader S.L.
 * Author: Heiko Stuebner <heiko@sntech.de>
 */

#ifndef __DT_BINDINGS_ROCKCHIP_PINCTRL_H__
#define __DT_BINDINGS_ROCKCHIP_PINCTRL_H__

#define RK_PA0        0
#define RK_PA1        1
#define RK_PA2        2
#define RK_PA3        3
#define RK_PA4        4
#define RK_PA5        5
#define RK_PA6        6
#define RK_PA7        7
#define RK_PB0        8
#define RK_PB1        9
#define RK_PB2        10
#define RK_PB3        11
#define RK_PB4        12
#define RK_PB5        13
#define RK_PB6        14
#define RK_PB7        15
#define RK_PC0        16
#define RK_PC1        17
#define RK_PC2        18
#define RK_PC3        19
#define RK_PC4        20
#define RK_PC5        21
#define RK_PC6        22
#define RK_PC7        23
#define RK_PD0        24
#define RK_PD1        25
#define RK_PD2        26
#define RK_PD3        27
#define RK_PD4        28
#define RK_PD5        29
#define RK_PD6        30
#define RK_PD7        31

#define RK_FUNC_GPIO    0

#define    EXTIO_GPIO_P00    0
#define    EXTIO_GPIO_P01    1
#define    EXTIO_GPIO_P02    2
#define    EXTIO_GPIO_P03    3
#define    EXTIO_GPIO_P04    4
#define    EXTIO_GPIO_P05    5
#define    EXTIO_GPIO_P06    6
#define    EXTIO_GPIO_P07    7
#define    EXTIO_GPIO_P10    8
#define    EXTIO_GPIO_P11    9
#define    EXTIO_GPIO_P12    10
#define    EXTIO_GPIO_P13    11
#define    EXTIO_GPIO_P14    12
#define    EXTIO_GPIO_P15    13
#define    EXTIO_GPIO_P16    14
#define    EXTIO_GPIO_P17    15
#define    EXTIO_GPIO_P20    16
#define    EXTIO_GPIO_P21    17
#define    EXTIO_GPIO_P22    18
#define    EXTIO_GPIO_P23    19
#define    EXTIO_GPIO_P24    20
#define    EXTIO_GPIO_P25    21
#define    EXTIO_GPIO_P26    22
#define    EXTIO_GPIO_P27    23

#endif


2、更新驱动的部分:
Z:\repo_RK3588_Buildroot20240508\kernel\.config
#
# I2C GPIO expanders
#
# CONFIG_GPIO_ADP5588 is not set
# CONFIG_GPIO_ADNP is not set
# CONFIG_GPIO_AW9110 is not set
# CONFIG_GPIO_GW_PLD is not set
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_NCA9539 is not set
CONFIG_GPIO_PCA953X=y
# CONFIG_GPIO_PCA953X_IRQ is not set

# CONFIG_GPIO_PCA9570 is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_TPIC2810 is not set
# end of I2C GPIO expanders


CONFIG_GPIO_ROCKCHIP=y
# CONFIG_GPIO_SAMA5D2_PIOBU is not set
# CONFIG_GPIO_SIFIVE is not set
CONFIG_GPIO_SYSCON=y
# CONFIG_GPIO_XGENE is not set
# CONFIG_GPIO_XILINX is not set
# CONFIG_GPIO_AMD_FCH is not set
# end of Memory mapped GPIO drivers

#
# I2C GPIO expanders
#
# CONFIG_GPIO_ADP5588 is not set
# CONFIG_GPIO_ADNP is not set
# CONFIG_GPIO_AW9110 is not set
# CONFIG_GPIO_GW_PLD is not set
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_NCA9539 is not set
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCA9570 is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_TPIC2810 is not set
# end of I2C GPIO expanders

#
# MFD GPIO expanders
#
# CONFIG_GPIO_TPS6586X is not set
# end of MFD GPIO expanders


【相关的驱动部分:】
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel/arch/arm64/configs$ grep CONFIG_GPIO_SYSCON . -R
./rockchip_defconfig:CONFIG_GPIO_SYSCON=y
./rockchip_linux_defconfig:CONFIG_GPIO_SYSCON=y
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel/arch/arm64/configs$ 

Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\configs\rk3588_linux.config

# CONFIG_BCMDHD_SDIO=y is not set
CONFIG_BCMDHD_PCIE=y
CONFIG_MALI_CSF_SUPPORT=y
CONFIG_GPIO_PCA953X=y


Z:\repo_RK3588_Buildroot20240508\kernel\drivers\gpio\gpio-pca953x.c

【这里不要动了,强制修改的!】
Z:\repo_RK3588_Buildroot20240508\kernel\drivers\gpio\Makefile

obj-$(CONFIG_GPIO_MXC)            += gpio-mxc.o
obj-$(CONFIG_GPIO_MXS)            += gpio-mxs.o
obj-$(CONFIG_GPIO_NCA9539)        += gpio-nca9539.o
obj-$(CONFIG_GPIO_OCTEON)        += gpio-octeon.o
obj-$(CONFIG_GPIO_OMAP)            += gpio-omap.o
obj-$(CONFIG_GPIO_PALMAS)        += gpio-palmas.o
#obj-$(CONFIG_GPIO_PCA953X)        += gpio-pca953x.o
obj-y        += gpio-pca953x.o

obj-$(CONFIG_GPIO_PCA9570)        += gpio-pca9570.o
obj-$(CONFIG_GPIO_PCF857X)        += gpio-pcf857x.o
obj-$(CONFIG_GPIO_PCH)            += gpio-pch.o


确认的LOG:
高:3.299V
低:0.001V

root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# 
root@rk3588-buildroot:/# cd /sys/class/gpio/
root@rk3588-buildroot:/sys/class/gpio# ls -l
total 0
--w------- 1 root root 4096 Jan  1 00:00 export
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip0 -> ../../devices/platform/pinctrl/fd8a0000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip128 -> ../../devices/platform/pinctrl/fec50000.gpio/gpio/gpiochip128
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip32 -> ../../devices/platform/pinctrl/fec20000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip485 -> ../../devices/platform/feaa0000.i2c/i2c-2/2-0023/gpio/gpiochip485
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip509 -> ../../devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk806-pinctrl.0.auto/gpio/gpiochip509
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip64 -> ../../devices/platform/pinctrl/fec30000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip96 -> ../../devices/platform/pinctrl/fec40000.gpio/gpio/gpiochip96
--w------- 1 root root 4096 Jan  1 00:00 unexport
root@rk3588-buildroot:/sys/class/gpio# 
root@rk3588-buildroot:/sys/class/gpio# echo 508 > export 
root@rk3588-buildroot:/sys/class/gpio# 
root@rk3588-buildroot:/sys/class/gpio# ls -l
total 0
--w------- 1 root root 4096 Jan  1 00:01 export
lrwxrwxrwx 1 root root    0 Jan  1 00:01 gpio508 -> ../../devices/platform/feaa0000.i2c/i2c-2/2-0023/gpiochip6/gpio/gpio508
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip0 -> ../../devices/platform/pinctrl/fd8a0000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip128 -> ../../devices/platform/pinctrl/fec50000.gpio/gpio/gpiochip128
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip32 -> ../../devices/platform/pinctrl/fec20000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip485 -> ../../devices/platform/feaa0000.i2c/i2c-2/2-0023/gpio/gpiochip485
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip509 -> ../../devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk806-pinctrl.0.auto/gpio/gpiochip509

lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip64 -> ../../devices/platform/pinctrl/fec30000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip96 -> ../../devices/platform/pinctrl/fec40000.gpio/gpio/gpiochip96
--w------- 1 root root 4096 Jan  1 00:00 unexport
root@rk3588-buildroot:/sys/class/gpio# 
root@rk3588-buildroot:/sys/class/gpio# cd gpio508
root@rk3588-buildroot:/sys/class/gpio/gpio508# 
root@rk3588-buildroot:/sys/class/gpio/gpio508# ls -l
total 0
-rw-r--r-- 1 root root 4096 Jan  1 00:01 active_low
lrwxrwxrwx 1 root root    0 Jan  1 00:01 device -> ../../../gpiochip6
-rw-r--r-- 1 root root 4096 Jan  1 00:01 direction
drwxr-xr-x 2 root root    0 Jan  1 00:01 power
lrwxrwxrwx 1 root root    0 Jan  1 00:01 subsystem -> ../../../../../../../../class/gpio
-rw-r--r-- 1 root root 4096 Jan  1 00:01 uevent
-rw-r--r-- 1 root root 4096 Jan  1 00:01 value
root@rk3588-buildroot:/sys/class/gpio/gpio508# 
root@rk3588-buildroot:/sys/class/gpio/gpio508# cat direction 
in
root@rk3588-buildroot:/sys/class/gpio/gpio508# cat value 
0
root@rk3588-buildroot:/sys/class/gpio/gpio508# 
root@rk3588-buildroot:/sys/class/gpio/gpio508# echo out > direction 
root@rk3588-buildroot:/sys/class/gpio/gpio508# echo 1 > value 
root@rk3588-buildroot:/sys/class/gpio/gpio508# 
root@rk3588-buildroot:/sys/class/gpio/gpio508# cat direction 
out
root@rk3588-buildroot:/sys/class/gpio/gpio508# cat value 
1
root@rk3588-buildroot:/sys/class/gpio/gpio508# ^C
root@rk3588-buildroot:/sys/class/gpio/gpio508# 


root@rk3588-buildroot:/sys/class/gpio/gpio508# 
root@rk3588-buildroot:/sys/class/gpio/gpio508# cd ..
root@rk3588-buildroot:/sys/class/gpio# 
root@rk3588-buildroot:/sys/class/gpio# 
root@rk3588-buildroot:/sys/class/gpio# ls -l  
total 0
--w------- 1 root root 4096 Jan  1 00:01 export
lrwxrwxrwx 1 root root    0 Jan  1 00:01 gpio508 -> ../../devices/platform/feaa0000.i2c/i2c-2/2-0023/gpiochip6/gpio/gpio508
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip0 -> ../../devices/platform/pinctrl/fd8a0000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip128 -> ../../devices/platform/pinctrl/fec50000.gpio/gpio/gpiochip128
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip32 -> ../../devices/platform/pinctrl/fec20000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip485 -> ../../devices/platform/feaa0000.i2c/i2c-2/2-0023/gpio/gpiochip485
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip509 -> ../../devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk806-pinctrl.0.auto/gpio/gpiochip509
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip64 -> ../../devices/platform/pinctrl/fec30000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip96 -> ../../devices/platform/pinctrl/fec40000.gpio/gpio/gpiochip96
--w------- 1 root root 4096 Jan  1 00:00 unexport
root@rk3588-buildroot:/sys/class/gpio# 
root@rk3588-buildroot:/sys/class/gpio# 
root@rk3588-buildroot:/sys/class/gpio# echo 507 > export 
root@rk3588-buildroot:/sys/class/gpio# ls -l
total 0
--w------- 1 root root 4096 Jan  1 00:09 export
lrwxrwxrwx 1 root root    0 Jan  1 00:09 gpio507 -> ../../devices/platform/feaa0000.i2c/i2c-2/2-0023/gpiochip6/gpio/gpio507
lrwxrwxrwx 1 root root    0 Jan  1 00:01 gpio508 -> ../../devices/platform/feaa0000.i2c/i2c-2/2-0023/gpiochip6/gpio/gpio508
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip0 -> ../../devices/platform/pinctrl/fd8a0000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip128 -> ../../devices/platform/pinctrl/fec50000.gpio/gpio/gpiochip128
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip32 -> ../../devices/platform/pinctrl/fec20000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip485 -> ../../devices/platform/feaa0000.i2c/i2c-2/2-0023/gpio/gpiochip485
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip509 -> ../../devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk806-pinctrl.0.auto/gpio/gpiochip509
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip64 -> ../../devices/platform/pinctrl/fec30000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 root root    0 Jan  1 00:00 gpiochip96 -> ../../devices/platform/pinctrl/fec40000.gpio/gpio/gpiochip96
--w------- 1 root root 4096 Jan  1 00:00 unexport
root@rk3588-buildroot:/sys/class/gpio# cd gpio507/
root@rk3588-buildroot:/sys/class/gpio/gpio507# ll
sh: ll: command not found
root@rk3588-buildroot:/sys/class/gpio/gpio507# ls -l
total 0
-rw-r--r-- 1 root root 4096 Jan  1 00:09 active_low
lrwxrwxrwx 1 root root    0 Jan  1 00:09 device -> ../../../gpiochip6
-rw-r--r-- 1 root root 4096 Jan  1 00:09 direction
drwxr-xr-x 2 root root    0 Jan  1 00:09 power
lrwxrwxrwx 1 root root    0 Jan  1 00:09 subsystem -> ../../../../../../../../class/gpio
-rw-r--r-- 1 root root 4096 Jan  1 00:09 uevent
-rw-r--r-- 1 root root 4096 Jan  1 00:09 value
root@rk3588-buildroot:/sys/class/gpio/gpio507# 
root@rk3588-buildroot:/sys/class/gpio/gpio507# 
root@rk3588-buildroot:/sys/class/gpio/gpio507# echo out > direction 
root@rk3588-buildroot:/sys/class/gpio/gpio507# echo 1 > value 
root@rk3588-buildroot:/sys/class/gpio/gpio507# cat direction 
out
root@rk3588-buildroot:/sys/class/gpio/gpio507# cat value 
1
root@rk3588-buildroot:/sys/class/gpio/gpio507# 
root@rk3588-buildroot:/sys/class/gpio/gpio507# echo 0 > value 
root@rk3588-buildroot:/sys/class/gpio/gpio507# 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1880733.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jedis、Lettuce、RedisTemplate连接中间件

jedis就像jdbc一样&#xff0c;用于两个端直接的连接。 1.创建Spring项目 这里不过多赘述... 2.导入连接工具jedis 在pom文件中导入jedis的依赖。 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version&…

【雷达原理】雷达测角原理及实现方法

目录 一、雷达测角原理1.1 测角研究历史和现状1.2 测角方法总结1.3 3DFFT测角1.3.1 基本原理1.2.2 测角性能 二、MATLAB仿真案例参考文献 一、雷达测角原理 1.1 测角研究历史和现状 &#xff08;1&#xff09;早期采用窄波束对准目标&#xff0c;目标的角度对应于天线的角度读…

Unity3D 转换微信小游戏指引 01

Unity3D 转换微信小游戏指引系列&#xff08;第一期&#xff09; 搭建环境 安装 WebGL 模块 首先&#xff0c;Unity 要安装WebGL Build Support模块。 在 Hub 找到安装的引擎&#xff0c;点击设置按钮&#xff0c;点击Add modules添加模块。 勾选WebGL Build Support&#…

股指期权交割日期是什么时候?在每个月几号?

今天带你了解股指期权交割日期是什么时候&#xff1f;在每个月几号&#xff1f;期权交割日是指合约到期之日&#xff0c;即投资者需要履行买卖合约的义务。 股指期权的交割日期通常是期权合约到期日的第三个星期五。如果这一天是公共假日&#xff0c;则交割日可能会提前到前一…

检索增强生成RAG系列3--RAG优化之文档处理

在上一章中罗列了对RAG准确度的几个重要关键点&#xff0c;主要包括2方面&#xff0c;这一章就针对其中一方面&#xff0c;来做详细的讲解以及其解决方案。 目录 1 文档解析1.1 文档解析工具1.2 实战经验1.3 代码演示 2 文档分块2.1 分块算法2.2 实战经验2.3 代码演示 3 文档e…

Workerman在线客服系统源码,附搭建教程

源码介绍&#xff1a; Workerman在线客服系统源码。 workerman是一个高性能的PHP socket 服务器框架&#xff0c;workerman基于PHP多进程以及libevent事件轮询库&#xff0c;PHP开发者只要实现一两个接口&#xff0c;便可以开发出自己的网络应用&#xff0c;例如Rpc服务、聊天…

基于Java的会员制医疗预约服务管理信息系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;Java技术ssm框架&#xff0c;结合JSPM工作流引擎 工具&#xff1a;IDEA/Eclipse、Navicat、Maven …

每日一题——Python实现PAT乙级1090 危险品装箱(举一反三+思想解读+逐步优化)4千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 题目链接&#xff1a;https://pintia.cn/problem-sets/994805260223102976/exam/problems/typ…

2024 vue3入门教程:windows系统下部署node环境

一、打开下载的node官网 Node.js — 下载 Node.js 二、根据个人喜好的下载方法&#xff0c;下载到自己的电脑盘符下 三、我用的是方法3下载的压缩包&#xff0c;解压到E盘nodejs目录下&#xff08;看个人&#xff09; 四、配置电脑的环境变量&#xff0c;新建环境变量的时候…

树莓派4B学习笔记17:RBG_LED全色域灯的驱动模块编写

今日继续学习树莓派4B 4G&#xff1a;&#xff08;Raspberry Pi&#xff0c;简称RPi或RasPi&#xff09; 本人所用树莓派4B 装载的系统与版本如下: 版本可用命令 (lsb_release -a) 查询: ​ Python 版本3.7.3&#xff1a; ​ 今日学习&#xff1a;RBG_LED全色域灯的驱动模块编写…

初学者轻松搞定19个经典的Python程序以及代码演示

Python的经典程序展示了Python语言基本特性和功能的简单示例,这些程序在学习和理解Python编程语言的过程中起着至关重要的作用. 一些常见的经典Python程序及其在学习Python时的功能&#xff1a; 1.Hello, World! print("Hello, World!")解释:这是Python的基本输出…

(单机架设教程)凯旋|当年的QQ游戏

前言 今天给大家带来一款单机游戏的架设&#xff1a;凯旋 &#xff0c; 当年的QQ游戏 如今市面上的资源参差不齐&#xff0c;大部分的都不能运行&#xff0c;本人亲自测试&#xff0c;运行视频如下&#xff1a; 凯旋单机 搭建教程 此游戏架设需要安装虚拟机&#xff0c; 没有…

【面试系列】Python 高频面试题

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…

基于源码详解ThreadPoolExecutor实现原理

个人博客地址 基于源码详解ThreadPoolExecutor实现原理 | iwts’s blog 内容拆分 这里算是一个总集&#xff0c;内容太多&#xff0c;拆分成几个比较重要的小的模块&#xff1a; ThreadPoolExecutor基于ctl变量的声明周期管理 | iwts’s blog ThreadPoolExecutor 工作线程…

【PL理论深化】(13) 变量与环境:文法结构 | 真假表达式:isZero E | let 表达式叠放 | 定义的规则 | 条件语句的使用

&#x1f4ac; 写在前面&#xff1a;从现在开始&#xff0c;让我们正式设计和实现编程语言。首先&#xff0c;让我们扩展在之前定义的整数表达式语言&#xff0c;以便可以使用变量和条件表达式。 目录 0x00 文法结构 0x01 真假表达式&#xff1a;isZero E 0x02 let 表达式叠…

1-5题查询 - 高频 SQL 50 题基础版

目录 1. 相关知识点2. 例题2.1.可回收且低脂的产品2.2.寻找用户推荐人2.3.大的国家2.4. 文章浏览 I2.5. 无效的推文 1. 相关知识点 sql判断&#xff0c;不包含null&#xff0c;判断不出来distinct是通过查询的结果来去除重复记录ASC升序计算字符长度 CHAR_LENGTH() 或 LENGTH(…

LeetCode-Leetcode 1120:子树的最大平均值

LeetCode-Leetcode 1120&#xff1a;子树的最大平均值 题目描述&#xff1a;解题思路一&#xff1a;递归解题思路二&#xff1a;0解题思路三&#xff1a;0 题目描述&#xff1a; 给你一棵二叉树的根节点 root&#xff0c;找出这棵树的 每一棵 子树的 平均值 中的 最大 值。 子…

文章浮现之单细胞VDJ的柱状图

应各位老师的需求复现一篇文章的中的某个图 具体复现图5的整个思路图&#xff0c;这里没有原始数据&#xff0c;所以我使用虚拟生产的metadata进行画图 不废话直接上代码&#xff0c;先上python的代码的结果图 import matplotlib.pyplot as plt import numpy as np# 数据&#…

RocketMQ常用基本操作

文章中的rabbitmq使用的是rocketmq-all-5.1.3-bin-release版本&#xff0c;需要安装包的可自行下载 RockerMQ启动停止命令 启动命令 nohup sh bin/mqnamesrv & nohup sh bin/mqbroker -n localhost:9876 --enable-proxy & 查看日志 tail -f ~/logs/rocketmqlogs/…

sqlmap注入详解

免责声明:本文仅做分享... 目录 1.介绍 2.特点 3.下载 4.帮助文档 5.常见命令 指定目标 请求 HTTP cookie头 HTTP User-Agent头 HTTP协议的证书认证 HTTP(S)代理 HTTP请求延迟 设定超时时间 设定重试超时 设定随机改变的参数值 利用正则过滤目标网址 避免过多的…