hi3516cv610修改i2c0引脚位置

hi3516cv610修改i2c引脚位置

我们i2c0位置改为

也就没用海思默认的Pin44 Pin43

Pin26、Pin65分别对应寄存器地址为

0x11130034_Pin26

0x17940004_Pin65

这里我们只需改 pin_mux.c文件

文件路径

./smp/a7_linux/source/interdrv/sysconfig

改为这样ok

pin_mux.c#include "pin_mux.h"
#include <asm/barrier.h>#include "sys_cfg.h"/* mux with sensor0 slave/mipirx0/sensor0/i2c4 */
static void vi_bt1120_mode_mux(int board_type)
{void *iocfg2_base = sys_config_get_reg_iocfg2();if (board_type == BOARD_DMEB_BGA) {sys_writel(iocfg2_base, 0x0030, 0x1631); /* VI_DATA9 */sys_writel(iocfg2_base, 0x0034, 0x1631); /* VI_DATA8 */sys_writel(iocfg2_base, 0x0038, 0x1631); /* VI_DATA6 */sys_writel(iocfg2_base, 0x003c, 0x1631); /* VI_DATA7 */sys_writel(iocfg2_base, 0x0040, 0x16f1); /* VI_DATA2 */sys_writel(iocfg2_base, 0x0044, 0x1631); /* VI_DATA4 */sys_writel(iocfg2_base, 0x0048, 0x1631); /* VI_DATA3 */sys_writel(iocfg2_base, 0x004c, 0x16f1); /* VI_DATA1 */sys_writel(iocfg2_base, 0x0050, 0x1631); /* VI_DATA5 */sys_writel(iocfg2_base, 0x0054, 0x1631); /* VI_DATA0 */sys_writel(iocfg2_base, 0x0058, 0x1631); /* VI_CLK */sys_writel(iocfg2_base, 0x005c, 0x1631); /* VI_DATA10 */sys_writel(iocfg2_base, 0x0064, 0x1631); /* VI_DATA11 */sys_writel(iocfg2_base, 0x0068, 0x1631); /* VI_DATA15 */sys_writel(iocfg2_base, 0x006c, 0x1631); /* VI_DATA14 */sys_writel(iocfg2_base, 0x0070, 0x1631); /* VI_DATA12 */sys_writel(iocfg2_base, 0x0078, 0x1631); /* VI_DATA13 */} else {sys_writel(iocfg2_base, 0x0000, 0x1632); /* VI_DATA8 */sys_writel(iocfg2_base, 0x0004, 0x1632); /* VI_DATA9 */sys_writel(iocfg2_base, 0x0008, 0x1632); /* VI_DATA10 */sys_writel(iocfg2_base, 0x000c, 0x1632); /* VI_DATA11 */sys_writel(iocfg2_base, 0x0010, 0x1632); /* VI_DATA12 */sys_writel(iocfg2_base, 0x0014, 0x1632); /* VI_DATA13 */sys_writel(iocfg2_base, 0x0018, 0x1632); /* VI_DATA0 */sys_writel(iocfg2_base, 0x001c, 0x1632); /* VI_DATA1 */sys_writel(iocfg2_base, 0x0020, 0x1632); /* VI_DATA2 */sys_writel(iocfg2_base, 0x0024, 0x1632); /* VI_DATA3 */sys_writel(iocfg2_base, 0x0028, 0x1632); /* VI_DATA4 */sys_writel(iocfg2_base, 0x002c, 0x1632); /* VI_DATA5 */sys_writel(iocfg2_base, 0x0088, 0x1631); /* VI_DATA6 */sys_writel(iocfg2_base, 0x008c, 0x1631); /* VI_DATA7 */sys_writel(iocfg2_base, 0x0090, 0x1671); /* VI_CLK */sys_writel(iocfg2_base, 0x0094, 0x1631); /* VI_DATA14 */sys_writel(iocfg2_base, 0x0098, 0x1631); /* VI_DATA15 */}
}static void vi_bt656_mode_mux(int board_type)
{void *iocfg2_base = sys_config_get_reg_iocfg2();if (board_type == BOARD_DMEB_BGA) {sys_writel(iocfg2_base, 0x0054, 0x1631); /* VI_DATA0 */sys_writel(iocfg2_base, 0x004c, 0x1631); /* VI_DATA1 */sys_writel(iocfg2_base, 0x0040, 0x16f1); /* VI_DATA2 */sys_writel(iocfg2_base, 0x0048, 0x1631); /* VI_DATA3 */sys_writel(iocfg2_base, 0x0044, 0x1631); /* VI_DATA4 */sys_writel(iocfg2_base, 0x0050, 0x1631); /* VI_DATA5 */sys_writel(iocfg2_base, 0x0038, 0x1631); /* VI_DATA6 */sys_writel(iocfg2_base, 0x003c, 0x1631); /* VI_DATA7 */sys_writel(iocfg2_base, 0x0058, 0x1631); /* VI_CLK */} else {sys_writel(iocfg2_base, 0x0018, 0x1632); /* VI_DATA0 */sys_writel(iocfg2_base, 0x001c, 0x1632); /* VI_DATA1 */sys_writel(iocfg2_base, 0x0020, 0x1632); /* VI_DATA2 */sys_writel(iocfg2_base, 0x0024, 0x1632); /* VI_DATA3 */sys_writel(iocfg2_base, 0x0028, 0x1632); /* VI_DATA4 */sys_writel(iocfg2_base, 0x002c, 0x1632); /* VI_DATA5 */sys_writel(iocfg2_base, 0x0088, 0x1631); /* VI_DATA6 */sys_writel(iocfg2_base, 0x008c, 0x1631); /* VI_DATA7 */sys_writel(iocfg2_base, 0x0090, 0x1671); /* VI_CLK */}
}#if SENSOR_SLAVE_EN
/* Share the same pin with i2c1 slave pin */
static void sensor0_slave_pin_mux(void)
{void *iocfg2_base = sys_config_get_reg_iocfg2();sys_writel(iocfg2_base, 0x0090, 0x1547); /* SENSOR0_HS */sys_writel(iocfg2_base, 0x0094, 0x1547); /* SENSOR0_VS */
}/* Share the same pin with i2c0 slave pin */
// i2c0默认引脚
// static void sensor1_slave_pin_mux(void)
// {
//     void *iocfg2_base = sys_config_get_reg_iocfg2();//     sys_writel(iocfg2_base, 0x0098, 0x1547); /* SENSOR1_HS */    // I2C0_SDA
//     sys_writel(iocfg2_base, 0x009C, 0x1547); /* SENSOR1_VS */    // I2C0_SCL
// }/* Share the same pin with i2c0 slave pin */
static void sensor1_slave_pin_mux(void)
{void *iocfg3_base = sys_config_get_reg_iocfg3();void *iocfg2_base = sys_config_get_reg_iocfg2();    sys_writel(iocfg3_base, 0x0034, 0x1203); /* SENSOR1_HS */   // SDAsys_writel(iocfg2_base, 0x0004, 0x1204); /* SENSOR1_VS */   // SCL// sys_writel(iocfg1_base, 0x11110034, 0x1203); /* SENSOR1_HS */   // SDA// sys_writel(iocfg1_base, 0x17940004, 0x1204); /* SENSOR1_VS */   // SCL
}static void sensor_slave_pin_mux(int sensor_index)
{switch (sensor_index) {case PIN_MUX_SENSOR0_SLAVE:sensor0_slave_pin_mux();break;case PIN_MUX_SENSOR1_SLAVE:sensor1_slave_pin_mux();break;default:break;}
}
#endifstatic void sensor0_pin_mux(int board_type)
{void *iocfg2_base = sys_config_get_reg_iocfg2();if (board_type == BOARD_DMEB_BGA) {sys_writel(iocfg2_base, 0x0040, 0x1212); /* SENSOR0_CLK */sys_writel(iocfg2_base, 0x0050, 0x1137); /* SENSOR0_RSTN */} else {sys_writel(iocfg2_base, 0x0084, 0x1211); /* SENSOR0_CLK */sys_writel(iocfg2_base, 0x008C, 0x1135); /* SENSOR0_RSTN */}
}/* bt1120 and bt656 rely on sensor 0 */
static void sensor0_bt_pin_mux(int board_type)
{void *iocfg2_base = sys_config_get_reg_iocfg2();if (board_type == BOARD_DMEB_BGA) {sys_writel(iocfg2_base, 0x0084, 0x1211); /* SENSOR0_CLK */sys_writel(iocfg2_base, 0x008c, 0x1135); /* SENSOR0_RSTN */} else {sys_writel(iocfg2_base, 0x0084, 0x1211); /* SENSOR0_CLK */sys_writel(iocfg2_base, 0x0080, 0x11f7); /* SENSOR0_RSTN */}
}static void sensor1_pin_mux(int board_type)
{void *iocfg2_base = sys_config_get_reg_iocfg2();if (board_type == BOARD_DMEB_BGA) {sys_writel(iocfg2_base, 0x004c, 0x1212); /* SENSOR0_CLK */sys_writel(iocfg2_base, 0x0054, 0x1137); /* SENSOR0_RSTN */} else {sys_writel(iocfg2_base, 0x0080, 0x1211); /* SENSOR1_CLK */sys_writel(iocfg2_base, 0x0088, 0x1135); /* SENSOR1_RSTN */}
}static void sensor_pin_mux(int sensor_index, int board_type)
{switch (sensor_index) {case PIN_MUX_SENSOR_0:sensor0_pin_mux(board_type);break;case PIN_MUX_SENSOR_1:sensor1_pin_mux(board_type);break;case PIN_MUX_SENSOR_0_BT:sensor0_bt_pin_mux(board_type);break;default:break;}
}static inline void set_phy_reg_isb(void)
{isb();
#ifdef CONFIG_64BITdsb(sy);
#elsedsb();
#endif
#ifdef CONFIG_64BITdmb(sy);
#elsedmb();
#endif
}/* Share the same pin with sensor1 slave pin */
// 默认的 i2c0的引脚
// static void i2c0_pin_mux(void)
// {
//     void *iocfg2_base = sys_config_get_reg_iocfg2();//     sys_writel(iocfg2_base, 0x0098, 0x1135); /* I2C0_SDA */
//     sys_writel(iocfg2_base, 0x009C, 0x1135); /* I2C0_SCL */
// }/* Share the same pin with sensor1 slave pin */
static void i2c0_pin_mux(void)
{void *iocfg3_base = sys_config_get_reg_iocfg3();        // 没有 sys_config_get_reg_iocfg1只有 sys_config_get_reg_iocfgvoid *iocfg2_base = sys_config_get_reg_iocfg2();        //sys_writel(iocfg3_base, 0x0034, 0x1203); /* I2C0_SDA */sys_writel(iocfg2_base, 0x0004, 0x1204); /* I2C0_SCL */
}/* Share the same pin with sensor0 slave pin */
static void i2c1_pin_mux(void)
{void *iocfg2_base = sys_config_get_reg_iocfg2();sys_writel(iocfg2_base, 0x0090, 0x1175); /* I2C1_SDA */sys_writel(iocfg2_base, 0x0094, 0x1135); /* I2C1_SCL */
}static void i2c2_pin_mux(void)
{
#ifndef OT_FPGAvoid *iocfg_base = sys_config_get_reg_iocfg3();sys_writel(iocfg_base, 0x0050, 0x1133); /* I2C2_SDA */sys_writel(iocfg_base, 0x0054, 0x1133); /* I2C2_SCL */
#endif
}static void i2c0_bt_pin_mux(void)
{void *iocfg3_base = sys_config_get_reg_iocfg3();void *iocfg2_base = sys_config_get_reg_iocfg2();sys_writel(iocfg3_base, 0x0034, 0x1203); /* I2C0_SDA */sys_writel(iocfg2_base, 0x0004, 0x1204); /* I2C0_SCL */// sys_writel(iocfg3_base, 0x11110034, 0x1203); /* I2C0_SDA */// sys_writel(iocfg3_base, 0x17940004, 0x1204); /* I2C0_SCL */
}static void i2c_pin_mux(int i2c_index)
{switch (i2c_index) {case PIN_MUX_I2C_0:i2c0_pin_mux();break;case PIN_MUX_I2C_1:i2c1_pin_mux();break;case PIN_MUX_I2C_2:i2c2_pin_mux();break;case PIN_MUX_I2C_0_BT:i2c0_bt_pin_mux();break;default:break;}
}static void mipi0_rx_pin_mux(void)
{void *iocfg2_base = sys_config_get_reg_iocfg2();sys_writel(iocfg2_base, 0x0000, 0x1430); /* MIPI_RX0_CK1N */// sys_writel(iocfg2_base, 0x0004, 0x1430); /* MIPI_RX0_CK1P */sys_writel(iocfg2_base, 0x0008, 0x1430); /* MIPI_RX0_D3N */sys_writel(iocfg2_base, 0x000C, 0x1430); /* MIPI_RX0_D3P */sys_writel(iocfg2_base, 0x0010, 0x1430); /* MIPI_RX0_D1N */sys_writel(iocfg2_base, 0x0014, 0x1430); /* MIPI_RX0_D1P */sys_writel(iocfg2_base, 0x0018, 0x1430); /* MIPI_RX0_CK0N */sys_writel(iocfg2_base, 0x001C, 0x1430); /* MIPI_RX0_CK0P */sys_writel(iocfg2_base, 0x0020, 0x1430); /* MIPI_RX0_D0N */sys_writel(iocfg2_base, 0x0024, 0x1430); /* MIPI_RX0_D0P */sys_writel(iocfg2_base, 0x0028, 0x1430); /* MIPI_RX0_D2N */sys_writel(iocfg2_base, 0x002C, 0x1430); /* MIPI_RX0_D2P */
}static void mipi_rx_pin_mux(int mipi_rx_type)
{switch (mipi_rx_type) {case MIPI_RX_0:mipi0_rx_pin_mux();break;default:break;}
}static void vi_pin_mux(int vi_intf_type, int board_type)
{switch (vi_intf_type) {case VI_MIPI_RX_MODE:i2c_pin_mux(PIN_MUX_I2C_0);i2c_pin_mux(PIN_MUX_I2C_1);i2c_pin_mux(PIN_MUX_I2C_2);mipi_rx_pin_mux(MIPI_RX_0);break;case VI_CMOS_BT1120_MODE:sensor_pin_mux(PIN_MUX_SENSOR_0_BT, board_type);i2c_pin_mux(PIN_MUX_I2C_0_BT);vi_bt1120_mode_mux(board_type);break;case VI_CMOS_BT656_MODE:sensor_pin_mux(PIN_MUX_SENSOR_0_BT, board_type);i2c_pin_mux(PIN_MUX_I2C_0_BT);vi_bt656_mode_mux(board_type);break;default:break;}
}#if I2S0_EN
static void i2s0_pin_mux(int board_type)
{void *iocfg_base = sys_config_get_reg_iocfg3();if (board_type == BOARD_SCK) {sys_writel(iocfg_base, 0x0048, 0x1503); /* I2S0_SD_RX */sys_writel(iocfg_base, 0x0044, 0x1663); /* I2S0_WS */sys_writel(iocfg_base, 0x0040, 0x1523); /* I2S0_BCLK */sys_writel(iocfg_base, 0x003c, 0x1523); /* I2S0_SD_TX */sys_writel(iocfg_base, 0x0038, 0x1523); /* I2S0_MCLK */}
}
#endifstatic void amp_unmute_pin_mux(void)
{
#ifndef OT_FPGAvoid *iocfg_base = sys_config_get_reg_iocfg3();void *gpio_base = sys_config_get_reg_gpio();/* GPIO1_4 */sys_writel(iocfg_base, 0x0004, 0x1200);/* output high */sys_writel(gpio_base, 0x1400, 0x10);sys_writel(gpio_base, 0x1040, 0x10);
#endif
}void pin_mux(void)
{int vi_intf_type = sys_config_get_vi_intf_type();void *reg_misc_base = sys_config_get_reg_misc();int board_type = sys_config_get_board_type();sensor_pin_mux(PIN_MUX_SENSOR_0, board_type);sensor_pin_mux(PIN_MUX_SENSOR_1, board_type);
#if SENSOR_SLAVE_ENsensor_slave_pin_mux(PIN_MUX_SENSOR0_SLAVE);sensor_slave_pin_mux(PIN_MUX_SENSOR1_SLAVE);
#endifvi_pin_mux(vi_intf_type, board_type);/* audio */
#if I2S0_ENi2s0_pin_mux(BOARD_SCK);
#endifamp_unmute_pin_mux();sys_writel(reg_misc_base, 0x170, 0x0);  /* VGS & GZIP */sys_writel(reg_misc_base, 0x174, 0x0);  /* ddrt MUX */
}

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

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

相关文章

基于Spring Boot的党员学习交流平台设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

LeetCode 114.二叉树展开为链表

题目&#xff1a; 给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同…

自然语言处理NLP 04案例——苏宁易购优质评论与差评分析

上一篇文章&#xff0c;我们爬取了苏宁易购平台某产品的优质评价和差评&#xff0c;今天我们对优质评价与差评进行分析 selenium爬取苏宁易购平台某产品的评论-CSDN博客 目录 1. 数据加载 2. 中文分词 3. 停用词处理 4. 数据标注与合并 5. 数据集划分 6. 文本特征提取 …

20250223下载并制作RTX2080Ti显卡的显存的测试工具mats

20250223下载并制作RTX2080Ti显卡的显存的测试工具mats 2025/2/23 23:23 缘起&#xff1a;我使用X99的主板&#xff0c;使用二手的RTX2080Ti显卡【显存22GB版本&#xff0c;准备学习AI的】 但是半年后发现看大码率的视频容易花屏&#xff0c;最初以为是WIN10经常更换显卡/来回更…

【JavaEE进阶】Spring Boot配置文件

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗 如有错误&#xff0c;欢迎指出~ 目录 SpringBoot配置⽂件 举例: 通过配置文件修改端口号 配置⽂件的格式 properties基本语法 读取配置⽂件 properties配置文件的缺点 yml配置⽂件 yml基本语法 yml和proper…

Docker内存芭蕾:优雅调整容器内存的极限艺术

title: “&#x1f4be; Docker内存芭蕾&#xff1a;优雅调整容器内存的极限艺术” author: “Cjs” date: “2025-2-23” emoji: “&#x1fa70;&#x1f4a5;&#x1f4ca;” 当你的容器变成内存吸血鬼时… &#x1f680; 完美内存编排示范 &#x1f4dc; 智能内存管家脚本…

【Godot4.3】题目与答案解析合并器

免责申明 本文和工具截图中涉及题库和题目&#xff0c;均为本人自学使用&#xff0c;并未有商业和传播企图。如有侵害&#xff0c;联系删改。 概述 笔者本人医学专业从业人员&#xff0c;编程只是业余爱好。在自己的专业应考学习过程当中&#xff1a; 有时候不太喜欢纸质题库…

学习笔记-250222

论文&#xff1a; Learning Hierarchical Prompt with Structured Linguistic Knowledge for Vision-Language Models 主要研究llm在图像分类中的能力&#xff0c;当提示输入目标类别时&#xff0c;llm能够生成相关的描述以及相应的结构化关系。 1.首先利用llm从普通的描述中获…

欧拉回路与哈密尔顿回路: Fleury算法与Hierholzer 算法(C++)

图论中的回路是指一个路径, 它从某个顶点开始, 经过所有边恰好一次, 并回到起始顶点. 定义 欧拉回路: 从一个顶点出发, 经过每条边恰好一次, 并且最终回到起始顶点. 哈密尔顿回路: 从一个顶点出发, 经过每个顶点恰好一次, 并且最终回到起始顶点. 欧拉路径: 从一个顶点出发, …

从图片生成3维场景--NERF原理解析及加速版HashNeRF-pytorch代码实现

概要 NeRF&#xff08;Neural Radiance Fields&#xff09;是一种基于神经网络的三维图像生成技术&#xff0c;通过一组从不同角度拍摄的2D图片&#xff0c;生成一个3D场景&#xff0c;并且能够渲染出该场景在任意视角下的图像。这项技术的核心思想是利用神经网络的强大建模能…

PHP-综合4

[题目信息]&#xff1a; 题目名称题目难度PHP-综合42 [题目考点]&#xff1a; PHP综合训练[Flag格式]: SangFor{Ouk3i63BuShgxqdRcn_9kMNqKFDe5j4f}[环境部署]&#xff1a; docker-compose.yml文件或者docker tar原始文件。 http://分配ip:2087[题目writeup]&#xff1a;…

爱普生SG-8101CE可编程晶振赋能智能手机的精准心脏

在智能手机高速迭代的今天&#xff0c;高性能、低功耗与小型化已成为核心诉求。智能手机作为人们生活中不可或缺的工具&#xff0c;需要在各种复杂场景下稳定运行。爱普生SG-8101CE可编程晶振凭借其卓越性能&#xff0c;成为智能手机中不可或缺的精密时钟源&#xff0c;为通信、…

基于SpringBoot的“流浪动物救助系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“流浪动物救助系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 局部E-R图 系统首页界面 系统…

【AI】模型量化--模型量化技术基础

1. 背景 对于接触过AI模型的人来说,经常会听说一个词语模型量化,那什么是模型量化?为什么需要模型量化?有哪些常用的模型量化技术呢?本文将一一展开叙述。 2. 概念 模型量化是一种在深度学习和机器学习领域中广泛应用的技术,旨在通过减少模型中数据的表示精度来降低模…

力扣(leetcode)每日一题 1656 设计有序流

1656. 设计有序流 - 力扣&#xff08;LeetCode&#xff09; 题目 有 n 个 (id, value) 对&#xff0c;其中 id 是 1 到 n 之间的一个整数&#xff0c;value 是一个字符串。不存在 id 相同的两个 (id, value) 对。 设计一个流&#xff0c;以 任意 顺序获取 n 个 (id, value) …

【附源码】基于opencv+pyqt5搭建的人脸识别系统

文章目录 前言一、人脸检测二、人脸识别1.训练识别器2.识别人脸 三、界面相关1.Qlabel展示图片2.表格跟随内容而增加和减少3.选择图片文件4.警告框 四、源码获取总结 前言 人脸识别技术作为人工智能领域的一颗璀璨明珠&#xff0c;正逐渐渗透到我们生活的每一个角落&#xff0…

【一起学Rust | 框架篇 | Tauri2.0框架】在Tauri应用中设置Http头(Headers)

文章目录 前言一、配置准备1. 检查版本2. 使用条件3. 支持的请求头&#xff08;并不是全部支持&#xff09; 二、使用步骤1. 如何配置header2. 框架集成1. 对于Vite系列、Nuxt、Next.js这种前端框架Vite系列框架Angular系列框架Nuxt系列框架Next.js系列框架 2. 对于Yew和Leptos…

计算机毕业设计SpringBoot+Vue.jst0图书馆管理系统(源码+LW文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

SeaCMS V9海洋影视管理系统报错注入

漏洞背景 SQL 注入攻击是当前网络安全中最常见的一种攻击方式&#xff0c;攻击者可以利用该漏洞访问或操作数据库&#xff0c;造成数据泄露或破坏。通常发生在开发人员未能正确处理用户输入时。 在 SeaCMS V9 中&#xff0c;用户输入&#xff08;如登录、评论、分页、ID 等&a…

Upload-labs

pass-01 先随便上传一个php文件&#xff0c;但提示发现使用了js对不法文件进行了检查&#xff0c;是前端验证 上传php代码<?php phpinfo();?> ,使用bp抓包 将后缀名改为php然后放行 复制图片链接访问&#xff0c;得到有关php的所有信息 Pass-02 根据提示可以知道&…