当前位置: 首页 > news >正文

【SA8295P 源码分析】00 - 系列文章链接汇总 - 持续更新中

【SA8295P 源码分析】00 - 系列文章链接汇总 - 持续更新中

    • 一、分区、下载、GPIO等杂项相关
    • 二、开机启动流程代码分析
    • 二、OpenWFD 显示屏模块
    • 三、Touch Panel 触摸屏模块
    • 四、QUPv3 及 QNX Host透传配置
    • 五、Camera 摄像头模块(当前正在更新中...)
    • 六、网络相关模块(NFS、VLAN、telnet)
    • 七、网络相关模块(Ethernet MAC)
    • 八、Security 安全策略(QNX secpol、Android SELinux)
    • 九、Thermal 温控策略
    • 十、QNX 侧常用的调试命令

  • 2023年8月20日 Note Update:
    有些粉丝看我有些内容写的比较深入,以为我是高通负责相应模块的内部人员,
    澄清一下,我只是一个在做基于 SA8295P 芯片项目的 BSP 开发工程师,专栏参考代码是原生SA8295P基线代码。
    .
    本专栏主要目的是:利用工作之外的时间去深入代码 分析底层的代码实现原理,来提高自身的技术能力。
    实际工作中,有些人可能只是一个螺丝钉的角色,只对当前做的事精通,但其他模块领域一窍不通;
    有些人,可能只是会调会配,但为什么要这样配这样调,可能就说不太清楚了。
    这也是我想去解决的问题,兼顾知识广度和深度,会配,会调,也知道为什么要这样配这样调。
    简单来说就是,我希望自已目前做的事,通过我自身的努力, 做到懂原理懂流程懂代码,而不是简单的代码搬运工。
    要想做到这个程度,肯定很难,但我一定会努力,慢慢学习,总结,以更新博客。
    .
    本专栏文章内容主要是个人工作之外的自我学习总结分享,不敢及不会泄露公司相关的所有信息,不敢也不会泄露高通的代码文档!!!
    .
    本专栏介绍如下:
    【高通原生代码版本】:SA8295p-HQX-4-2-4-0_HLOS_dev_qnx.tar.gz,SA8295_AU_LINUX_ANDROID_LA.AU.1.4.8.R1.10.00.00.1083.005
    【文章类型】:晚上下班后在家、周末在家分析代码自学所产出的自学总结文档;协助粉丝兄弟咨询的问题调试分析总结
    【涉及领域】:除 Audio 外的其他所有 BSP 模块(Audio 我也有相关的基础,但目前工作不会涉及,所以优先级放后)
    【广度预期】:按由广到精的思路,先把 SA8295 各个模块做到满足工作需求,各模块做到会配、会调、会分析。
    【深度预期】:精力有限,不可能所有模块都精通,目前先侧重三方面:系统启动流程 > 屏/TP > 摄像头,其他的模块会调会配会分析就够了。
    【专栏更新时间】:持续学习总结,持续更新(毕竟由广到精,想要对SA2895平台有一定的了解,得持续学习,不是一时半会就能达成的)
    .
    老规矩,大家有啥遇到的问题,或者有哪个方面想了解的,也可以私信给我,如果我懂的且有时间的话,可以协助一起分析下。
    私信时请说明:问题详细描述,预期现象,当前现象,当前分析进展 及 相关log


汇总链接:
《【SA8295P 源码分析】系列文章链接汇总》
《【SA8295P 源码分析】00 - 系列文章链接汇总》



本系列正文链接如下:

一、分区、下载、GPIO等杂项相关

  1. 《【SA8295P 源码分析】01 - SA8295P 芯片介绍》
  2. 《【SA8295P 源码分析】02 - SA8295P 整包镜像分析》
  3. 《【SA8295P 源码分析】41 - SA8295所有镜像位置、拷贝脚本、生成QFIL包》
  4. 《【SA8295P 源码分析】43 - SA8295 基线代码编译相关的问题 答疑》
  5. 《【SA8295P 源码分析】45 - 部分镜像解包方法详解:boot_la、boot、vendor_boot、dtb、NON-HLOS、super、persist、metadata、userdata》
  6. 《【SA8295P 源码分析】48 - QNX 侧GPIO 配置方法、中断配置、调试工具 详解》
  7. 《【SA8295P 源码分析】52 - 答疑之 QNX 创建镜像、Android定制修改selinux权限,user版本采用enforcing,userdebug版本permissive》
  8. 《【SA8295P 源码分析】60 - QNX Host 如何新增 android_test 分区给 Android GVM 挂载使用》
  9. 《【SA8295P 源码分析】62 - Android GVM Kernel 内核 make bootimage 过程分析》
  10. 《【SA8295P 源码分析】63 - defconfig 解析 之 修改 Kernel 宏控配置应该修改哪些 config 文件才会生效?》
  11. 《【SA8295P 源码分析】49 - Android编译报错:check_vintf.cpp For kernel requirements at matrix level 6》

二、开机启动流程代码分析

  1. 【试读】《【SA8295P 源码分析】03 - SA8295P QNX Host 上电开机流程分析》
  2. 《【SA8295P 源码分析】04 - SA8295P QNX Host 上电开机过程中的各组件功能介绍》
  3. 《【SA8295P 源码分析】05 - SA8295P QNX Host 上电开机过程 进一步梳理(结合代码)》
  4. 【试读】《【SA8295P 源码分析】06 - SA8295P XBL Loader 阶段 sbl1_main_ctl() 函数代码分析》
  5. 《【SA8295P 源码分析】07 - XBL Loader 解析 sbl1_config_table 规则分析》
  6. 《【SA8295P 源码分析】08 - XBL Loader 加载 SMSS、XBL Config、SHRM、CDT 、DDR、APDP、RamDump、OEM_MISC、AOP、QSEE过程分析》
  7. 《【SA8295P 源码分析】09 - XBL Loader 加载 QSEE、SEC、CPUCPFW、QHEE、APPSBL过程分析》
  8. 《【SA8295P 源码分析】53 - mifs.build.tmpl 脚本详解:启动QNX procnto-smp-instr微内核、启动QNX串口终端shell、加载解析并执行ifs2_la.img》
  9. 《【SA8295P 源码分析】54 - /ifs/bin/startupmgr 程序工作流程分析 及 script.c 介绍》
  10. 《【SA8295P 源码分析】55 - ifs2_la.img 镜像加载解析过程分析》
  • 待更新:
    (1)《【SA8295P 源码分析】VMM_Android 启动过程分析》

二、OpenWFD 显示屏模块

  1. 《【SA8295P 源码分析】70 - QAM8295P 原理图参考设计 之 DP、eDP 接口硬件原理分析》
  2. 《【SA8295P 源码分析】71 - QAM8295P 原理图参考设计 之 MIPI DSI 接口硬件原理分析》
  3. 《【SA8295P 源码分析】72 - WFD DP/eDP、MIPI DSI 显示屏软件代码该如何配置? 有什么差异?》
  4. 《【SA8295P 源码分析】73 - OpenWFD 显示驱动库 libDP2_COMMON.so 源码分析》

display bringup 配置及调试过程分析:

  1. 《【SA8295P 源码分析】10 - HQX Display(OpenWFD)qcdisplaycfg_ADP_STAR_LA.xml 配置文件解析》
  2. 《【SA8295P 源码分析】11 - HQX Display(OpenWFD)仪表屏、中控屏 Bringup 代码移植步骤》
  3. 《【SA8295P 源码分析】40 - OpenWFD 显示屏配置文件 graphics_ADP_STAR.conf 、qcdisplaycfg_ADP_STAR_LA.xml 的解析流程》
  4. 《【SA8295P 源码分析】56 - OpenWFD 显示驱动库 libDSI_MAX96789_0.so 调用及解析流程分析》
  5. 《【SA8295P 源码分析】57 - libDSI_MAX96789_0.so驱动库 之 QDI_Panel_Init 显示屏初始化函数 代码分析》
  6. 《【SA8295P 源码分析】58 - libDSI_MAX96789_0.so驱动库 之 QDI_Panel_SetPower上下电流程及QDI_Panel_GetInfo 获取显示屏信息等代码分析》
  7. 《【SA8295P 源码分析】59 - QNX如何 Dump 显示图像 之 surfacedump 功能 源码分析》
  8. 《【SA8295P 源码分析】61 - QNX如何 Dump 显示图像 之 echo surfacedump=n [m] > /dev/displaylog 命令代码调用流程分析》
  9. 《【SA8295P 源码分析】64 - QNX 与 Android GVM 显示 Dump 图片方法汇总》
  10. 《【SA8295P 源码分析】12 - HQX Display(OpenWFD)调试命令介绍》
  • 待更新:
    (1)《【SA8295P 源码分析】Android GVM 如何将图片给到QNX Host Disply 驱动显示》

openwfd 服务启动过程分析:

  1. 《【SA8295P 源码分析】37 - OpenWFD Server 启动流程 之 openwfd_server.c main()函数源码分析》
  2. 《【SA8295P 源码分析】38 - OpenWFD Server 启动流程 之 WFD_ClientMgr 初始化 之 WFD Device 设备初始化源码分析》
  3. 《【SA8295P 源码分析】39 - OpenWFD Server 启动流程 之 WFD_ClientMgr 初始化 之 WFD Port 端口初始化源码分析》
  4. 《【SA8295P 源码分析】42 - OpenWFD Server 启动流程 之 WFD_ClientMgr 初始化 之 Pipelines、ClientContexts 初始化源码分析》
  5. 《【SA8295P 源码分析】46 - OpenWFD Server 启动流程 之 /dev/openwfd_server_0 管道事务源码分析》
  6. 《【SA8295P 源码分析】50 - OpenWFD Server 启动流程 之 wfd_server_tpp 线程池源码分析》

三、Touch Panel 触摸屏模块

TP 触摸点坐标数据,上报到 Android 整个流程分三步:

  1. QNXTouchScreen 驱动获取坐标点上报给到 Android 内核层
    《【SA8295P 源码分析】15 - QNX侧 TouchScreen Panel (TP)触摸屏 Bringup 流程 及 源码分析》
    《【SA8295P 源码分析】16 - QNX侧 TouchScreen Panel (TP)线程函数 tp_recv_thread() 源码分析》

  2. Android 内核解析出数据,存在 /dev/input/event0 对应的 buffer[] 环形队列中,待用户空间读取节点时,通过 copy_to_user 给到用户空间
    《【SA8295P 源码分析】66 - Android 侧内核层 TouchScreen Panel(TP)触摸屏驱动生成 /dev/input/event0 源码分析》

  3. Android 用户层输入子系统管理并获取到 /dev/input/event0 的数据,此时坐标点数据到达 Android 上层用户空间
    《【SA8295P 源码分析】67 - Android 侧 模拟输入设备上报 input 事件 之 input 模拟点击坐标 实现源码分析 adb shell input tap 100 600》
    《【SA8295P 源码分析】68 - Android 侧用户层 输入子系统获取 /dev/input/event0 节点数据 代码流程分析》


四、QUPv3 及 QNX Host透传配置

  1. 《【SA8295P 源码分析】13 - Android GVM 虚拟机 QUPv3 UART / SPI / I2C功能配置及透传配置》
  2. 《【SA8295P 源码分析】14 - Passthrough配置文件 /mnt/vm/images/linux-la.config 内容分析》
  3. 《【SA8295P 源码分析】17 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析》
  4. 《【SA8295P 源码分析】33 - Android GVM USB 透传配置》

五、Camera 摄像头模块(当前正在更新中…)

  1. 《【SA8295P 源码分析】18 - Camera Bringup 流程 及 源码分析》
  2. 《【SA8295P 源码分析】77 - QNX Camera 之 ais_server 服务 源码分析》
  3. 《【SA8295P 源码分析】78 - AIS Camera PM Event 电源事件处理函数 CameraPlatformPowerInit() 源码分析》
  4. 《【SA8295P 源码分析】79 - AIS Camera Event 事件处理函数 AisEngine::EventHandler() 源码分析》
  5. AIS Camera libais_max96756.so 驱动加载初始化函数:CameraDeviceManager::CreateInstance()
    《【SA8295P 源码分析】80 - AIS Camera libais_max96756.so 驱动库加载过程分析》
  6. AIS Camera Input 输入设备检测函数:AisInputConfigurer::GetInstance()->DetectAll()AIS_CONFIGURER_INPUT 模块源码分析
  7. AIS Server 服务事件循环处理函数:ais_server_create_client_ctxt()
  8. AIS Camera CCI_I2C 初始化函数: CameraSensorI2C_Init()CCI_I2C 通信原理分析,和普通 I2C有什么区别?
  9. AIS_CONFIGURER_CSI 模块源码分析
  10. AIS_CONFIGURER_IFE 模块源码分析

六、网络相关模块(NFS、VLAN、telnet)

  1. 《【SA8295P 源码分析】19 - QNX Host NFS 文件系统配置》
  2. 《【SA8295P 源码分析】20 - GVM Android Kernel NFS Support 配置》
  3. 《【SA8295P 源码分析】51 - QNX NFS Server + Android NFS Client 完整配置》
  4. 《【SA8295P 源码分析】21 - Android GVM 虚拟网络 vlan 配置》
  5. 《【SA8295P 源码分析】44 - 如何替换 NON-HLOS.bin 中的 Wifi Firmware 固件》
  6. 《【SA8295P 源码分析】47 - AF66T - QCA6696 - QCA6390 - WIFI 功能导通》
  7. 《【SA8295P 源码分析】69 - Android 侧添加支持 busybox telnetd 服务》

七、网络相关模块(Ethernet MAC)

  1. 《【SA8295P 源码分析】22 - QNX Ethernet MAC 驱动 之 emac_entry / emac_attach() 函数源码分析》
  2. 《【SA8295P 源码分析】23 - QNX Ethernet MAC 驱动 之 emac1_config.conf 配置文件解析》
  3. 《【SA8295P 源码分析】24 - QNX Ethernet MAC 驱动 之 emac_pm_sys_pow_mon_thread_hdlr() 系统电源管理线程源码分析》
  4. 《【SA8295P 源码分析】25 - QNX Ethernet MAC 驱动 之 emac_isr_thread_handler() 中断处理函数 源码分析》
  5. 《【SA8295P 源码分析】26 - QNX Ethernet MAC 驱动 之 emac_rx_thread_handler() 数据接收线程 源码分析》
  6. 《【SA8295P 源码分析】27 - QNX Ethernet MAC 驱动 之 emac_tx_thread_handler() 数据发送线程 源码分析》
  7. 《【SA8295P 源码分析】28 - QNX Ethernet MAC 驱动 之 emac_mdio_link_monitor_thrd() MDIO监控线程 源码分析》
  8. 《【SA8295P 源码分析】29 - QNX Ethernet MAC 驱动 之 emac_resmgr_init() 资源管理器线程 resource manager 线程 源码分析》
  9. 《【SA8295P 源码分析】30 - QNX Ethernet MAC 驱动 之 emac_powerup() 上电流程 源码分析》
  10. 《【SA8295P 源码分析】31 - QNX Ethernet MAC 驱动 之 ifnet 接口emac_init、emac_start、emac_ioctl 源码分析》
  11. 《【SA8295P 源码分析】32 - QNX Ethernet Phy_Switch 驱动初始化 源码分析》
  12. 《【SA8295P 源码分析】35 - QNX侧 Marvell 88Q5152 Phy_Switch 导通实录(硬核)》
  13. 《【SA8295P 源码分析】65 - emac0-phy 与 emac1-switch兼容 方案实现》
  14. 《【SA8295P 源码分析】36 - MDIO Clause 22、Clause 45 条款介绍》

八、Security 安全策略(QNX secpol、Android SELinux)

  1. 《【SA8295P 源码分析】74 - QNX secpol 安全策略文件配置详解 及 secpol.bin 编译过程分析》
  2. 《【SA8295P 源码分析】75 - QNX GVM Secpol 安全策略文件 gvm_la.txt 内容分析解读》

九、Thermal 温控策略

《【SA8295P 源码分析】76 - Thermal 功耗 之 /dev/thermalmgr 相关调试命令汇总》




十、QNX 侧常用的调试命令

  1. 通过 qnx 进入 fastboot 下载模式: reset -f 或 开机过程中串口下一直按 Q
  2. 通过 qnx 串口进入 Android GVMadb shell 环境: telnet 192.168.133.1
  3. 通过 Android GVMadb shell 环境 进入 QNX shell 环境:busybox telnet 192.168.133.2
  4. QNX侧获取Android 开机logcat /dev/shmem/la_gvm.txt
  5. QNX 杀死进程:slay xxxxx ,如 slay vmm_service
  6. QNX 重新可写挂载 mntmount -uw /mnt
  7. QNX 侧启动 log 路径:/dev/pdbg/qcore/bootlog
  8. QNXC 代码中运行 动态启动 uart(void)system("devc-quipv3 -E -F -b9600 15");
  9. 查看GPIO状态:msmgpiotool dump
# msmgpiotool 
commands:dumpinfo         <gpio number> [tlmm]			示例:获取 tlmm 的GPIO0 信息  msmgpiotool  info  0  info         <gpio number> lpass			示例:获取 lpass 的GPIO0 信息  msmgpiotool  info  0  lpassinfo         <gpio number> ssc			示例:获取 ssc 的GPIO0 信息  msmgpiotool  info  0  sscwrite        <gpio number> <value>		示例:写 GPIO0 输出1    msmgpiotool  write  0  1read         <gpio>						示例:读 GPIO0 电平    msmgpiotool  read  0 		===> GPIO 0 is Highrawread      <gpio>						示例:读 GPIO0 电平    msmgpiotool  read  0 		===> 1set-dir      <gpio number> <value>		配置 输出输出模式: [0] Input, [1] Outputset-drive    <gpio number> <value>		配置 GPIO 驱动能力, drive strength = [n] * 2mA for n[0..15]set-pull     <gpio number> <value>		配置拉高拉低悬空: [0] No pull [1] Pull Down [2] Keeper [3] Pull Upset-func     <gpio number> <value>		配置引脚函数,GPIO模式无此功能enable-irq   <gpio number> <value>		使能 IRQ 中断:[0] Enable [1] Disableclear-irq    <gpio>						清除 IRQ 状态set-pol      <gpio number> <value>		配置 中断极性 [0] Inverted [1] Normalset-trigger  <gpio number> <value>		配置边沿触发还是电平触发: [0] Level [1] Edge# msmgpiotool dump
OFFSET   GPIO  IN    OUT   DIR  DRIVE  PULL       ALT FUNCTION  TARGET  IRQ  POL  TRIG   STS
---------------------------------------------------------------------------------------------
f100000  0     High  Low   Out  8 mA   No pull    1             NONE    0    1    Level  0
f101000  1     High  Low   Out  8 mA   No pull    1             NONE    0    1    Level  0...... 省略 ......
f1e2000  226   High  Low   In   2 mA   Pull down  0             NONE    0    1    Level  0
f1e3000  227   High  Low   In   2 mA   Pull down  0             NONE    0    1    Level  0----------------------------------------LPASS TLMM GPIO Dump---------------------------------------OFFSET      LPASS GPIO  IN    OUT   DIR  DRIVE  PULL       ALT FUNCTION  HYSTERISIS CTL  MISC CFG
---------------------------------------------------------------------------------------------------0x33c0000   0           Low   Low   Out  8 mA   Pull down  0x2           Low             0x20x33c1000   1           Low   Low   Out  8 mA   Pull down  0x2           Low             0x2...... 省略 ......0x33d1000   17          Low   Low   In   2 mA   No pull    0x2           Low             0x00x33d2000   18          Low   Low   Out  8 mA   Pull down  0x2           Low             0x0----------------------------------------SSC TLMM GPIO Dump---------------------------------------OFFSET      SSC GPIO  IN    OUT   DIR  DRIVE  PULL       ALT FUNCTION  HYSTERISIS CTL  MISC CFG
-------------------------------------------------------------------------------------------------0x2b40000   0         Low   Low   In   2 mA   No pull    0x0           Low             0x00x2b41000   1         Low   Low   In   2 mA   No pull    0x0           Low             0x0...... 省略 ......0x2b52000   18        Low   Low   In   2 mA   No pull    0x0           Low             0x00x2b53000   19        Low   Low   In   2 mA   No pull    0x0           Low             0x0



相关文章:

【SA8295P 源码分析】00 - 系列文章链接汇总 - 持续更新中

【SA8295P 源码分析】00 - 系列文章链接汇总 - 持续更新中 一、分区、下载、GPIO等杂项相关二、开机启动流程代码分析二、OpenWFD 显示屏模块三、Touch Panel 触摸屏模块四、QUPv3 及 QNX Host透传配置五、Camera 摄像头模块&#xff08;当前正在更新中...&#xff09;六、网络…...

TCP拥塞控制详解 | 6. 主动队列管理

网络传输问题本质上是对网络资源的共享和复用问题&#xff0c;因此拥塞控制是网络工程领域的核心问题之一&#xff0c;并且随着互联网和数据中心流量的爆炸式增长&#xff0c;相关算法和机制出现了很多创新&#xff0c;本系列是免费电子书《TCP Congestion Control: A Systems …...

前端学习清单

顺序不分先后。 技术名称技术描述技术链接HTML5HTML5是下一代的HTML标准&#xff0c;是一种用于结构化内容的标记语言。MDN|HTMLCSS3CSS3是CSS技术的升级版本&#xff0c;它的最大好处就是可以让网页设计师更加方便的为网页添加各种各样的样式&#xff0c;而不用再局限于文字、…...

go atomic原子操作详细解读

文章目录 概要1、基本知识1.1 原子操作是什么1.2 CPU怎么实现原子操作的&#xff1f; 2、atomic包2.1、 Add函数2.2、CompareAndSwap函数2.3、Swap函数2.4、Load函数2.5、Store函数 3、atomic.Value值 概要 atomic包是golang通过对底层系统支持的原子操作进行封装&#xff0c;…...

Vue用JSEncrypt对长文本json加密以及发现解密失败

哈喽 大家好啊&#xff0c;最近发现进行加密后 超长文本后端解密失败&#xff0c;经过看其他博主修改 JSEncrypt原生代码如下&#xff1a; // 分段加密&#xff0c;支持中文JSEncrypt.prototype.encryptUnicodeLong function (string) {var k this.getKey();//根据key所能编…...

Excel/PowerPoint折线图从Y轴开始(两侧不留空隙)

默认Excel/PowerPoint折线图是这个样子的&#xff1a; 左右两侧都留了大块空白&#xff0c;很难看 解决方案 点击横坐标&#xff0c;双击&#xff0c;然后按下图顺序点击 效果...

C++的类成员对齐

这是个小语法点&#xff0c;之前我们的对齐方式都是使用#pragma pack&#xff0c;这个方式实际是依赖编译器&#xff0c;且粒度粗(如果#pragma pack(1)之后没有#pragma pack(),那就作用整个进程了)。在C11之后引入关键字alignas&#xff0c;以此来实现对齐更加便利&#xff0c;…...

敏感挂载userhelper容器逃逸复现

目录 前言 分析 实验 前言 分析 实验 # Creates a payload cat "#!/bin/sh" > /evil-helper cat "ps > /output" >> /evil-helper chmod x /evil-helper # Finds path of OverlayFS mount for container # Unless the configuration ex…...

深度解读Promise.prototype.finally

由一个问题引发的血案&#xff1a; 手写源码实现Promise.prototype.finally。 我们知道&#xff0c;对于promise来讲&#xff0c;当状态敲定&#xff0c;无论状态兑现或拒绝时都需要调用的函数&#xff0c;可以使用Promise.prototype.finally的回调来实现。那么如何手写实现Pro…...

如何实现24/7客户服务自动化?建设智能客服知识库

客户自助服务是指用户通过企业或者第三方建立的网络平台或者终端&#xff0c;实现相关的自定义处理。实现客户服务自动化&#xff0c;对提高客户满意度、维持客户关系至关重要。客户服务自动化可以帮助企业以更快的速度和更高的效率来满足客户的售后服务要求&#xff0c;以进一…...

和鲸 ModelWhale 与中科可控多款服务器完成适配认证,赋能中国云生态

当前世界正处于新一轮技术革命及传统产业数字化转型的关键期&#xff0c;云计算作为重要的技术底座&#xff0c;其产业发展与产业规模对我国数字经济的高质量运行有着不可取代的推动作用。而随着我国数字上云、企业上云加快进入常规化阶段&#xff0c;云计算承载的业务应用越来…...

selenium +Jmeter 的性能测试

通过Jmeter快速将已有的Selenium 代码以性能测试的方式组织起来&#xff0c;并使用JMeter 丰富的报表展示测试结果 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.by import By driver …...

探索高效的HTTP异步接口测试方法:从轮询等待到自动化方案

本文将深入探讨HTTP异步接口测试的多个方面&#xff0c;包括轮询等待、性能测试以及自动化方案。通过详细的解释和实际案例&#xff0c;帮助您了解如何有效地测试异步接口&#xff0c;确保系统的稳定性和性能。 在现代软件开发中&#xff0c;HTTP异步接口扮演着至关重要的角色&…...

Android资深工程书之LiveData核心组件原理剖析

LiveData是Android架构组件库中的一个类&#xff0c;用于在应用程序组件之间共享数据。它是一种可观察的数据持有者&#xff0c;可以感知应用程序组件的生命周期&#xff0c;并在数据发生变化时通知观察者。 使用LiveData 在Android应用程序中使用LiveData&#xff0c;你可以…...

Vue的五种方法实现加减乘除运算

五种方法的详细说明&#xff1a; 计算属性&#xff08;Computed Properties&#xff09;&#xff1a; 计算属性是Vue.js提供的一种便捷的属性&#xff0c;它根据依赖的数据动态计算出一个新的值。计算属性的值会被缓存&#xff0c;只有当依赖的数据发生变化时&#xff0c;才会…...

C++(1)Linux基础知识

经济下行&#xff0c;计算机就业形势严峻&#xff0c;为了勉励自己继续进步&#xff0c;继续学习代码提高核心竞争力。 安装QT Creator 首先&#xff0c;安装QT开发工具QT Creator 参考&#xff1a;2021最新Qt6开发环境&#xff08;Qt Creator&#xff09;安装以及卸载记录_q…...

接口自动化yaml文件读取与写入

前言 在走进yaml文件之前大家应该都很想知道他是用来干嘛的&#xff1f; 是的是的&#xff0c;他是用来做接口自动化测试的。 我们一起来学习他吧&#xff01;——&#xff08;一定要收藏带走哦❤&#xff09; 1、yaml文件有什么作用呢&#xff1f; ①可作为配置文件使用—…...

Java Map、JSONObject、实体类互转

文章目录 前言Map、JSONObject、实体类互转 前言 使用库 com.alibaba.fastjson2&#xff0c;可完成大部分JSON转换操作。 详情参考文章: Java FASTJSON2 一个性能极致并且简单易用的JSON库 Map、JSONObject、实体类互转 import com.alibaba.fastjson2.JSON; import com.alib…...

在Hive/Spark上执行TPC-DS基准测试 (PARQUET格式)

在上一篇文章:《在Hive/Spark上运行执行TPC-DS基准测试 (ORC和TEXT格式)》中,我们介绍了如何使用 hive-testbench 在Hive/Spark上执行TPC-DS基准测试,同时也指出了该项目不支持parquet格式。 如果我们想要生成parquet格式的测试数据,就需要使用其他工具了。本文选择使用另…...

基于CentOS搭建私有仓库harbor

环境&#xff1a; 操作系统&#xff1a;CentOS Linux 7 (Core) 内核&#xff1a; Linux 3.10.0-1160.el7.x86_64 目录 安装搭建harbor &#xff08;1&#xff09;安装docker编排工具docker compose &#xff08;2&#xff09;下载Harbor 安装包 &#xff08;3&…...

PDF怎么转Word?8 个最佳 PDF 转 Word 转换器

PDF 转 Word 转换工具只是一个特殊程序&#xff0c;可以将 PDF&#xff08;本机和/或扫描&#xff09;转换为 Microsoft Office Word 格式。将 PDF 导出到 Word 的主要原因之一是满足可编辑文档的需求&#xff0c;尽管还有其他原因。 由于缺少 PDF 阅读器&#xff0c;您可以选…...

老板都爱看的财务数据分析报表,全在这了

老板们都爱看哪些财务数据分析报表&#xff1f;自然是可以帮助他们更好地了解公司的财务状况和经营绩效的那一类财务数据分析报表&#xff0c;比如利润表、资产负债表、现金流量表、应收账款分析报表、应付账款分析报表、库存分析报表等。奥威BI数据可视化工具有一套标准化财务…...

ZooKeeper(zk)与 Eureka 的区别及集群模式比较分析

​ 作者&#xff1a;zhaokk 推荐阅读 AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI绘画、AI讲话、翻译,GPU点亮AI想象空间 资源分享 「java、python面试题」来自UC网盘app分享&#xff0c;打开手机app&#xff…...

搜狗拼音占用了VSCode及微信小程序开发者工具快捷键Ctrl + Shit + K 搜狗拼音截图快捷键

修改搜狗拼音的快捷键 右键--更多设置--属性设置--按键--系统功能快捷键--系统功能快捷键设置--取消Ctrl Shit K的勾选--勾选截屏并设置为Ctrl Shit A 微信开发者工具设置快捷键 右键--Command Palette--删除行 微信开发者工具快捷键 删除行&#xff1a;Ctrl Shit K 或…...

PMI-ACP值得考吗?在中国的前景如何?

相信很多小伙伴都听过PMP证书吧&#xff0c;但是对于PMI-ACP则知之甚少。那么同为项目管理证书&#xff0c;PMI-ACP认证的含金量怎么样呢&#xff1f;今天咱们就来聊一聊PMI-ACP敏捷项目管理证书。 PMI-ACP是由PMI&#xff08;美国项目管理协会&#xff09;颁发的针对敏捷项目…...

centos 安装防火墙,并开启对应端口号

1.查看防火墙状态&#xff1a; 命令&#xff1a;systemctl status firewalld.service 开启防火墙时&#xff0c;提示没有安装防火墙 [rootlocalhost ~]# systemctl start firewalld.service Failed to start firewalld.service: Unit not found.2.安装防火墙 [rootlocalhost …...

学习微信小程序时间延迟setTimeout和setInterval的使用方法

学习微信小程序时间延迟setTimeout和setInterval的使用方法 setTimeout()setInterval() setTimeout() setTimeout在使用的时候可以实现代码块延迟执行的效果&#xff0c;并且可以设置延迟执行的具体时间。请见如下代码&#xff1a; setTimeout(function() {//要实现延迟执行效…...

Vite好用的前端构建工具

是什么 Vite是Vue的作者尤雨溪开发的 一种新型前端构建工具。 Vite在大型项目开发模式下&#xff0c;打包速度远高于webpack。 Vite 为什么这么快 1. 快速冷启动 Vite只启动一台静态页面的服务器&#xff0c;不会打包全部项目文件代码&#xff0c;服务器根据客户端的请求加…...

Agile Iteration Velocity

【agile iteration velocity】敏捷速度指的平均速度 第四次迭代结束速度&#xff1a; 76 / 4 19 第五次迭代结束速度&#xff1a; &#xff08;76 24 &#xff09; / 5 100 / 5 20...

HarmonyOS/OpenHarmony应用开发-ArkTS语言渲染控制LazyForEach数据懒加载

LazyForEach从提供的数据源中按需迭代数据&#xff0c;并在每次迭代过程中创建相应的组件。当LazyForEach在滚动容器中使用了&#xff0c;框架会根据滚动容器可视区域按需创建组件&#xff0c;当组件划出可视区域外时&#xff0c;框架会进行组件销毁回收以降低内存占用。一、接…...

04_15页表缓存(TLB)和巨型页

前言 linux里面每个物理内存(RAM)页的一般大小都是4kb(32位就是4kb),为了使管理虚拟地址数变少 加快从虚拟地址到物理地址的映射 建议配值并使用HugePage巨型页特性 cpu和mmu和页表缓存(TLB)和cache和ram的关系 CPU看到的都是虚拟地址&#xff0c;需要经过MMU的转化&#xf…...

ResourceBundle类:读取配置文件

ResourceBundle类是java自带的类&#xff0c;类路径&#xff1a;java.util.ResourceBundle&#xff0c;用来读取项目中后缀为properties的配置文件。 下面简单举例说明一下用法&#xff1a; 数据准备 1&#xff09;配置文件名称&#xff1a;application.properties&#xff…...

数学建模的三大模型和十大常用算法

一、三大模型 预测模型 神经网络预测、灰色预测、拟合插值预测(线性回归)、时间序列预测、马尔科夫链预测、微分方程预测、Logistic模型等等。 应用领域&#xff1a;人口预测、水资源污染增长预测、病毒蔓延预测、竞赛获胜概率预测、月收入预测、销量预测、经济发展情况预测等在…...

NAS绝对安全吗?文件会不会泄露或被删除?

NAS&#xff08;Network Attached Storage&#xff09;并非绝对安全&#xff0c;因为任何系统都存在潜在的风险和漏洞。以下是一些可能导致文件泄露或被删除的情况&#xff1a; 1. 物理安全&#xff1a;如果未采取适当的物理安全措施&#xff0c;例如未将NAS设备放置在安全环境…...

Kubernetes 使用 Rancher 管理

K8S集群管理工具 只能管理单个K8S集群 kubectl命令行管理工具 dashboard&#xff08;K8S官方的UI界面图形化管理工具&#xff09; &#xff08;管理多集群很麻烦&#xff0c;切换不同集群每次需要更改kube-config文件[kubectl配置文件]&#xff0c;如果kubeadm部署每次都需…...

5G随身wifi如何选择?简单分类一下

最近5g随身wifi越来越多了&#xff0c;价格也一直走低&#xff0c;根据我的观察和总结&#xff0c;5g随身wifi可以分为这几档&#xff1a;&#xff08;普遍来说&#xff09; 1&#xff0c;紫光udx710基带芯片&#xff08;也叫v510&#xff09; 代表产品&#xff1a;r106&#x…...

华为PPPOE配置实验

华为PPPOE配置实验 网络拓扑图拓扑说明电信ISP设备配置用户拨号路由器配置查看是否拨上号是否看不懂&#xff1f; 看不懂就对了&#xff0c;只是记录一下命令。至于所有原理&#xff0c;等想写了再写 网络拓扑图 拓扑说明 用户路由器用于模拟家用拨号路由器&#xff0c;该设备…...

1.jvm和java体系结构

jvm简介 JVM&#xff1a;跨语言的平台 Java是目前应用最为广泛的软件开发平台之一。随着Java以及Java社区的不断壮大Java 也早已不再是简简单单的一门计算机语言了&#xff0c;它更是一个平台、一种文化、一个社区。 ● 作为一个平台&#xff0c;Java虚拟机扮演着举足轻重的…...

h264 SPS 帧分辨率解析标准

来源:微信公众号「编程学习基地」 文章目录 导致1088出现的原因h264 sps解析h264bitstream的简单使用导致1088出现的原因 大部分IPC推过来的数据流都是标准的1080P(1920x1080),720P(1280x720) 但是也有个例,部分设备存在16位/32位对齐的情况,出现非标1080P(1920x1088),72…...

二、SQL注入之联合查询

文章目录 1、SQL注入原理2、SQL注入的原因3、SQL注入的危害4、SQL注入基础4.1 MySQL相关4.2 SQL注入流程&#xff1a; 5、联合注入实例基本步骤6、总结 1、SQL注入原理 SQL注入(Sql Injection&#xff09;就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串&…...

Python爬虫入门 - 规则、框架和反爬策略解析

在当今信息爆炸的时代&#xff0c;爬虫技术成为了获取互联网数据的重要手段。对于初学者来说&#xff0c;掌握Python爬虫的规则、框架和反爬策略是迈向高效爬取的关键。本文将分享一些实用的经验和技巧&#xff0c;帮助你快速入门Python爬虫&#xff0c;并解析常见的反爬策略&a…...

【数据结构入门指南】二叉树

【数据结构入门指南】二叉树 一、二叉树的概念二、现实中的二叉树三、特殊的二叉树四、二叉树的性质五、二叉树的存储结构5.1 顺序结构5.2 链式结构 一、二叉树的概念 二叉树是一棵特殊的树。一棵二叉树是结点的一个有限集合&#xff0c;该节点&#xff1a; ①&#xff1a;或者…...

C++初阶——string(字符数组),跟C语言中的繁琐设计say goodbye

前言&#xff1a;在日常的程序设计中&#xff0c;我们会经常使用到字符串。比如一个人的身份证号&#xff0c;家庭住址等&#xff0c;只能用字符串表示。在C语言中&#xff0c;我们经常使用字符数组来存储字符串&#xff0c;但是某些场景(比如插入&#xff0c;删除)下操作起来很…...

Android Bitmap详解(下)之图片缓存详解

前言&#xff1a; 之前有出过俩篇关于bitmap相关的讲解&#xff0c;分别是Bitmap详解(上)常用概念和常用API和Bitmap详解(中)之像素级操作&#xff0c;今天主要是来一个系统的总结。 认识Bitmap&#xff1a; Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像…...

020-从零搭建微服务-认证中心(九)

写在最前 如果这个项目让你有所收获&#xff0c;记得 Star 关注哦&#xff0c;这对我是非常不错的鼓励与支持。 源码地址&#xff08;后端&#xff09;&#xff1a;https://gitee.com/csps/mingyue 源码地址&#xff08;前端&#xff09;&#xff1a;https://gitee.com/csps…...

孤注一掷中的黑客技术

最近孤注一掷电影很火&#xff0c;诈骗团伙的骗术实在厉害&#xff0c;就连电影中的黑客潘生都未能幸免。电影中的陆经理说&#xff1a;不是我们坏&#xff0c; 是他们贪。这句话我觉得有一部分是对的&#xff0c;诈骗分子抓住了人的本性贪婪&#xff0c;才使得被骗的人逐步走向…...

机器学习笔记 - PyTorch Image Models图像模型概览 (timm)

一、简述 PyTorch Image Models (timm)是一个用于最先进的图像分类的库,包含图像模型、优化器、调度器、增强等的集合;是比较热门的论文及代码库。 虽然越来越多的低代码和无代码解决方案可以轻松开始将深度学习应用于计算机视觉问题,但我们经常与希望寻求定制解决方案的客户…...

Java 实现证件照底图替换,Java 实现照片头像底图替换

效果图 这里前端用layui实现的案例截图 color底图颜色可以在网页上这样取色 new Color(34, 133, 255) 实现案例下载链接&#xff1a;https://download.csdn.net/download/weixin_43992507/88237432...

周易卦爻解读笔记——未济

第六十四卦未济 火水未济 离上坎下 未济卦由否卦所变&#xff0c;否卦六二与九五换位&#xff0c;象征尚未完成。 天地否 未济卦和既济卦既是错卦又是覆卦&#xff0c;这也是最后一卦&#xff0c;序卦传【物不可穷也&#xff0c;故受之以未济终焉】 未济卦象征尚未完成&…...

AI 绘画Stable Diffusion 研究(十三)SD数字人制作工具SadTlaker使用教程

免责声明: 本案例所用安装包免费提供&#xff0c;无任何盈利目的。 大家好&#xff0c;我是风雨无阻。 想必大家经常看到&#xff0c;无论是在产品营销还是品牌推广时&#xff0c;很多人经常以数字人的方式来为自己创造财富。而市面上的数字人收费都比较昂贵&#xff0c;少则几…...