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

【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



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

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

相关文章

java八股文面试[数据结构]——List和Set的区别

List和Set是用来存放集合的接口&#xff0c;并且二者都继承自接接口Collection List 中的元素存放是有序的&#xff0c;可以存放重复的元素&#xff0c;检索效率较高&#xff0c;插入删除效率较低。 Set 没有存放顺序不能存放重复元素检索效率较低&#xff0c;插入删除效率较…

学习笔记230818---对于promise失败状态处理的重要性

问题描述&#xff1a; 在项目中经常会出现如上的问题&#xff0c;这是因为&#xff0c;用promise封装的接口或第三方组件方法&#xff0c;如果只对成功的状态做处理&#xff0c;就会造成页面出错&#xff0c;报error。 解决方法 then()的末尾加上.catch(()>{})对失败的状态…

C++类和对象----封装(观看黑马教程整理的笔记)

1、简介 C面向对象的三大特性为&#xff1a;封装、继承、多态 C认为万事万物都皆为对象&#xff0c;对象上有其属性和行为 例如&#xff1a; ​ 人可以作为对象&#xff0c;属性有姓名、年龄、身高、体重…&#xff0c;行为有走、跑、跳、吃饭、唱歌… ​ 车也可以作为对象…

MySQL索引可能失效之or、is null、is not null、不等于(!=,<>)、联合索引

1、如果 A,B 两列都有索引&#xff0c;那么 select * from Table where Aa or Bb; 会走索引吗&#xff1f; 答案&#xff1a;会&#xff0c;因为 A,B都有索引&#xff1b; 2、如果 A,B有索引&#xff0c;但是C没有索引&#xff1b; select * from Table where Aa or Bb …

线程与进程,你真得理解了吗

线程与进程&#xff0c;你真得理解了吗 1 进程与线程的关系和区别2 并行与并发3 线程共享了进程哪些资源 相信大家面试时一定没少被一个问题刁难&#xff0c;那就是进程和线程的区别是什么&#xff1f;这个问题延申开来并不像表面那么简单&#xff0c;今天就来深入一探。 开始…

无涯教程-PHP - 标量函数声明

在PHP 7中&#xff0c;引入了一个新函数&#xff0c;即标量类型声明。标量类型声明有两个选项- Coercive - 强制性是默认模式。Strict - 严格模式必须明确提示。 可以使用上述模式强制执行以下类型的函数参数- intfloatbooleanstringinterfacesarraycallable 强制模…

【Unity】如何制作小地图

我们为什么要制作小地图呢&#xff1f; 原因很简单&#xff1a; 导航和定位&#xff1a;小地图可以显示玩家当前位置以及周围环境的概览。这使得玩家能够更好地导航和定位自己在游戏中的位置&#xff0c;找到目标或避开障碍物。场景了解&#xff1a;通过小地图&#xff0c;玩…

Windows10上VS2022单步调试FFmpeg 4.2源码

之前在 https://blog.csdn.net/fengbingchun/article/details/103735560 介绍过通过VS2017单步调试FFmpeg源码的方法&#xff0c;这里在Windows10上通过VS2022单步调试FFmpeg 4.2的方法&#xff1a;基于GitHub上ShiftMediaProject/FFmpeg项目&#xff0c;下面对编译过程进行说明…

渗透测试面试题汇总(附答题解析+配套资料)

注&#xff1a;所有的资料都整理成了PDF&#xff0c;面试题和答案将会持续更新&#xff0c;因为无论如何也不可能覆盖所有的面试题。 一、思路流程 1、信息收集 a、服务器的相关信息&#xff08;真实ip&#xff0c;系统类型&#xff0c;版本&#xff0c;开放端口&#xff0c;…

vue 实现腾讯地图搜索选点功能(附加搜索联想功能)

注意&#xff1a;开发环境、正式环境需在腾讯地图配置ip地址白名单、域名白名单 封装map组件&#xff1a; <template><iframe width"100%" style"border: none;width: 100%;height: 100%;" :src"map_src"></iframe> </t…

新服务器基本环境下载conda + docker + docker-compose + git

文章目录 Ubuntu 允许root用户登录 centos无所谓condadockerubuntucentos docker-compose官方下载docker-compose国内镜像 gitUbuntuCentos Ubuntu 允许root用户登录 centos无所谓 # 以普通用户登录系统&#xff0c;创建root用户的密码 sudo passwd root# SSH 放行 sudo sed -…

Java免费自学网站墙裂推荐!!!!

最近&#xff0c;常有一些读者问我&#xff1a;“有没有什么推荐的Java学习网站啊&#xff1f;” 因为一直没有时间&#xff0c;所以我之前也是让大家上知乎、搜索引擎搜一下就好了。 但是&#xff0c;我深知不能这样&#xff0c;应该拿出更真诚的态度带来优质的内容。 于是…

uni-app开启gzip配置

指令&#xff1a;npm install webpack4.46.0 --save-dev 指令&#xff1a;npm install compression-webpack-plugin6.1.1 --save-dev vue.config.js const CompressionWebpackPlugin require(compression-webpack-plugin);module.exports {configureWebpack: config > {…

IntelliJ IDEA 编辑器的全局搜索中使用正则表达式

打开 IntelliJ IDEA 编辑器。 使用快捷键 Ctrl Shift F&#xff08;Windows / Linux&#xff09;或 Cmd Shift F&#xff08;Mac&#xff09;打开全局搜索窗口。在搜索框中输入要搜索的内容&#xff0c;例如&#xff1a;“设备【】已经绑定网关”。在搜索框旁边的 “.*” …

轻松搭建远程Node.js服务端,让你的应用在公共网络中畅行无阻!

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…

linux安装 MySQL8 并配置开机自启动

目录 1.下载 mysql 安装包 2.上传并解压 mysql 3.修改 mysql 文件夹名 4.创建mysql 用户和用户组 5.数据目录 &#xff08;1&#xff09;创建目录 &#xff08;2&#xff09;赋予权限 6.初始化mysql &#xff08;1&#xff09;配置参数 &#xff08;2&#xff09;配置环…

ChatGPT应用于高职教育的四大潜在风险

目前&#xff0c;ChatGPT还是一种仍未成熟的技术&#xff0c;当其介入高职教育生态后&#xff0c;高职院校师生在享受ChatGPT带来的便利的同时&#xff0c;也应该明白ChatGPT引发的风险也会随之进入高职教育领域&#xff0c;如存在知识信息、伦理意识与学生主体方面的风险与挑战…

爬虫异常处理:异常捕获与容错机制设计

作为一名专业的爬虫程序员&#xff0c;每天使用爬虫IP面对各种异常情况是我们每天都会遇到的事情。 在爬取数据的过程中&#xff0c;我们经常会遇到网络错误、页面结构变化、被反爬虫机制拦截等问题。在这篇文章中&#xff0c;我将和大家分享一些关于如何处理爬虫异常情况的经…

ChatGpt 从入门到精通

相关资源下载地址: 基于ChatGPT的国际中文语法教学辅助应用的探讨.pdf 生成式人工智能技术对教育领域的影响-关于ChatGPT的专访.pdf 电子-从ChatGPT热议看大模型潜力.pdf 从图灵测试到ChatGPT——人机对话的里程碑及启示.pdf 正文 ChatGPT 是一种强大的自然语言处理模型&…

SpringBoot(二)

###SpringBoot原理分析 ###SpringBoot监控 ###SpringBoot项目部署 #SpringBoot自动配置 Condition&#xff1a;&#xff08;条件&#xff09; Condition是在Spring4.0增加的条件判断功能&#xff0c;通过这个功能可以实现选择性的创建Bean操作 SpringBoot是如何知道要创建…