自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (3)
  • 收藏
  • 关注

转载 dts设备树 基础语法

此外,还有一些Linux内核定义好的,一类设备通用的有默认意义的属性,这些属性一般不能被内核自动解析生成相应的设备信息,但是内核已经编写的相应的解析提取函数,常见的有 “mac_addr”,“gpio”,“clock”,“power”。驱动可以通过相应的函数从中提取信息。设备树是一个描述硬件的数据结构,甚至你可以将其看成一个大结构体(这个结构体就是平台,成员就是具体的设备),需要注意的是设备树并不能解决所有的硬件配置问题(例如:机器识别),它只是提供一种语言,将硬件的配置从linux内核的源码中提取出来。

2023-11-09 16:24:41 416

转载 sensor调试流程和遇到的问题

注意:模式切换的时候,用示波器可以看到sensor在做切换的时候会出现突然拉低VSNYC信号,形成一个较长的消隐(blank)信号,然后输出另外一个MODE的下的信号,有时候不稳定的现象就是这个blank信号过长,特别是发生在低帧率的情况下,会使后端ISP或者DSP无法采集到数据,没有办法产生拍照的中断,造成task被挂起(进入 idle task)或者死机重启(被狗咬)的现象,具体原因和对策可以根据不同平台的实现方法去分析解决。据我的观察,每次一个新的工程师在调试Sensor的时候几乎都会遇上这个问题。

2023-04-19 10:27:23 2317 1

转载 arm-linux-gnueabihf gcc8.3交叉编译工具搭建教程

2.1 用户目录下新建gcc_all文件夹,下载binutils-2.31.tar.bz2 gcc-8.3.0.tar.gz glibc-2.28.tar.bz2 linux。解决:记录LD_LIBRARY_PATH的值(echo $ LD_LIBRARY_PATH=),清空该变量(# LD_LIBRARY_PATH=),编译安装结束后重新添加。安装完成后系统中存在arm-linux-gnueabihf-gcc-8.3.0。安装Linux内核头文件到交叉编译安装文件夹。编译安装glibc2.28。

2023-03-07 13:45:34 1206

转载 LINUX 下使用V4L2协议通过MMAP方式进行摄像头原始图像的采集与存储

在内核中,摄像头所捕获的视频数据,我们可以通过一个队列来存储,当摄像头数据到来时,内核会查看队列中是否有缓冲区(v4l2_buffer),若有缓冲区则将摄像头数据保存到缓冲区(v4l2_buffer)中,若没有缓冲区或所有的缓冲区被使用完则放弃此次摄像头传送过来的数据。然后开启视频流后,内核将开始读取摄像头数据,将数据逐个放到内核缓冲区(v4l2_buffer)中。然后将其中一个缓冲区出队,就可以得到获取一帧摄像头数据了,之后我们再将该缓冲区重新入队。

2023-03-01 15:57:47 1425

转载 FPGA——LUT/FDRE/FDCE/FDSE/FDPE

当同步时钟接口为低电平且使能接口为高电平时,时钟的上升沿触发寄存器装载数据接口的数据。FDS:D Flip-Flop with Synchronous Set 带同步置位的D触发器 当置为端为低电平时,在时钟的上升沿触发数据保存在触发器中,当置位端为低电平时,在一个时钟的上升沿触发导致触发器清0。“logic cells”代表的是一个没有其他任何功能的4输入LUT,在老一些的Xilinx的FPGA中,他们使用LUT的数目乘以1.2来计算LC的数目,因为一个LUT中还有一个进位链和MUX。

2023-02-09 10:34:42 1969

转载 索尼 Sensor 基本概念,及曝光相关的计算

V_Blank:是指场消隐或称垂直消隐,如下帧结构示意图所示,假定曝光起始位置在图像的左上角,曝光完成一帧图像后,曝光位置要从图像的右下角返回左上角,开始新一帧的曝光,这一段时间间隔称为V_Blank。H_Blank:是指行消隐或称水平消隐,如下帧结构示意图所示,假定曝光起始位置在图像的左上角,对于逐行曝光的 sensor 来说,曝光从第一个像素开始,依次曝光直至这行的最后一个像素曝光结束,--- 积分时间是指曝光一帧所用的行数,那这一帧的绝对曝光时间就等于,曝光所用行数乘以曝光一行所用的时间。

2022-12-09 10:29:51 6103 1

转载 V4L2框架-control

简介既然涉及到视频输入,就会有很多与 ISP 相关的效果,比如对比度、饱和度、色温、白平衡等等,这些都是通用的、必须的控制项,并且大多数仅需要设置一个整数值即可。V4L2 很贴心地为我们提供了这样一些接口以供使用(可以说是非常贴心的了),在内核里面,这些控制项被抽象为一个个的控制 ID,分别以 V4L2_CID_XXX 来命名。有许多控制函数并不是单个驱动特定的,这些通用的控制 API 可以挪到 V4L2 内核框架里面。而留给驱动开发者的问题只是以下几个点:明确自己需要什么样的 control怎样去添加

2022-12-05 13:57:35 693

转载 [分享] -- V4L2 框架分析及使用流程分析

Video4Linux2 是 Linux 内核中关于视频设备的内核驱动,为上层的访问底层的视频设备提供了统一的接口。凡是内核中的子系统都有抽象底层硬件的差异,为上层提供统一的接口和提取出公共代码避免代码冗余等好处。就像公司的老板一般都不会直接找底层的员工谈话,而是找部门经理了解情况,一个是因为底层屌丝人数多,意见各有不同,措辞也不准,部门经理会把情况汇总后再向上汇报;二是老板时间宝贵。

2022-12-02 10:41:22 1578

转载 linux开机自启动/profile和rcS区别

etc/profile文件只在登陆用户后,才会执行。并且每个用户登陆,都会进行一次。因此,可在这里设置一些用户日常操作所需的环境变量,就省得每次开机登陆都需要设置了。那么对于想开机自启动的任务就不要放这边了,因为用户一旦没登陆,任务也就不会自动启动了。4. 直接将命令添加到etc/inittab 或 etc/init.d/rcS。3. 写一个Sxx开头的脚本,放到etc/init.d//etc/profile和/etc/profile.d/2. 写一个脚本,然后放到etc/init.d/rcS。

2022-10-14 16:12:23 709

转载 linux 驱动入门

(3)Kconfig文件中按照一定的格式包含了一个又一个的配置项,每一个配置项在make menuconfig中都会成为一个菜单项目。(1)虽然menuconfig菜单项来自于Kconfig,但是每一个菜单的选项结果(Y、N、M)却不是保存在Kconfig中的。.release = test_chrdev_release, //关闭文件,内核中close就是(release).release = test_chrdev_release, //关闭文件,内核中close就是(release)

2022-09-29 14:56:19 582

转载 linux开发板与windows下文件夹通过nfs共享

正在上传…重新上传取消。

2022-08-26 11:14:35 1155

转载 cmake和gcc关系

作者:任卫链接:https://www.zhihu.com/question/36609459/answer/68231785来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。gcc是编译器,其实后还有连接器等make是另外一个程序,根据makefile的指示,尽可能协调编一个程序套件的编译全过程,一个程序套件可能包好多多源代码,也可能生成若干二进制文件,还可能指示程序套件的安装程序制作和/或安装过程,那make就通过调用编译器连接器还有其他外部工具达成这一系列.

2022-05-20 11:57:52 1866

转载 MRCC和SRCC的理解

Xilinx的7系列时钟输入有SRCC和MRCC。在手册上有描述,SRCC可用于本时钟区域,MRCC用于本时钟区域和相邻时钟区域。单看这个就有些困惑了,那难不成还连接不到全局时钟了。官方手册中有下面这个图,可以看出SRCC和MRCC都是可以连接到全局时钟的。这个图由于有点具体,不太好理解。看下面这个图,首先MRCC和SRCC都是可以连接到全局时钟的,但是全局时钟的资源有限。如果程序较大都使用全局时钟的话,那时钟资源就不够用了。SRCC可用于本区域时钟这个比较好了解,MRCC用于相邻的区域该这么理

2022-05-16 13:40:34 5157

转载 FPGA中BUFG、BUFIO、BUFR和clk相关

1)BUFR是区域时钟缓冲器,要进入区域时钟网络,必须例化BUFR。2)bufg和bufr都要ccio驱动 包括bufg。(clock capable io)。普通io无法驱动bufg和bufr。3)一个design,如果不例化bufg,或者bufr,直接定义一个input clk,则会在综合阶段自动插入bufg。4)一个design的时钟,不仅可以由bufg驱动,也能由bufr和bufio驱动。5)ccio = MRCC + SRCC.看下面这个图,首先MRCC和SRCC都是可以连接到

2022-05-16 13:22:45 7455

转载 FPGA设计中,跨时钟域问题的处理

今天和大侠FPGA设计中,跨时钟域问题的处理简单聊一聊FPGA设计中跨时钟域问题的处理,话不多说,上货。跨时钟域处理是FPGA设计中经常遇到的问题,而如何处理好跨时钟域间的数据,可以说是每个FPGA初学者的必修课。如果是还在校的本科生,跨时钟域处理也是面试中经常常被问到的一个问题。本次主要介绍3种跨时钟域处理的方法,这3种方法可以说是FPGA界最常用也最实用的方法,这三种方法包含了单bit和多bit数据的跨时钟域处理,学会这3招之后,对于FPGA相关的跨时钟域数据处理便可以手到擒来。介绍的3种方

2022-05-16 13:07:59 2075

原创 vivado 下载bit报错End of startup status:LOW

End of startup status:LOW增加一条约束set_property BITSTREAM.CONFIG.UNUSEDPIN Pullup[current_design]

2022-05-13 13:24:21 3717 1

转载 IN_FIFO 原语

judy在 周三, 06/26/2019 - 09:38 提交前3篇咱们介绍了 SelectIO 逻辑资源,本篇咱们就聊一聊与SelectIO 逻辑资源水乳交融、相得益彰的另一个概念——IO_FIFO。1个IO_FIFO包括1个IN_FIFO 和1个OUT_FIFO,它是7系列FPGA新设计的IO专用FIFO,主要用于IOLOGIC(例如ISERDES、IDDR、OSERDES或ODDR)逻辑功能的扩展。FPGA的每个BANK有4个IN_FIFO和4个OUT_FIFO,相当于每12个IO对...

2022-05-11 15:34:28 854

原创 zybo 安装linux (安装工具链)

一般情况下,我们会专门下载第三方交叉编译工具链进行Xilinx器件的Linux开发(工具链获取:git clone https://github.com/xupsh/Codesourcery.git)。但是,Xilinx在其SDK下集成了交叉编译工具链,如果安装了Vivado套件还要去第三方下载的话,就显得有些多余。假如当前为Vivado2019.1版本,则位于目录/SDK/2019.1/gnu下,我们只需要以下两步进行调用。 (1)Source工具链 在使用前,source SDK/2...

2022-05-10 23:38:15 259

转载 详析像增强器的构造及作用——专为微弱信号探测而生

详析像增强器的构造及作用——专为微弱信号探测而生CCD、CMOS相机常备用来拍摄发光影像。然而受到效率、噪声的限制,在微弱光环境下,普通相机很难实现有效的成像,这些场景包括:-微光夜视,即环境光照很低的场合;-微弱发光,如单颗粒发光、单粒子探测、生物自荧光等;-高速成像,因为曝光时间很短而导致信号微弱......那么;是否有办法将影像增强呢?如何解决微弱信号探测?像增强器可以有效增强影像,并可以实现单光子计数探测。简述像...

2022-05-06 14:49:16 4350

转载 激光距离选通成像

激光距离选通成像技术的研究进展 - 知乎自1944年德国首先装备主动红外夜视仪并在夜战中取得优势之后,夜视技术获得了迅速的发展。但主动红外夜视技术由于自身的易暴露性,自上世纪 70年代后逐渐被微光夜视和热成像等被动夜视技术所取代。上世纪 90 年代以后,由于激光技术、光电探测器及电子信号处理技术的发展,以激光距离选通成像技术为代表的主动红外夜视技术又焕发出新的生机。与被动夜视系统相比,激光距离选通成像系统(也称为激光成像雷达)具有作用距离远、分辨力和信噪比高、能显示目标细节且图像信杂比高、可在雨、雪

2022-05-06 10:02:38 2301

转载 cameralink 控制信号

视频数据信号部分是Cameralink的核心,该部分本质就是ChannelLink协议。该协议主要包括5对差分线,分别是X0-~X0+、X1-~X1+、X2-~X2+、X3-~X3+、Xclk-~Xclk+;视频部分发送端将28位的数据和一个时钟信号按照7:1比例将数据并串转换成5对差分对,接收端将5对差分信号转换成28位的数据信号和一路时钟信号。28位视频数据信号包括4位视频控制信号和24位图像数据信号。4位视频控制信号包括:FVAL:帧同步信号。当FVAL为高时表示相机正输出一帧有效图像

2022-04-26 17:00:46 1972

转载 camera link

camera link是在channel link协议基础上扩展而来,主要是应用于机器视觉领域工业相机和图像采集卡之间的数据传输。camera link标准包含5种配置,每种配置支持不同的数据位,以下是五种配置。这里主要介绍base模式。lite - 支持最多10bit,一个连接器 base - 支持最多24bit,一个连接器 medium - 支持醉倒48bit,两个连接器 full - 支持最多64bit,两个连接器 80bit - 支持最多80bit,两个连接器标准的camera..

2022-04-26 16:29:18 3487

转载 axi_datamover_0

对zynq器件来讲,存在多种方式用于PS和PL数据交互。常见有:1.利用AXI总线直接传输数据,直接读写DDR。2.利用DMA进行传输,读写DDR,由PS侧进行控制。3.利用BRAM进行数据交互。4.利用Data Mover进行数据传输,完全由PL控制。datamover能直接让PL侧对挂在到PS的DDR进行读写,PS侧不进行过多参与,十分方便。目标:写一段逻辑,输入为想要发送到dram的数据,输出为想从dram读出的数据。数据均伴随有效信号,同时还需告知这个module读写数据..

2022-04-15 16:49:32 2579

转载 testbench tb仿真

Verilog功能模块HDL设计完成后,并不代表设计工作的结束,还需要对设计进行进一步的仿真验证。掌握验证的方法,即如何调试自己的程序非常重要。在RTL逻辑设计中,要学会根据硬件逻辑来写测试程序即写Testbench。Verilog测试平台是一个例化的待测(MUT)模块,重要的是给它施加激励并观测其输出。逻辑块与其对应的测试平台共同组成仿真模型,应用这个模型就可以测试该模块能否符合自己的设计要求。  编写TESTBENCH的目的就是为了测试使用HDL设计的电路,对其进行仿真验证、测试设计电路的功能、性能

2022-04-14 09:22:51 1623 1

转载 ddr3 vivado 设计

目录一、如何知道器件所支持的时钟频率?1.1DDR3芯片的带宽、位宽和最大IO时钟频率1.3FPGA所支持的最大频率二、时钟结构三、MIG IP核的时钟:3.1clock period时钟3.2 ui_clk3.3 input clock period3.4 Reference clock四、行业术语一、如何知道器件所支持的时钟频率?举例说明:DDR3 型号: MT41J256M16xx-125(记住这个常用型号,后文还是以此型号讲解)FPGA ..

2022-04-13 11:14:18 1119

转载 FPGA verilog做基于模板的图像处理的方法

FPGA verilog做基于模板的图像处理的方法首先,在如今CPU和GPU具有极强计算能力的情况下,为什么还要考虑用FPGA做图像处理呢?我觉得原因可能有:1,FPGA可以通过硬件接口直接连相机,从而实现实时在线处理。而基于CPU和GPU需要操作相机厂商依赖的SDK,比较难做到实时在线。2,FPGA的计算特点能够很好的匹配某些图像处理模式,处理性能比CPU和GPU更强(比如基于固定模板的图像处理,也称二维卷积。图像与一个固定大小和内容的模板进行卷积,每次操作只涉及到卷积模板覆盖的局部像素区域,如均

2022-04-11 15:49:40 1313

转载 ZYNQ 的三种 AXI 总线

AXI (Advanced eXtensible Interface) 本是由ARM公司提出的一种总线协议, Xilinx 从 6 系列的 FPGA 开始对 AXI 总线提供支持,目前使用 AXI4 版本。AXI 总线ZYNQ 有三种 AXI 总线:(A)AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地址映射通信的需求,是面向地址映射的接口,允许最大 256 轮的数据突发传输;(B)AXI4-Lite:(F..

2022-04-11 13:39:27 1836

转载 vivado 综合与实现

综合,简单来说就是把RTL代码转换成后FPGA基本单元,综合分好几步,translate,代码转成基本的与或非等器件无关的逻辑电路;map,逻辑电路映射成FPGA基本单元,比如LUT,RAM,进位链和一些硬core之类的。然后implementation,主要包含两步,placement,布局,把综合后的基本单元放到器件的各个位置;routing,布线,也就是把各个单元连接起来;一般还加一步physical synthesis,主要是为了优化后端时序。布局布线是很关键的,厂家都有不同的算法,时序优先,资

2022-04-08 14:42:55 10458 1

转载 CMOS图像传感器基础

一、概述图像传感器是把光学图像信息转换成电信号的器件。图像传感器是随着电视技术在20世纪30年代发展起来的,早期图像传感器技术的最重要贡献在于建立了扫描(Scan)的概念,用扫描的方法把二维空间平面上的光电信息离散成行(Line)和帧(Frame),然后按空间顺序读出形成在一维时间轴上变化的电信号。这个一维的电信号经过存储和传输,再用扫描的方式还原重建二维平面图像。扫描概念一直被沿用至今。1968-1969年就有论文设想在硅光电二极管上集成晶体管有源器件实现有源像素,然后用常规的电子电路方式转换读出

2022-04-07 09:52:44 13482 1

转载 背景差分算法

背景差分法亦称背景减法,常用于检测视频图像中的运动目标,是目前运动目标检测的主流方法之一。其基本原理就是将图像序列中的当前帧和已经确定好或实时获取的背景参考模型(背景图像)做减法,找不同,计算出与背景图像像素差异超过一定阀值的区域作为运动区域,从而来确定运动物体位置、轮廓、大小等特征,非常适用于摄像机静止的场景。既然需要与背景参考模型作比较,那么背景差分法的性能好坏很大程度上取决于背景模型的建模、获取和更新方法,背景图像的建模和模拟的准确程度,将直接影响到检测的效果。那么何为“背景”呢?对于一个稳定

2022-04-07 09:15:28 3869

转载 转载 Camera Link接口

工业相机的数字接口主要包括以下几类:Camera Link接口、IEEE 1394接口、USB接口、网络接口、CoaXPress接口。本文重点介绍Camera Link接口从Camera Link接口的名字就可以看出来,这个接口是专门针对工业相机(camera)的特殊应用需求(图像的数据量大、带宽要求高)而研发出来的,因此,它的传输速度肯定是比较快的,这也正是Camera Link接口最主要的优点之一。图2为相机上的Camera Link接口实物。图2 Camera Link 接口的工业相机.

2022-04-02 10:51:33 3368 1

原创 camer link接口调试过程

记录开发过程

2022-04-02 09:53:21 284

转载 【无标题】verlog中wire 和reg用法

wire(组合逻辑)wire用来连接模块实例化的输入和输出端口;wire用作实际模块声明中输入和输出;wire 元素必须由某些东西驱动,并且在没有被驱动的情况下,无法存储值;wire 元素不能用在 always模块中 = 或者 <= 的左边;wire元素是assign语句左侧 唯一的合法类型;wire 元素是在基于Verilog的设计中连接两片的无状态方式;wire 只能用在 组合逻辑;// wire 的一些正确使用 wire A,B,C,D,E ; //1-bit ...

2022-02-08 16:05:41 1095

转载 Verilog中端口应该设置为wire形还是reg形

初学Verilog时,一直搞不清Verilog描述模块时端口应该取什么类型;是reg形?还是wire形?模块对应测试文件的端口类型为什么又与模块的端口类型不一样?因此有必要进行学习与整理:先写结论:verilog中的端口具有三种传输方向:input、output、和inout,所有的端口均默认为wire类型;模块描述时,input端口只能为线网形,output端口可以为线网/reg,inout端口只能为线网形;模块调用时(实例化模块时对应端口的信号),连接模块input端口的信号可以为线网/r

2022-02-07 10:35:38 2612 1

转载 FPGA的基本架构、IO命名方式和作用

今天想和大家一起聊聊FPGA的 IO。先说说我当年入门的经历吧。国内的大学有 FPGA 开发条件的实验室并不太多,当年大学的那帮同学有的做ARM,有的做linux,很少有人做 FPGA,当时学 FPGA 仅仅是由于非常渴望的好奇心。所以,在淘宝买了一块开发板,就开始了自己的 FPGA 之路。大部分开发板的内容主要是教学员怎么样写Verilog代码,很少会对 FPGA 的芯片架构做详细的说明和解读,所以当年面试的时候就碰到了一个很尴尬的事情,面试官第一个问题问的就是:用的是哪颗 FPGA,内核...

2022-02-04 11:30:13 4117

原创 zynq axi-dma 接口参考资料

参考资料:Xilinx官方参考文档:PG021_axi_dma、UG585_zynq_7000_TRM等AXI DMA开发 http://www.fpgadeveloper.com/2014/08/using-the-axi-dma-in-vivado.html黑金教程 course_s2_ALINX ZYNQ开发平台SDK应用教程V2.02.pdf米联客教程 S03_CH01_AXI_DMA_LOOP(视频) https://v.qq.com/x/page/e0349oqwa27.html本文

2021-10-13 11:15:02 173

转载 Zynq AXI总线

S02_CH12_ AXI_Lite 总线详解 - 米联客 - 博客园12.1前言ZYNQ拥有ARM+FPGA这个神奇的架构,那么ARM和FPGA究竟是如何进行通信的呢?本章通过剖析AXI总线源码,来一探其中的秘密。12.2AXI总线与ZYNQ的关系AXI(Advanced eXtensible Interface)本是由ARM公司提出的一种总线协议,Xilinx从6系列的FPGA开始对AXI总线提供支持,此时AXI已经发展到了AXI4这个版本,所以当你用到Xilinx的软件的时候看到的都.

2021-10-13 10:57:14 896

转载 同步和异步、阻塞和非阻塞概念(转)

同步和异步的概念 - rainbow70626 - 博客园---------------------------------------------------------------------------------------------------------------------------------同步是指:当程序1调用程序2时,程序1停下不动,直到程序2完成回到程序1来,程序1才继续执行下去。异步是指:当程序1调用程序2时,程序1径自继续自己的下一个动作,不受程序2的的影响。..

2021-09-14 10:12:20 247

转载 基于STM32 HAL库 的FreeRTOS移植步骤(结合Stm32CubMX)

结合Stm32 CubMX软件生成的带FreeRTOS的工程,移植到自己的项目中来。一、硬件准备 STM32L15系列 一个ST-Link下载器及其连接线等。二、软件准备 FreeRTOS源码; 一个基于STM32 HAL库的基础例程(跑马灯例程)。 HAL库的移植可以自行百度。三、移植FreeRTOS3.1 添加F...

2019-07-18 09:37:52 5291

转载 Modbus 通讯协议 (RTU传输模式)

第一章Modbus协议简介Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的...

2019-04-20 10:03:25 3711 1

田耕《Xilinx FPGA开发实用教程(第2版)》一书的配书光盘

Xilinx FPGA开发实用教程书中的参考程序都有,方便学习

2018-01-05

C++ Qt设计模式 第2版(中文版)

2017-03-20

OpenCV入门教程.pdf

适合入门者参考学习

2017-02-24

空空如也

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

TA关注的人

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